置顶随笔

Do wash away after using.
使用之后请冲洗
Metro
地铁

专业方面
right-facing arrows
例句:If you do not see it after restarting Internet Explorer, click the right-facing arrows at the end of the IE7 command bar to view all available toolbar buttons.
grayed out
例句:Some menu items are unavailable (grayed out) when running Internet Explorer in Protected Mode on Windows Vista.
tabbed browsing
例句:
In IE6 or in IE7 with tabbed browsing off, .......or use IE7 with tabbed browsing enabled.
Grave-Sweeping
清明扫墓
School of thought
学院派
Overkill
小题大作,过度杀伤力
Hot spots
热点,多事区
Human intuition
人类的直觉
You will have to develop your own sense of how many instance variables are  too many instance variables and how many line of code in a method are too many lines.
你需要自己培养这样的感觉:多少个实例变量算多,一个方法中多少行代码算多。多少
subroutine
子程序
Heavy artillery
重炮(比喻杀手锏)
Domain Object
领域对象
Divergent
发散(式)
Cut and dried
 固定的;已成定局的,早准备好的, 呆板的
polymorphism
多态性
It's just that all the people in the entire world that I want to talk to are right here.
整个世界我想与之谈话的人已经就在这里了。

posted @ 2007-02-28 19:52 Stanley.Luo 阅读(31) | 评论 (0)编辑
  2008年5月29日
MSDN 对此方法:
public static decimal Round(
decimal d,
int decimals
)

的解说是:

The decimals parameter specifies the number of fractional digits in the return value and ranges from 0 to 28. If decimals is zero, an integer is returned.
If the value of the digits in d to the right of the decimals position is halfway between the digit in position decimals, that digit is rounded up if it is odd, or left unchanged if it is even. If the precision of d is less than decimals, d is returned unchanged.

Sample:
Math.Round(3.44, 1); //Returns 3.4.
Math.Round(3.45, 1); //Returns 3.4.
Math.Round(3.46, 1); //Returns 3.5.

Math.Round(4.34, 1); // Returns 4.3
Math.Round(4.35, 1); // Returns 4.4
Math.Round(4.36, 1); // Returns 4.4
就是说遇到最后一位5的时候, 都让它前面的那位数字变成偶数(如果是偶数就不改变)

posted @ 2008-05-29 10:44 Stanley.Luo 阅读(9) | 评论 (0)编辑
  2008年3月16日

52集的《闯关东》,终于被 我看完了。其实应该早就看完的,过年的时候在家没有事,不用一星期就看了30多集,可是后来来深圳工作了,一是工作忙,二是网络真是TMD地慢。一周也只能看一两集。
         
总得来说,闯关东真是一部有血有肉,感动无处不在,智慧无处不在的连续剧。

先来一段媒体的简介吧:


《闯关东》,讲述的是从清末到九一八事变爆发前(其实是9.18之后),一户山东人家为生活所迫而离乡背井“闯关东”的故事,以主人公朱开山的复杂、坎坷的一生为线索,其中穿插了朱开山的三个性格迥异、命运不同的儿子在关东路上遇到的种种磨难和考验,力求真实还原那段悲怆、苍凉、恢弘、悲壮的民族血泪史。书中将再现当年闯关东人放排、伐木、淘金、采矿等大场面,场景横跨半个中国。而在细节上,作者延续了其擅长的在平淡人生中贯串人性关怀的思路,亲情、爱情与故土情的纠结深入人心,对国事、家事、家乡事的担当感人至深.

   其实我觉得这部连续剧,其中一个很重要的主题就是赞扬山东人,赞扬他们吃苦耐劳,仁义大度,智慧过人。。。。。。。

吃苦耐劳:从山东到关东一路上的征服的苦难,屈辱足以证明,活下来真的很不容易!

仁义大度:韩老海,潘五爷的百般发难,朱开山都忍了下来。救一个被认为患上了瘟疫的日本孩子-郎,秀儿,整个朱家不顾一切,试问又有多少人能做到?

智慧过人:这集中表现在朱开山上,当然老三传杰,老大的媳妇那文也谋略不错。剧情在这一点上,我觉得跟《大染坊》有点相似:都是先同周围的人(中国人)斗智,而后又和好,后来一致对外,跟日本人斗!

当然,也有些地方,个人觉得不合理的,例如一郞怎么也不可能变得主动帮助森田去害朱家,而且一郎也没有必要也不可能想去死(他会舍得秀儿吗?)

虽然我很少看电视剧,但我觉得这部绝对是精品。

虽然大陆的娱乐业不如港台发达,但是看了这部反而让我觉得港台都注入也商业因素,没有什么深度!

posted @ 2008-03-16 01:37 Stanley.Luo 阅读(71) | 评论 (0)编辑
  2008年3月8日
 

说了这么多两座城市的比较,再来比较一下我呆过的两家公司的比较吧。

总得来说,两家公司都有千秋,也不能说谁好谁不好。

群硕是专业做软件开发的,晨星是专业做金融服务(老大说严格区分这不是金融业,而是金融服务业),是专门做基金分析评级,投资资讯的,软件产品只是其资讯的一种发布形式,虽然说也很重要,我想应该不能说得上核心吧。

两家公司都是美资企业。

群硕的文化是很严谨,很规范,晨星的文化很开放,很自由:

群硕每天830上班,晚上XXXX下班,之所以用XX来表示,是因为它没有定下班时间,虽然没有定义域,但是却有值域:一般不会早于晚上8点,10点后很平常。

晨星每天900下班,下午600下班,600PM是绝对可以回家的。

两家公司对员工服装都是没有特别要求,穿着可以比较随意。

群硕上班一定要带卡,因为没有卡就进不了门,要是那一天忘记带卡了,CTO会找你谈话。

晨星也要求带卡,但因为那不是门禁(门禁是用指纹的),所以不带也没有多大关系。

群硕的对工作区域有严格权限划分。员工是绝对进不了HR办公室的。

晨星的工作区域很开放,只要你是晨星的员工,哪里都可以去(当然女WC男生是不可以去的,^_^.

晨星有两条休闲走廊,装饰得像个小酒吧似的,员工可以在哪里吃饭,小休息,聊天。。。。

晨星的设备使用也不怎么严格,打印机都可以公用,电脑用USB接口,光驱,对软件安装限制很少(盗版软件,QQBT是严格禁止的)(这个对软件开发人员宽松一些,其它人员严格一些)。

群硕使用打印机是要经理批准的。软件安装限制非常严格,自己不能安装软件。

群硕很强调一致性,其实我觉得这点挺好。晨星不怎么讲究这个。

群硕软件开发流程很规范,员工也是执行得相当好,培训机制非常不错。晨星开发流程不怎么规范,讲究先把产品做出来。

群硕的福利特点是有咖啡奶茶。晨星只有纯净水。

晨星的福利特点是收费考试费报销,书费报销上限是1500/年。考试费一般是针对CFA的。

其实还有很多细节的地方体现两种不同的公司文化,有空再慢慢说吧。

(P.S 以上所有观点纯属个人认为,如有出入敬请原谅)
posted @ 2008-03-08 10:46 Stanley.Luo 阅读(191) | 评论 (1)编辑
  2008年3月4日
     摘要: 上海大,深圳小。据说光一个浦东区就有香港这么大,而深圳还没有香港大,可想而知。

上海时尚式,深圳花园式.......
  阅读全文
posted @ 2008-03-04 23:49 Stanley.Luo 阅读(232) | 评论 (6)编辑
跳槽到深圳已经半个月左右了,对新的城市,新的工作环境也有了一定的认识。

在此就作在简单的比较吧。

上海大,深圳小。据说光一个浦东区就有香港这么大,而深圳还没有香港大,可想而知。

上海时尚式,深圳花园式。上海讲究赶上世界最时尚的东西,例如磁悬浮,例如宁波到上海的跨海大桥。深圳声称要建设花园式城市,我觉得它确实做到了,每一条大路,它都一点也不吝啬土地去种花种草种树,马路中间,非机动车道两旁,随处可见的树林(称得树林的,一方面是树多,一方面是树大)。走在马路上,你会感觉到自己走在花园里。

上海消费高,貌似深圳的更高。原来我在上海租房至多花800/月,现在至少也要950/月,当然可能是地段不同,其实这具没法比。

上海地铁很发达,深圳地铁期待。上海据说都快开通10号线了,深圳连2号线还没有开通。

上海交通堵塞相对少,深圳交通堵塞比较多。这可能跟深圳的特殊性有关,它是分关内关外的,交通堵塞主要发生在各个关口附近。不过上海公交不打折,深圳用卡至少打8折,换乘打的折扣更多。

晚了,明天再续。。。。。。。。。

posted @ 2008-03-04 23:48 Stanley.Luo 阅读(120) | 评论 (2)编辑
  2008年2月7日

标题是我家门前的春联,连我自己也惊讶,这两句话竟然是我想出来的,
在此也祝所有博客园的朋友们鼠年快乐!

人们都说一年之计在春,所以我也在新年的第一天(现在是23:04,还算,哈哈)计划一下我今年的打算:
1. 工作阵地从上海转移到了深圳,希望尽快适应这种转变!
2. 塑造全新自我,以积极向上的面貌与心态对待工作与生活,让工作有成就!
3. 多参加体育活动,提高网球技术,增加体重!
4. 多研究技术,做到“一专多能”,研究学习一下如:C++, Ruby,Open Source, Embeded, 非Windows平台。
5. 多了解业务,新公司是做金融方面的,就多学习金融方面的知识。(能考个CFA最好)
6. 提高英语,希望能出一次国。(能考个托福或者GRE最好)
posted @ 2008-02-07 23:21 Stanley.Luo 阅读(80) | 评论 (0)编辑
  2008年1月30日

关于 Table<TEntity>.Attach(),据说它的作用就是可以在不同的DataContext当中附加数据,让被附加的数据(实体)即使在外部(DataContext上下文之外)修改也可以让别的DataContext中的对应数据得以更新。

假设我已经有一个Category的实体类与对应的数据库表。
相关类代码如下:

 1    public class DataAccess
 2    {
 3        private static DLContext dtx;
 4
 5        static DataAccess()
 6        {
 7            dtx = new DLContext();
 8            dtx.Log = Console.Out;
 9        }

10
11        public static DLContext Instance
12        {
13            get
14            {
15                return dtx;
16            }

17        }

18     
19        public static void Attach(Category cy)
20        {
21            dtx.GetTable<Category>().Attach(cy, true);
22        }

23
24    }


    public class DLContext:DataContext
    
{
        
private static MappingSource mappingSource = new AttributeMappingSource();
        
private static string connectionString=@"Server=.\SQLExpress;Database=Helloworld;User ID=xxx;Password=xxxx;";

        
public DLContext()
            : 
base(connectionString, mappingSource)
        
{
        }

    }

 1        static void Main(string[] args)
 2        {
 3            TestAttach();
 4            Console.Read();
 5        }

 6
 7        public static void TestAttach()
 8        {
 9            using (DLContext ctx = new DLContext())
10            {
11                var category = (from c in ctx.GetTable<Category>() select c).FirstOrDefault();
12                string name = category.Name;
13                DataAccess.Attach(category);
14
15                Console.WriteLine("Category ID={0},Name={1}", category.KeyID, category.Name);
16
17                category.Name = "After modifying" + DateTime.Now.ToString();
18
19                var category2 = (from c in DataAccess.Instance.GetTable<Category>() where c.KeyID == category.KeyID select c).SingleOrDefault();
20                Console.WriteLine("After changing the value of property.");
21                Console.WriteLine("Category ID={0},Name={1}", category.KeyID, category.Name);
22                Console.WriteLine("Category2 ID={0},Name={1}", category2.KeyID, category2.Name);
23                Console.WriteLine("Reference equeals ={0}", Object.ReferenceEquals(category, category2));
24            }

25        }


为什么当我不设断点的时候,会出现Exception:
"An attempt has been made to Attach or Add an entity that is not new, perhaps having been loaded from another DataContext.  This is not supported."
当我在13行  DataAccess.Attach(category);处设了一个断点,而且用鼠标放在category上查看了一下属性值,继续运行,它就不会出错,一切正常了!!!!

是什么原因啊?????

---------------------------------------------------------------------

经大侠指引,终天知道原来因为Category 表中有一个外键,对于实体类Category, 有一个字段:

private EntityRef<Parent> _Parent;

必须在调用 Attach()方法之前,先令
_Parent=default(EntityRef<Parent> );

综上所述,为了方便使用,我在Category类中加了一个Detach()方法:

public void Detach()
{
   _Parent 
= default(EntityRef<Parent>);
}

必须在调用 Table<TEntity>.Attach()方法之前,先调用category.Detach()方法。



 

posted @ 2008-01-30 01:27 Stanley.Luo 阅读(1300) | 评论 (2)编辑
  2007年12月31日

2008,再过几周,我就要离开上海,到广州/深圳去了。
工作还没有定,所以还不知道目的地在哪里。

在上海呆了1年半,说实在,还真挺舍不得。可是,就像舍不得2007要过去一样,上海终究还是对它说BYE BYE。
上海还是很有潜力,很有魅力的城市。可是为了离家近点,只能“忍痛割爱”了。
回顾2007,觉得真是非常值得纪念的一年:
这是写完论文,照完毕业照,离开大学校园,真正走进社会的一年。
这是我从一个基本不怎么运动的人,转变成为喜欢打网球的一年。
这是我跟随“全民炒股时代”潮流第一次成为股民,才知道天下永远没有免费的午餐,没有这么大只青蛙满街跳的一年。

别了,2007,别了,上海。但愿我能在新的地方,新的起点,早日实现我的梦想。

我知道,实现梦想与回忆的,叫做现在。

posted @ 2007-12-31 21:02 Stanley.Luo 阅读(50) | 评论 (0)编辑
  2007年12月6日

这次应该说是经验总结,以下是我在工作中的几点经验总结,都是个人意见,望大家一起讨论, 多多交流,批评,指正。

1. 注意“重构”的影响程度。对于公用代码(模块)的修改尤其要慎重,到了项目开发的后期,如果不是非改不可的修改,还是不要改为好。
  例如一个典型的数据库应用程序,如果要重命名一个字段名,则下面的项都会受到牵连:
SQL Script;
Hibernate 映射文件(*.hbm.xml);
实体类;
DAO层;
表现层;

2. 关于时间。
声明一个DateTime实例,应该设置其默认值,如果不设,其值将是0001年1月1日,这样插入数据库将会出现问题。
在后台(代码,数据库)里的时间值,应该采用UTC时间(格林威治标准时间),对于CS/BS结构的应用,如果会有不同时区的用户去使用的话,不采用UTC时间将会导致时间不一致,不可比较的问题。当然在表现层还是要转换成当地时间来向用户显示的。

3. (C#)应该写internal 的地方就不要写public,例如同一个solution下会有多人开发多个模块(project),会有多个命名空间,如果你自己的子模块有一个Util类,只有你自己的模块用到,但是把它写成public了,这样很可能别人也写了一个这样的类,这样就会产生名字冲突(当然可以通过在类名前加命名空间前缀来解决,但是这样长的一串,还是不大好!)

4. 尽量为代码多打Log, 因为当你的产品拿出去用户用的时候,如果出现了问题,是不可能用开发阶段的一步一步Debug去找问题所在的。

5. 对于Web Application, 如果有IIS, 还是尽量用IIS来作平常调试,而不是用Vs.net 2005 自带的Web Server,因为他们还是有不少地方不一样的。并且产品Release之前, 要多在不同的操作系统,浏览器(即使是版本不同)测试,例如同一个网页可能在IE6与IE7完全两个样了。还有,建议使用预编译来部署,因为这样做一方面可能提高性能,一方面的把源代码隐藏。

6. 对于WCF 的Contract定义,建议化多个参数为一个参数,例如有一个OperationContract是
Login(string userName, string password), 应该先定义一个类:ParamOfLogin, 里面就两个属性:UserName, Password。 Login就定义成Login(ParamOfLogin loginParams); 这样做可以减少代码耦合性,如果哪一天需要往Login里面再加一个参数,就可以只加一个属性而用不着动Contract/接口了。

7. 写代码要写易于测试(至少是可测试)的代码。如果一段代码是无法用UT或者FT去测的话,其正确性将无法用自动化工具来保证。

8. 开发的每一个阶段都不能脱离需求(SR)。
9. 对于你给别人定的Schedule, 应该多设Checkpoint, 常问问他完全地怎么样了。

posted @ 2007-12-06 23:55 Stanley.Luo 阅读(1668) | 评论 (7)编辑
  2007年12月2日
看了Artech 的我的WCF之旅(3):在WCF中实现双向通信(Bi-directional Communication)
自己也写了个小例子, 可谓“好事多磨”, 看着人家的文章一步一步地搞这个例子也遇到了不少问题。
好在有我这双Debug查错的火眼金睛,问题都迎刃而解。

  总结起来, 以下几个问题是要注意的:
  1.baseAddress 是一定要的。 一开始我还自以为是的认为有了endpoint配置节的ABC(Address, Binding, Contract)就可以了.
        <host>
          
<baseAddresses>
            
<add baseAddress="http://localhost:10002/ComputeService"/>
          
</baseAddresses>
        
</host>

  2. 指定Callback Contract跟那一个Contract关系:
  3. 在Service实现类中设定并发模式:
  4. 要为URL 添加保留项,即开放该地址http://localhost:10002/ComputeService. 这个操作只针对Vista, 可能Windows 2003也要, 不清楚。
    如何添加呢?
    首先, 如果你打开了UAC(用户帐户控制),你需要关闭它。
    打开命令行, 使用netsh.exe 工具进行配置(Windows 2003使用httpConfig.exe)
    键入 netsh http add urlacl url=http://+:10002/ComputeService user=[Domain]\[UserName]
    关于更多为http 的url设置相关权限的信息, 参考:
http://msdn2.microsoft.com/en-us/library/ms733768.aspx.

posted @ 2007-12-02 22:17 Stanley.Luo 阅读(185) | 评论 (0)编辑
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

与我联系

常用链接

留言簿(1)

我参与的团队

我的标签

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜