2007年9月30日星期日

WatiN 一个开源的.NET Web 自动化测试工具。

说起Web 项目的自动化测试, 确实是一项挑战。象我们主要做数据集成的, Web page 比较复杂,根据数据库的返回的数据进行复杂的处理, 然后通过Grid 等多种方式显示出来, 自动化测试的难度不小。 我们也没有找到一种合适的工具。早几个月我们唯一的测试人员被解雇了, 原因就是老总不满意她的工作表现。直到现在也没有找到合适的人选, 搞得我们兼职做部分测试。

Web 的自动化测试不象Unit test。 我们有NUnit来方便的测试, 今天看到一个开源的.NET Web 自动化工具, 满有意思的, 虽说推出时间不长, 但是挺活跃的, 更新挺快。粗略看了一下, 主要是分析返回的网页, 通过各种方式找到网页元素来进行比较。要配合Internet Explorer Developer Toolbar 来使用。 Internet Explorer Developer Toolbar 我很久以前用过一小段时间,感觉还不错。

有兴趣的朋友可以试一下,里面也有入门介绍。点击这里到WatiN的主页。

Basement 装修DIY之二 Overview

装修一个basement不是一件简单的事,其中涉及到很多的方面,除了技术层面之外, 还要考虑装修规范,材料购买,时间安排等等,下面我列一下各个主要的工序。

规划设计
设计规划是很重要的一环, 直接影响到工程的大小,难度和费用等等。具体将就是如何划分区域,那里间隔为房间, 那里间隔为厅, 是否要做洗手间等等。 其中要考虑水, 电, 房子的梁, 柱,和各种管道等等。

准备工作
主要是材料的准备和工具的准备。 材料要分批购买, 部分工具要购买, 部分要租用, 其中学问不少,这部分直接影响到最终的费用多少。

政府申报和验收
这里的装修很大一部分是没有向政府申报的, 但是我还是鼓励大家向政府申报,这里要按照一定的步骤和遵循一定的规范。

Framing
具体来说就是间隔房间, 这一步也相当的重要, 直接影响到后续的各项工作的难度和工作量的大小。要考虑各种管道的分布等等。

Wiring
具体来说是电工活, 根据区域分布和功能, 负荷大小,划分出多个电路。 同时包括网线, 电话线, Cable ,卫星电缆等的布线。

Pluming
如果你的basement 有洗手间的话, 就得加上这部分的活。 主要是铺设冷热水管道到洗手盆,浴缸,和马桶。

Dry Wall
Dry Wall 的安装, 我把这部分独立出来是因为工作量大, 其中也涉及到一些技巧。

Taping
具体就是边角, Dry Wall之间的连接处理,这是最累最脏的活。

Painting
油漆, 包括颜色的搭配选择和边角的处理, 需要相当的技巧和好的工具。

Tiling
瓷砖的安装,包括地砖和墙身。如果你没有洗手间的话,这部分的活就不用做了。

Ceiling
天花板的处理, 有多种选择, 涉及到Dry Wall的安装,天花板的装饰等等

Bathroom
洗手间是整个工程最多工序, 最耗费钱, 最麻烦的地方, 包括淋浴器,浴缸, 洗手台, 马桶等等的安装。

Windows and Door
门窗的处理, 包括前期和后期的安装, 需要相当的技巧和专业的工具。

Floor
包括地毯和木地板的安装,

需要留意一点是时间的安排,因为是自己DIY,只能在周末和节假日时间做, 加上买材料的时间, 大概每个星期能干上12个小时左右,按照1800尺的single house的话,一般装修的话大概需要300-400个工时,以每周50个小时的话,大概需要半年到8个月,因此时间会拖得比较长, 要有打持久战的思想准备。

2007年9月29日星期六

Basement 装修DIY之一 开篇

这是我发表在华枫论坛上的一系列帖子的完整版。 上面记录了我第一次装修Basement的历程和经验教训。帖子发表后得到了很好的反响, 其间很多不认识的朋友打电话给我, 探讨一些装修的问题。后来也多次帮朋友做Basement的装修, 积累了更多的实际工作经验,于是我打算重新整理,放在我的博客上,整个系列是以装修的流程作为主线,加插一些实用的资料,希望对打算自己装修basement的朋友有所帮助。

那是我第一次做basement的装修,完全没有任何实际经验。 而且还要符合加拿大basement 装修的code。通过借阅大量的相关书籍和请教我的好朋友“卡城牛仔”(他在Calgary做装修已经有很长一段时间了,经验丰富, 手工好),其间还向他借了不少工具。经过差不多9个月的周末奋战, 终于顺利完成了整个Basement的装修,通过的City of Calgary的验收。整个效果出来相当不错, 完全达到我的要求。

在此感谢曾经大力帮忙的卡城牛仔,Jacky,老汤,Andy,方亮等朋友。没有你们的帮忙, 高质量的完成整个工程是不可能的。

2007年9月28日星期五

新翡翠

今晚去了中央街的新翡翠。已经有相当一段时间没有去了,感觉没有什么变化,点了几个菜, 上菜速度还是挺快了, 菜的味道没有什么惊喜,我家LD觉得还不错, 我就觉得一般。品种也不是太多。

其实Calgary的餐馆还是不少, 也经常有餐馆新开张和搬迁什么的。象新翡翠都已经开了有些年头了。在Calgary, 餐馆要不时推出新菜才有竞争力,我看大家都挺喜欢尝试新的东西, 看看那些新开张的餐馆, 都是人头涌涌,大排长龙。

Calgary的餐馆说好做也好做, 每次我们去吃饭, 人相当的多, 基本坐满, 有时甚至要等位子。说不好做也行, 竞争还是相当的厉害, 不时见到餐馆转手,结业的。

Calgary的餐馆的水准还是港式为主, 不象温哥华有各种特色, 各个地方的菜, 而且味道相当正宗,想起早两年去温哥华,确实是比calgary搞出一截。可惜就是太远。

看看什么时候有机会去温哥华大吃一顿, 不过估计最快都要两年以后了。:(.

2007年9月27日星期四

SharpDevelop Free IDE for C#, VB.NET and Boo projects



SharpDevelop 作为用一个用C#写的开放源代码的.NET集成开发环境(IDE),他支持C#和VB。NET。具有了一个现代Windows下集成开发环境所具有的各种功能, 如代码自动完成,代码重构,集成了单元测试,代码调试,表单设计等等, 兼容VS2005的project和solution 文件。

这是其中主要的功能。
The features we like most...
• Forms designer for C#, VB.NET and Boo
• Code completion for C#, VB.NET and Boo (including Ctrl+Space support)
• Integrated NUnit support plus code coverage (NCover)
• Integrated debugger
• Code Analysis with FxCop
• Refactoring support
• Multi-framework support (.NET 1.1 and 2.0, Mono, Compact Framework)
• XML Editing (source and tree view) with XPath search
• Parser-based code converter (C# to VB.NET / Boo and more)
• Compile C#, VB.NET & Boo code in the IDE out-of-the-box
• Code AutoInsert (Alt+Ins)
• Xml documentation preview
• Setup projects supported with Windows Installer XML (WiX)
• Subversion integration
• Open source, LGPL licensed
And here are some more...
• User interface translated to many languages
• Write C#, ASP.NET, ADO.NET, XML, HTML code
• Project or File-based development (Project Scout & File Scout)
• Rich project options
• Syntax highlighting for C#, HTML, ASP, ASP.NET, VBScript, VB.NET, XML
• Intelligent braces
• Folding
• Bookmark your code
• Code template support
• Component Inspector
• Feature-rich Find & Replace dialogs (including incremental search)
• Easily extensible with external tools
• Easily extensible with Plug-Ins
• Re-host SharpDevelop with SDA
• ... and much more

如果你做一些小项目的话,不用打开笨重的VS。NET。SharpDevelop 能胜任有余。 SharpDevelop 开放源代码, 你可以研究一下一个IDE是怎么构造的, 甚至修改,加进你所需要的功能。

当然, 做.NET 开发, 首选平台时VS.NET. 但是VS.NET价格不低又笨重。不妨试一试SharpDevelop

点击这里看Feature Tour

DIV 的使用

今天做了一点HTML的活, 就是显示一个Log文件内容。 因为内容不少, 因此需要在内容之外加一个ScrollPane, 就是如果内容超过浏览器的长或宽, 就自动加上水平或垂直滚动条。最简单的方法就是把内容放在DIV内。 DIV可以设置成固定的大小或百分比。 其中主要是要注意几个CSS的属性

overflow:auto 根据内容的大小自动插入水平,垂直 或同时插入水平垂直滚动条。 这是最常用的方式。
overflow:scroll 不管内容大小,自动插入水平和垂直滚动条。 只是在内容需要时才enable。
overflow:visible 根据内容大小自动调整Block的大小。 只是省缺值。 但是IE和FireFox具有不同的效果。不推荐使用。
overflow:hidden 仅仅显示在Block里面的内容。其他内容将不会显示。

还可以设置背景色, border,padding 等等。用处非常多。

2007年9月26日星期三

如何计算字符串的长度。

我们自己写了一个Grid。 其中一个功能是根据每列的数据, 计算出每一列的最小宽度, 然后用 style="width:90px" 的方式Render出来。 其中涉及到根据每一行字符串的长度转换成Pixel。然后取最大值。

具体的转换关系是:
1 point = 1/72 inch
1 pixel = 0.75 points.

那么一个character 是多少Pixels呢? 答案是这条公式: (Column Width) Pixels = Column Width (Characters) × 5 + 5。


例如 "Hello World" 是 11×5+5=60 Pixels。

自制网线


我在国内负责整个机房的管理和网络规划,安装。 接触的多的是Cisco的高端路由器, 交换机等, 网线倒很少做, 因为有大量现成的。有时需要布线也是找硬件师傅做的网线头。 但是我来加拿大时还是带了一把做网线/电话线的钳子, 已被不时之需。 确实也派上用场。

上次买了NAS, 其中就要自己做千兆网线。 今天也需要做一条10baseT的。 每次做网线都要google一下网线的接法, 因为我从来都记不住。 现在我把做法贴在这里。以后就不用到处找了。

2007年9月25日星期二

中秋月饼


下面转一片关于月饼的文章, 转自中国鲜花礼品网。

  中秋节吃月饼的习惯,在我国历史悠久。关于中秋节吃月饼的由来,有不同的说法。普遍的说法是:唐朝时,太宗李世民为征讨北方突厥,平定其屡次的侵犯,令手下大将李靖亲自率部出征,转战边塞,结果屡建奇功。八月十五这天凯旋归京。为了庆祝胜利,京都长安城内外鸣炮奏乐,军民狂欢通宵。当时有个到长安通商的吐蕃人,特地向皇上献圆饼祝捷。太宗李世民大喜,接过装璜华丽的饼盒,取出彩色圆饼,指着悬挂天空的明月说道:“应将胡饼邀蟾蜍(即月亮)。”随后,将圆饼分给了文武百官。从此 ,中秋节吃月饼的习俗便流传了下来。

● 月饼起源

  相传我国古代,帝王就有春天祭日、秋天祭月的礼制。在民间,每逢八月中秋,也有左右拜月或祭月的风俗。“八月十五月儿圆,中秋月饼香又甜”,这句名谚道出中秋之夜城乡人民吃月饼的习俗。月饼最初是用来祭奉月神的祭品,后来人们逐渐把中秋赏月与品尝月饼,作为家人团圆的象征,慢慢月饼也就成了节日的礼品。

  月饼,最初起源于唐朝军队祝捷食品。唐高祖年间,大将军李靖征讨匈奴得胜,八月十五凯旋而归。

  当时有人经商的吐鲁番人向唐朝皇帝献饼祝捷。高祖李渊接过华丽的饼盒,拿出圆饼,笑指空中明月说:“应将胡饼邀蟾蜍”。说完把饼分给群臣一起吃。

  南宋吴自牧的《梦梁录》一书,已有“月饼”一词,但对中秋尝月,吃月饼的描述,是明代的《西湖游览志会》才有记载:“八月十五日谓之中秋,民间以月饼相遗,取团圆之义”。到了清代,关于月饼的记载就多起来了,而且制作越来越精细。

  月饼发展到今日,品种更加繁多,风味因地各异。其中京式、苏式、广式、潮式等月饼广为我国南北各地的人们所喜食。

  月饼象征着团圆,是中秋佳节必食之品。在节日之夜,人们还爱吃些西瓜、水果等团圆的果品,祈祝家人生活美满、甜蜜、平安。

● 月饼品尝

中秋佳节,家家都要吃月饼.但是,吃月饼也是有讲究的:
一、 先吃咸后吃甜.如有甜、咸两种月饼,应按先咸后甜的顺序来品尝,否则就吃不出味道来。

二、品尝月饼伴茶水.月饼吃多了易腻,若配饮一杯淡茶(以花茶为宜),边吃 边饮,味道更是妙不可言。

三、 月饼要适量.月饼中含糖量和油脂较高,吃多了则会引起肠胃不适,尤其是老人、儿童或肠胃功能较弱者,吃时更要注意,一定要适量。

四、要吃新鲜月饼.过节时人们往往一次买许多月饼,而月饼放置时间久易引起馅心变质,吃后容易发生食物中毒.因此,月饼最好随买随吃。

● 月饼品尝

一般家庭过节时,所买月饼大都能到节日过后,甚至更长时间,为了防止月饼的变质,对吃剩的月饼应妥善保存的饼馅一般分为软硬两种.软馅中含水分较多,只能保存7到10天左右,而硬馅月饼则可保存1个月左右。对那些还未使用冰箱的家庭,月饼一般不宜存放在密封的容器内久藏,最好存放在竹篮里,在上面加盖一张干净纸,然后挂在通风阴凉的地方.盒装月饼,应将盒盖打开,使其通风。另外,因月饼中含脂肪较多,存放时还应注意避光,以防油脂氧化酸败。中秋月饼是应时食品,最宜现产、现销和现买、现吃,不宜放过久,才能保持月饼的色、香、味和应有的特殊风味。

那么,应怎样保存月饼呢?

.月饼要轻拿轻放,尤其是苏式月饼因皮酥松,最容易破碎。如果饼皮脱落,不仅影响外观,而且影响口味、质量,并且易受潮变质。

.月饼含有丰富的油脂和糖分,受热受潮都极易发霉、变质,所以一定要将月饼存放在低温、阴凉、通风的地方。一般来说,月饼皮软、水分大、易变质,最好将月饼连带包装盒一起放入冰箱冷藏室,食前一小时取出,可保证它的口味。在25摄氏度的气温环境下,杏仁、百果等馅心月饼可存放15天左右;豆沙、莲蓉、枣泥等馅心月饼,存放时间则不宜超过10天;如果气温超过30摄氏度,月饼存放的时间还应该适当缩短,一般不宜超过7天;至于鲜肉、鸡丝、火腿等月饼,应随买随吃。

.月饼存放时,不宜与其他食品、杂物放在一起,以免串味,失去应有的口味和特色。存放期间还要注意防止蟑螂、蚂蚁、老鼠等侵食,以防传染疾病。为保证月饼的质量新鲜,购买盒装月饼或散装月饼时,均应看清生产日期或出厂日期,以便掌握保存期。

● 吃月饼禁忌

◎糖尿病人:因月饼含糖量高,吃得过多,可使血糖急剧升高,使病情加重。

◎胆囊炎、胆石症病人:患这两种病的人不宜多吃月饼,重则可以引起疾病发作。饱食过多的月饼可能产生急性胰腺炎,这种病发病急,少数急病患者可在短期内死亡。

◎老年人:他们的消化吸收能力较差,多食可加重脾胃负担,引起消化不良、腹泻等疾病。

◎婴幼儿:他们的消化系统发育不够健全,消化器官十分娇嫩和脆弱,难以承受大量高糖、高脂肪的食品。

◎十二指肠炎或胃炎的患者:因月饼使胃酸大量分泌。对疾病愈合不利,应控制食用。

◎患有高血压、高血脂和冠心病的人:千万不要多吃月饼。因为月饼中的糖、油脂等可增加血液稠度,加重心脏缺血程度,甚至可诱发心肌梗塞。

● 品月茶思

  中秋节赏月吃月饼,常有清茶相伴。可国人茶道精深,吃茶也是一门学问。煎茶的候火最难掌握,其妙决在于东坡的“蟹眼已过鱼眼生、飕飕欲作松风鸣”。按震钧所说:“细沫徐起,是为蟹眼,少顷巨沫跳珠,是为鱼眼,时刚微响初闻,则松风鸣也。自蟹眼时即出水一二匙,至松风鸣时复入为之止其沸,即下茶叶,少顷水再沸,如奔涛溅沫,而茶成矣。”这煎茶如此繁杂,对于现在的人,听听即是,不必劳心把玩。中秋品茶重在谈天赏月,以绿茶为便,多为冲泡法,讲究有,但感觉还不算麻烦。

茶壶泡饮法 这种泡法一般不宜泡饮细嫩名茶,因水多,不易降温,会闷熟茶叶,使茶叶失去清鲜香味。壶泡法适于冲泡中低档绿茶,这类茶叶中多纤维素,耐冲泡,茶味也浓。泡茶时,茶叶也浓。泡茶时,先洗净壶具,取茶入壶,用100℃的初开沸水冲泡至满,3分钟-5分钟后即可酌入杯中品饮。饮茶人多时,用壶泡法较好,因不在欣赏茶趣,意在饮茶谈心,或佐食点心,畅叙茶谊。


瓷制盖碗杯泡饮法 这种杯子适于泡饮中高档绿茶,如一二级炒青、珠茶、烘青、晒青之类,重在适口、口味或解渴。一般先观察叶的色、香、形后再大杯冲泡。可取“中投法”或“下投法”,用95℃-100℃的初开沸水冲泡,盖上杯
盖,以防香气散逸,保持水温,以利茶身开展,加速下沉杯底,待3分钟-5分钟开盖,嗅茶香、尝茶味、视茶汤浓淡程序,饮至三开即可。杯泡法,茶味与水的比例因人口味而定,一般以200毫升水泡3克茶为适中。喜浓饮者可略多加茶叶。

● 月饼分类

  我国月饼经过长期的演变和发展,花样不断翻新,品种不断增加,地区的差异使品种外观、口感、味道各具独特风格。

  我国月饼品种繁多,按产地分有:京式、广式、苏式、台式、滇式、港式、潮式、甚至日式等;就口味而言,有甜味、咸味、咸甜味、麻辣味;从馅心讲,有五仁、豆沙、冰糖、芝麻、火腿月饼等;按饼皮分,则有浆皮、混糖皮、酥皮三大类;就造型而论,又有光面月饼、花边月饼和孙悟空、老寿星月饼等。目前,全国月饼可分五大类:京、津、广、苏、潮。花色近似,但风味却迥然不同:京津月饼以素字见长,油与馅都是素的;而广式月饼则轻油而偏重于糖;苏式的则取浓郁口味,油糖皆注重,且偏爱于松酥;潮式月饼身较扁,饼皮洁白,以酥糖为馅,入口香酥。

  其它如云南的“滇式月饼”、宁波的“宁式月饼”、上海的“沪式月饼”、厦门的“庆兰月饼”、福州的“五仁月饼”、西安的“德懋恭”水晶月饼、哈尔滨的 “老鼎丰牌”月饼、扬州的“黑麻月饼”、绍兴的“干菜月饼”、北京的“稻香村月饼”、济南的“葡萄软馅”月饼和“水晶豆蓉”月饼等著名品种,风味特点各有千秋。

  京式月饼,作法如同烧饼,外皮香脆可口;苏式月饼外皮吃起来层次多且薄,酥软白净、香甜可口,外皮越松越白越好;广式月饼的外皮和西点类似,以内馅讲究著名;传统台湾月饼又称月光饼,以番薯为材料,口味甜而不腻,松软可口;清真月饼,是信仰伊斯兰教的回民所特有之月饼,不含猪的成份,以清真牛肉月饼最为出名。

  “年年中秋明月夜,岁岁月饼有不同”,近年来,新款式月饼层出不穷。

  下面我们就来看看现今的新款月饼:
冰皮月饼:特点是饼皮无须烤,冷冻后进食。以透明的乳白色表皮为主,也有紫、绿、红、黄等颜色。口味出各不相同,外表十分谐美趣致。

果蔬月饼:特点是馅料主要是果蔬,馅心滑软,风味各异,馅料有哈密瓜、凤梨、荔枝、草莓、冬瓜、芋头、乌梅、橙等,又配以果汁或果浆,因此更具清新爽甜的风味。

海味月饼:是比较名贵的月饼,有鲍鱼、鱼翅、紫菜、鳐柱等,口味微带咸鲜,以甘香著称。

纳凉月饼:是把百合、绿豆、茶水糅进月饼馅精制而成,为最新的创意,有清润、美颜之功效。

椰奶月饼:以鲜榨椰汁、淡奶及瓜果制成馅料,含糖量、含油量都较低,口感清甜,椰味浓郁,入口齿颊留香。有清润、健胃、美颜功能。

茶叶月饼:又称新茶道月饼,以新绿茶为主馅料,口感清淡微香。有一种茶蓉月饼是以乌龙茶汁拌和莲蓉,较有新鲜感。

保健月饼:这是前年才出现的功能月饼,有人参月饼、钙质月饼、药膳月饼、含碘月饼等。

像形月饼:过去称猪仔饼,馅料较硬,多为儿童之食;外观生动,是孩子们的新宠物。

迷你月饼:主要形状小巧玲珑,制法精致考究

中秋快乐


今天是传统的中秋佳节。因为是星期二, 没有象往年那么热闹,一大帮人聚在一起吃吃喝喝。今晚去了附近的一个好朋友家过。吃过上月饼,柚子,葡萄等应节食品,过了在加拿大的第五个中秋节。

今天的月亮挺圆的, 坐在电脑旁,透过Bonus room的窗口就可以清楚的看见的皎洁的月亮。以前在国内过中秋节可热闹了。 食品也更加的丰富多采。 象小芋头,芝麻糊, 凉粉,菱角,柿子等等。最好吃的紫须炒田螺更是美味非常, 可惜已经很久没有吃过了。

每逢佳节倍思亲,特别是我们在外的游子,心里面无时不刻的记挂着国内的亲人。 希望老妈的移民申请加快处理, 早日团聚。

在这里祝大家中秋快乐, 身体健康, 心想事成!

2007年9月24日星期一

使用links方式安装Eclipse插件

一般来说,eclipse插件都是安装在plugins目录下。其实这样有几个问题。
1. 安装了许多插件之后,eclipse变的很大,最主要的是不便于更新和管理众多插件。
2. 如果我们同时装有几个版本的Eclipse,我们不想重复安装同一插件到各个Eclipse。
3. 如果我们想暂时去除不想删除某些插件不能够做到。

用links方式安装eclipse插件,可以解决这个问题。 现在假设我的eclipse安装目录是C:\eclipse,待安装插件目录是C:\eclipsePlugins ,我将要安装JFormDesigner这个插件。

先在C:\eclipsePlugins目录里,建立子目录JFormDesigner, 然后在子目录JFormDesigner建立eclipse子目录。将下载到的JFormDesigner-3.1-eclipse.zip解压到C:\eclipsePlugins\JFormDesigner\eclipse目录下。

然后在 eclipse安装目录C:\eclipse目录中建立一个子目录links,在links目录中建立一个link文件,比如JFormDesigner.link,文件内容为 path = C:/eclipseplugins/JFormDesigner 即这个link文件要对应一个插件目录。

Eclipse 将会到指定的目录下去查找 eclipse\features 目录和eclipse\plugins 目录,看是否有合法的功能部件和(或)插件。如果找到,附加的功能部件和插件在运行期配置是将是可用的。

几点说明:
 1. 插件可以分别安装在多个自定义的目录中。
 2. 一个自定义目录可以安装多个插件。
 3. link文件中path=插件目录的path路径分隔要用\\或是/
 4. 在links目录也可以有多个link文件,每个link文件中的path参数都将生效。

JFormDesigner 优秀的Java GUI设计器


我做Java GUI设计时间不长, 原来一直是直接写代码,大家都知道Java GUI设计最烦的是各种Layout Manager.这里有官方的教程。 后来用过免费的Abeille Form Designer . 是在不敢恭维, 又转会手工写代码了。 知道我们公司买了JFormDesigner 的license。 用过之后爱不释手。从此我的GUI设计就变成小菜一碟了。

JFormDesigner是一个创新型Java Swing的图形用户界面/GUI设计工具。它可以让GUI设计变得快乐而轻松,使您能专注于真正的任务,最方便的是它对JGoodies的出色支持,可以让您在短时间里写出具有专业外观的窗体。它可以独立运行或者继承在其他IDE里, 例如它提供了Eclipse 和 IntelliJ IDEA的插件。并且含有本地化支持,自动生成代码等功能。

我现在用的是Eclipse的插件。 最新版本是3。1版。 可惜不是开源的。强烈推荐。

2007年9月23日星期日

女儿的第一次外出表演


一年一度的中秋节暨社会服务机构展览在TD Square 四楼的“空中花园”举行。和往年一样, 有一些机构团体展览,表演, 抽奖等,今年特别的是我女儿也有份参与演出。

今年由于天气不大好, 早上开始就下小雨。宣传也不多,因此和往年相比, 人明显是少了很多。我记得去年人不少。 我女儿参与的舞蹈排在第一个出场。女儿盼望着这次演出很久了。她既兴奋又有点紧张, 来的路上已经不停的问这问那了。

女儿跟随“东方艺校”跳舞已经一年多了。当初送她去跳舞, 纯粹是因为她喜欢跳舞,参加舞蹈班一来可以丰富周末的生活, 二来可以认识多点朋友,也可以培养一下乐感。我们也一直坚持了下来,原来一直在小班学, 因为孩子年纪太小,人员也时有变动, 没办法排练出一个可以表演的节目。 女儿老是问我什么时候有表演。 看得出她表演的欲望挺强的。 这次升级到中班, 跟着练了几次就有了一个表演的机会。

刚到中班时,她有点跟不上, 其他的小朋友都已经跳了一段时间了。 一个节目的各种动作挺多, 一时记不住。就站在那里不知所措。 后来很快的就上手了。这次表演我开始还有点担心, 怕她一紧张就忘了动作, 不过看起来还不错,第一次出来表演, 算不错的了。

星期二就是中秋节了,祝大家中秋快乐,心想事成!

2007年9月22日星期六

北京填鸭三吃


昨天星期五,惯例都是出去吃饭了。这次准备去吃北京填鸭。因为我女儿星期天要在空中花园表演舞蹈。但是表演的服装还没有准备好,但知道在Sears有卖。于是打算星期五下班后接上老婆孩子先去买衣服, 然后再去吃饭。

这次约了南边的朋友去吃北京填鸭。这家餐馆在canyon Meadows Drive 和 Macleod Trail S交界的东北角的一个Mall里。转上canyon Meadows Drive 往东开, 看见一个加油站“DOMO”。 就在加油站的后边, 挺容易找的。 这家餐馆叫 Bill’s Peking House。 由于没有在免费的中文报纸卖广告, 因此去过的国人不太多。 主要是面向西人的。

餐馆的装修和服务挺不错, 因为主要面向西人,因此味道比较西化。 其中的北京填鸭三食做的还不错。 价钱差不多37刀, 不能说是便宜, 也不是太贵, 据说比“厚得福”要便宜。我们叫了北京填鸭三食, 还有一个青菜,一个生炒糯米饭, 加上一个点心。 4个大人一个小孩, 最后吃不完要打包。

填鸭三食分别为片皮鸭, 鸭肉炒牙菜和鸭骨豆腐汤。片皮鸭配上甜面酱和青瓜,葱段,用薄饼夹起来吃, 味道相当不错, 就是甜面酱有点太稠。鸭肉炒牙菜也不错, 牙菜可以换其他菜, 但是要加钱。鸭骨豆腐汤的汤清甜。一家三口吃的话, 基本不用叫其他菜了。

另外叫的椒丝腐乳通菜, 茎太多而且有点偏甜,生炒糯米饭太油, 而且没有最好吃的菜头粒, 虾米等等,我不大喜欢。

总的来说, 北京填鸭还是不错的。 有兴趣的话可以去试试。

初秋的Glenmore Park


今天和朋友一家去南边的Glenmore Park玩, Glenmore Park 对我来说已经不陌生了,想起刚来Calgary时不久就去了, 那是03年的夏天, 风景非常漂亮。 后来的网友聚会也在那里,以后每年我都会去一次。Glenmore Park 是Calgary 市内BBQ 最好的去处。今天早上风有点大, 天色也不是太好。 去之前我还有点担心树叶还不够黄,谁知道一进入Glenmore Park, 一片初秋的气息扑面而来。黄的, 红的, 绿的,色彩斑斓。


去Glenmore Park, 最直接的走法是沿着CrownChild Trail SW 一直往南开, 就直接进入Glenmore Park 了。 但由于Glenmore Park 现在是实行单行, 只能由北往南, 因此只好的走法是在66 Ave 右拐, 然后左拐进入37 St, 从North Glenmore Park 进入, 停车在入口几百米的一个大的 Play Ground处。


这个大的Play Ground 是孩子的天堂。周末很多家庭带着小孩来玩, 孩子很容易就找到玩伴, 大人可以坐在傍边的凳子上看着小孩玩。 这里也是BBQ的好去处, 有多处BBQ炉子, 傍边还有一个小亭子和洗手间,也有水源, 非常适合BBQ。


不远的Glenmore水库风景宜人, 不时见到独木舟, 皮划艇, 和白色的帆船在湖中,太阳照在湖面上, 泛起点点白光,霎时好看。 见到几个西人老头老太太架起望远镜在看着什么,原来在看湖边的飞鸟。不是见到有人在跑步, 骑单车和散步。

太阳慢慢的出来了, 照在身上暖洋洋的,风也停了下来。刚才的一点凉意已经无踪无影了。初秋是最好看的,红色, 黄色 和绿色混成一片,呼吸着新鲜的空气,看着眼前的孩子在开心的玩,那一刻内心感到无比的满足。我深深的吸了一口气, 慢慢的感受着初秋的气息。



Glenmore Park 的设计非常科学, 除了有汽车行驶的主路外, 靠近湖的一边还有一条专门给骑单车的路, 和一条行人的路,在公园里, 你可以放心的让孩子们疯跑。 其实在湖边还有一条路, 可能知道的人不是太多, 沿着斜坡下到湖边就可以看得清楚, 湖边满是鹅卵石, 湖水不太凉,孩子们甚至可以光着脚丫下去玩水。


到Glenmore Park 去的最好时间是下午3点后, 傍晚的太阳晒在身上暖暖的, 非常舒服,黄昏的Glenmore Park 是最漂亮的。 这个星期二,带着你的爱人来Glenmore Park过上一个浪漫的中秋节吧。

2007年9月20日星期四

Get the file type icon with Java


我们的项目产生各种报表, 其中一个功能是能将报表生成各种文件格式, 如Excel, Word, PDF, Html 和TXT文件。 我们弹出一个Dialog来让客户选择直接打开, 还是通过一个File Chooser来选择保存的文件名和路径, 保存在客户的机子上。客户抱怨说如果硬盘已经存在同名的文件。 没有任何提示就覆盖掉源文件。今天做的一个改进是检查是否已经存在同名文件, 如果有的话就弹出一个“Confirm File Ovewrite”的Dialog, 让客户选择是否覆盖。Looks like this one.

首先根据文件名来生成 File 对象。然后根据file.Exists() 来判断是否已经存在该文件。

File file = new File(filePath);
if( file.exists())
{
// 显示Dialog, 并根据客户的选择做相应的处理, 代码省略。
}

参照微软的样板, 显示文件名, 文件大小, 和文件最后修改时间等等。 其中重点是根据文件的类型显示出一个Icon(32x32)。 当然我们可以根据文件的后缀来加载相应的Icon, 但是一来拓展性差, 二来象Html文件, 在IE是省缺浏览器时显示IE的图标, FireFox是省缺浏览器时显示FireFox图标就做不到了。

最简单的方法是从系统取相应的图标。 代码如下:
import sun.awt.shell;

Public Icon getIconByFileType( File file )
{
try
{
ShellFolder shellFolder = ShellFolder.getShellFolder(file);
return shellFolder.getIcon(true);
}
catch (Exception e)
{
// do something
return null;
}
}

此方法仅适用于运行Sun JVM 的平台。在WinXP下java 1.6 下测试通过。

那么还有另外一种方法适合各种平台,但是只能取小图标(16x16)。
Public Icon getIconByFileType( File file )
{
try
{
FileSystemView view = FileSystemView.getFileSystemView();
return view.getSystemIcon(file);
}
catch (Exception e)
{
// do something
return null;
}
}

一旦取得图标, 就可以通过JLabel的setIcon 方法来把图标显示出来。

Inno Setup 开源的免费安装程序制作工具。


上次介绍了JSmooth 来将Jar文件打包成自解压文件, 今天介绍Inno Setup 是一款免费的安装制作工具。功能强大,支持 pascal 脚本,既有适合新手的脚本向导,也有适合高手的的脚本编辑器。是制作安装软件的好帮手。

里面还有各种工具来帮助你制作装业的安装程序, 如 ISTool, Inno Setup Form Designer 等等。

点击这里到Inno Setup 的主页。

2007年9月19日星期三

JSmooth 开源的Java程序打包器


我们做好的Java程序, 如何方便发布呢? 这个开源工具能够帮到你。 首先你要将Java程序打包成Jar文件。 这在Eclipse里导出就可以。然后用这个工具做成一个自解压文件, 双击文件就可以运行。

JSmooth 里面有各种设置, 如图标,程序入口类,执行参数,虚拟机的配置等等。

点击这里去JSmooth 的主页下载。

2007年9月18日星期二

Eclipse 流行的Java集成开发环境


.NET开发, 我是用VS.NET2005。 Java开发, 我使用Eclipse,我喜欢Eclipse 不仅因为它是免费的, 而且支持众多插件, 启动速度快,集成了JUnit, Ant , CVS等等,功能非常齐全。

Eclipse是一个开放源代码的软件开发项目,Eclipse平台是IBM向开发源码社区捐赠的开发框架,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成

目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括 Borland、Rational Software、Red Hat及Sybase,最近Oracle也计划加入到Eclipse联盟中。

点击这里下载Eclipse。解压在硬盘就可以, 不需要复杂的安装。

点击这里, 有近千个插件, 可谓是应有尽有, 自己慢慢挖掘吧。

2007年9月17日星期一

女儿的学校新生活

女儿上小学已经有2个星期了, 现在最头痛的是给她准备lunch 和snack。每次给她准备的东西都剩大半回来, 问她就说时间不够, 吃不完。最离谱的两次是午饭压根没有动, 她说是饭盒太紧打不开, 又没有老师帮忙, 就没有吃午饭。 现在午饭基本吃不到一半, 带去的水果到是每次都吃完。

晚上接她回来就说肚子饿,我在做饭时已经吃了不少东西,幸好晚饭还能吃完。估计是午饭时一帮小孩忙着聊天什么的,顾不上吃饭。 也不知道下午上课时会不会肚子额。

女儿现在非常喜欢上学, 交了很多新朋友。进步很快, 我每天也花半小时和她温习一下功课。特别是认字方面明显进步很快, 经常受到老师表扬。她也很有兴趣读书, 一放学回来就要读书给我听。

看着她这么喜欢上学, 我也很开心。希望她也和我一样,主动学习,对学新东西充满热情, 而不是要别人逼着学。因为只有靠自己自觉才能真正学到东西。

Hibernate Synchronizer 不错的Hibernate插件

应用Hibernate, 最繁琐的是写Mapping文件和POJO,上次介绍了Middle-Gen 来生成Mapping文件和从Mapping文件生成POJO. 一来比较麻烦, 而来据说错误挺多。今天介绍另外一种Eclipse的插件Hibernate Synchronizer。
Hibernate Synchronizer插件可以生成Hibernate的配置文件,Mapping文件以及生成POJO。让您在修改映射文档时,无需考虑更新Java代码,它会在您进行编辑的时候以一种非常类似于Eclipse的方式自动更新 Java代码。通过为每个被映射的对象创建一对类,一个基类和扩展类,当您修改映射时,它可以随意 重写这个基类。至于扩展类,可以在这个子类中加入业务逻辑和其他代码,而无需担心它会被自动改写。Hibernate Synchronizer还包括一个用于Eclipse的新编辑器组件,为此类文档提供智能辅助和代码自动完成功能。

安装方法有两种,
1. 使用Eclipse的内置Update Manager安装Hibernate Synchronizer。地址是:http://hibernatesynch.sourceforge.net。 但是只有2.3.1。 不建议用这个老版本再Eclipse3.2

2. 点击这里下载最新版3.1.9. 建议下载这个版本后解压到Eclipse目录下面就好。


我试用了一下,3.1.9 完全兼容Eclipse 3.2。但生成的配置文件要手工修改一下, 感觉非常不错。

这里有一篇介绍文章, 可以参考一下。

这里还有一篇。

2007年9月16日星期日

金六福

今晚忙得一塌糊涂。 女儿老想出去吃饭。 于是就去了较近的金六福。

金六福开张不久的时候老去,一来时价钱合理,二来是很多新菜式, 味道非常好。 后来听说换了师傅, 味道也差了, 就不再去了。 有一次中午去,点的炒粉面之类, 觉得味道相当差,就再也没有去了。最近听说有换了师傅, 以前一个认识的师傅去了那里。 那个师傅的手艺是不错, 于是今天去看看。

去到时候差不多坐满了。 拿到菜牌, 发现很多以前菜牌上的菜都划掉了。 点了2个以前吃过的。 看着这么多人, 心想可能要等很久了。 出乎意料的是, 上菜非常快, 简直是光速。不过菜的味道没有以前的好。不知道是我们点的菜不对还是什么问题, 总之就得不如以前。价钱到没有什么变化。

好处是服务不错, 上菜速度快,但味道就一般。

2007年9月15日星期六

什么时候应该使用Hibernate/NHibernate

我公司的项目应用了NHibernate, 近来重新看了一下Hibernate,搭建一个Hibernate的环境来探讨一下Hibernate的高级应用。在使用NHibernate的过程中, 也积累了一些经验。 今天谈谈我对Hibernate/NHibernate 的一些看法。

Hibernate作为现在最流行的开源ORM项目,已经推出了Version 3了。NHibernate作为在.NET平台的实现, 发展势头也挺好。现在很多人都在使用Hibernate/NHibernate。也在很多地方取得了成功。但是我们不能陷于为了使用Hibernate/NHibernate而使用, 要根据实际情况来决定。

Hibernate/NHibernate 使我们能够很容易实现数据持久化,最常见的是保存在数据库里。 当然数据持久化可以有很多形式, 例如保存在文件,卡片等。Hibernate/NHibernate就是一个工具来帮助我们把对象持久化在数据库里。我们只需要和对象打交道而不用写大量的复杂的SQL语句来操作数据库。

如果我们的应用程序支持多种数据库,例如Oracle, SQL Server,MySQL,PostgreSQL 等, 大家都知道各种不同的数据库的支持的SQL标准并不一样。如果我们把SQL语句嵌入在程序里,无论是开发, 测试,维护都是一场恶梦。Hibernate/NHibernate 就显示出优越性, 我们只需要和对象打交道, 而不用关心底层的是什么数据库。Hibernate/NHibernate 通过配置文件可以支持多种数据库。 但是在设计时也要注意一些问题。 例如有些数据库不支持字段的自动增量, 我们最好用Sequence来代替。 如果SQL Server 不支持DateTime.MinValue。 因此如果你把DateTime.MinValue 保存到SQL Server就会出错。

Hibernate/NHibernate 支持2级缓存和第三方的缓存实现,极大的提高了性能。支持多种缓存同步策略。

如果你只是简单的对数据进行增加, 删除, 查询。那就根本不需要Hibernate/NHibernate。 ADO.NET 2.0 里面都有数据持久化的能力。

Hibernate/NHibernate只是适用于中小型的数据, 如果你的数据量比较大,数据之间关系比较复杂,对性能的要求比较高的话, 还是需要通过优化的SQL 和各种存储过程来实现。大家可以看一下IBatis.Net. IBatis.Net可以让你充分利用sql的强大功能

Hibernate/NHibernate 比较灵活,要想熟练掌握不容易, 但网上资源较多, 文档比较好。至于用不用Hibernate/NHibernate。就看你的实际情况了。

2007年9月14日星期五

桃园餐厅

又到了星期五, 今天本来打算去松湖小馆吃晚饭, 但是今晚Downtown很难找停车位,加上松湖小馆前面正在修路, 于是停在旁边的租车公司, 放下LD和孩子先去, 然后我去找地方停车, 谁知道松湖小馆满座, 加上我们没有定位, 于是只要改地方了。

最后决定去桃园吃, 因为上个星期看到门口很大的广告, 上面的菜式看上去很吸引人。幸运地在餐厅地对面找到了停车的地方,也不用等位。但是选择不是太多, 特别是套餐比较少。餐牌做的也不大好,我们翻了半天菜牌也不知道点什么菜。门口大幅广告上的人参鸡也没有, 据说要等到天冷才有,既然现在没有, 上面也没有写明什么时候有, 贴这个广告完全是误导和不知所谓。 最后点了个上面腊味煲仔饭。 结果等了超过40分钟才上来。 而且是煮糊了, 可以闻到相当大的糊味,而且饭太硬。味道一般但和广告上面的照片差的太远。 另外的上海拉面还可以, 酱油王炒河粉一般。

总的来说不是太满意。希望下次去的时候有改善。

2007年9月13日星期四

搭建Hibernate 环境。

昨天忙了一晚上, 终于搭建好Hibernate的试验环境。 包括

1. Hibernate 3.2 Hibernate 的核心部分
2. Hibernate extension 2.1.8, 以及根据HBM文件生成POJO。
3. Hibernate Middlegen r5 根据数据库生成HBM文件
4. MySQL Connector for java 5.0 Java 下连接MySQL数据库的驱动程序。
5. MySQL5.0 数据库。
6. Eclipse 3.2 集成开发环境。

各项安装都很简单。以前的Hibernate/NHibernate 的Hbm和POJO文件都是手写的, 今天想试一下自动生成。我是在Eclipse下调用Ant来运行Middlegen的。 按照说明配置好,很顺利的就生成了Hbm文件。 但在生成POJO是老是报错, 说找不到Class。 百思不得其解, 后来上网一查, 原来Middlegen不支持Hibernate 3。 没办法, 只要有下载了Hibernate 2.1.8. 然后在Build.xml内指向Hibernate 2才顺利的生成那个POJO。 打开POJO发现报错, 原来找不到org.apche.Comm 的包,只好又上网下载了org.apche.Comm的包才解决问题。

本来想省点事, 结果花了更多的时间, 倒不如自己手写Hbm和POJO. 况且Middlegen对于比较复杂的表, 生成的Hbm文件有问题, 还要自己修改。

当然,也可以独立安装Ant, 不通过Eclipse来构建项目。

大统华的Cupon

上个星期, 在大统华每买满10刀就送一刀的Cupon。不知不觉都已经累计了10张了。 但Cupon的使用有很不好的限制, 只能在星期一到四使用, 而且是每买满10刀才能用一张。首先是使用时间, 我想很多人平时都要上班, 下了班要接孩子, 做饭等等, 都是星期五晚或周末才去买菜。 有了这个限制, 在很多人手中, 这个Cupon就是一张废纸。其次是每买满10刀才能用一张, 更加是过分, 看看其他地方的Cupon都没有这个限制。变相的是买20刀才有1刀的折扣。 另外是要领Cupon, 还要提供Zip Code。 明显是一次市场调查,通过Zip Code 的统计来分析在大统华购物的人数分布,购物额等。

总的来说, 这次所谓的买满10刀送一刀的Cupon就是一次不折不扣的市场调查行为,另一方面还增加了销售额。真所谓是一举两得。 大统华的东西一向比较贵,广大的消费者并没有得到什么实惠。

2007年9月12日星期三

MySQL 精巧的SQL数据库管理系统


由于准备搭建一个环境来做一些Hibernate的测试, 因此需要一个数据库。 虽然我已经安装了Oracle 10g和SQL Sever 2005, 但是由于这些数据库都太复杂了。 我只需要一个精巧的SQL数据库管理系统。 在候选名单有MySQLPostgreSQL。 咱单位我已经装了PostgreSQL, 因此这次就打算装MySQL。

MySQL是一个精巧的SQL数据库管理系统,你可以自由使用。它的强大功能、很好的灵活性、丰富的应用编程接 口(API)以及精巧的系统结构,受到了广大自由软件爱好者的欢迎。,目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP), 可见MySQL的欢迎程度。目前MySQL被广泛地应用在Internet上的中小型网站中

从MySQL的网站还可以下载图形管理工具MySQL Administrator和MySQL Query Browser。
MySQLSystemTrayMonitor 可以放在System tray 里, 可以启动/停止数据库, 调用MySQL Administrator和MySQL Query Browser等, 非常方便。

安装非常简单。这里就不说了。

2007年9月11日星期二

飘香的苹果树


今天中午吃完饭后,走出办公室到外边走走。 呼吸一下新鲜空气。 做IT的, 长时间坐在电脑前,平时没有运动, 对健康非常不好。 我公司的老外对这方面挺注意的, 平时经常跑步和骑单车上班。 我就比较懒, 上次买了Running shoe 后也没有怎么跑过。今天趁吃完饭, 出来舒展一下筋骨。

沿着公司外边的草绕了一圈,呼吸着新鲜的空气, 精神为之一震。看来每天都要出来走走。快到公司了, 突然闻到一股浓郁的苹果清香。 心里觉得奇怪, 在这么空旷的地方, 就几颗树, 拿来的苹果啊。 突然想起上个星期六去一个朋友家, 留意到一个树, 上面挂满了红红的小果子, 霎时好看。朋友告诉我是苹果树。抬起头来, 果然发现了刚刚经过的一棵树就是这种苹果树。 不过上次没有闻到这么香的苹果树罢了。

这颗树上的苹果看来是快熟了, 散发出浓郁的苹果香,这些小果子看上去红中偏点紫,和平常的苹果完全不一样。据说酸酸甜甜的, 可以摘下来煲汤。 在Calgary我也见过苹果树, 和这种完全不一样, 结的苹果也和额平常的青苹果一样, 就是个头小很多。 也是酸酸的。在Calgary半年冬天的情况下还能结出苹果, 也不容易。 因此完全想不到还有另外的苹果树。

一直想在房子周围种点树, 一来树苗挺贵的, 而来也不大会料理。 看来明天种这种树不错, 虽然吃不到什么苹果, 但是能闻到苹果的清香也不错。

这是我在Calgary见过的一种苹果树。今天的这一颗没有找到图片。

2007年9月10日星期一

Google Earth 顶级的免费三维地图软件


Google Earth是Google推出的免费三维地图软件。通过它,您能看到全世界任何角落的三维地图,最近推出的4。2版, 还可以探索星空。

我以前都是直接用Google Map。 Google Map对于查找地址, 给出起始地和目的地来规划路线非常有用。同时带有卫星图片。出去旅游之前, 我一般都上Google Map 来收集资料, 规划路线。 相比之下,Google Earth功能更加强大,还可以同时打开Google Map。只是需要下载程序而不能直接在网上查找。Google Earth的左边选项可以让你随意控制上面显示的内容。还有很多其他的功能。 如果你有兴趣的话, 不妨下载下来慢慢摸索。

Google Earth 的 主页

这里有Google Earth 的各种使用教程。如果你还不熟悉Google Earth的话, 不妨看看。

2007年9月9日星期日

百分百烧腊面家

星期五惯例都是下班后找家餐馆吃饭, 然后去买菜回家。究竟去那家餐馆吃饭一时没有头绪。LD发话说如果你不嫌远的话, 那就去china town的“百分百烧腊面家”吧。 这一家我们都去过多次了, 主要是星期日中午去, 晚上还真没有去过。开车走Deererfoot的话也就是20分钟不到。既然想不到其他地方, 那就这一家了。

“百分百”刚开业是做的不好, 名声不大好, 后来经过不断改进,现在已经和开业时完全不一样了。 我们当初周日去“百分百”主要是不用等位。 中午只有1个多小时吃饭时间, 要是还要等位, 那就没什么意思了。

有人可能说china town停车不方便, 特别是周日免费停车, 找停车位就更难了。有时兜上几圈都找不到免费的停车位。一般的停车场周末是5刀。挺贵的。 后来我发现了一个停车的好地方。 就是TD对面的4Ave的地下停车场,周末停车非常便宜, 我一般中午在那里停车,吃完饭回来也就是1.5刀左右,走到china town也非常方便。所以现在我跟根本不去找免费的停车位, 直接停到地下停车场了。如果你周末需要到china town 附近停车的话, 这是最好的选择。

“百分百” 的就是港式茶餐厅,主要供应粥粉面饭, 我比较喜欢吃的是“茄汁猪扒饭”,相比其他几间餐馆, 我认为这是做的最好的。不过这次想试点别的, 叫了一个“韩国烧烤牛肋骨”,“澳门街头濑粉” 和一个粥, 名字一时忘记了。 刚好那天“韩国烧烤牛肋骨”特价, 原价差不多12刀, 特价8刀。味道不错。价钱也特便宜。 中山濑粉最出名了。我在国内吃了不少。不过“澳门街头濑粉”这种做法挺特别的, 我家LD挺喜欢吃了。

结果结帐20刀刚出头, 加上小费共24刀。价钱便宜量又足。味道也不错。:)

Oracle 10gR2 客户端的安装和调试

Oracle 10g在Windows XP中的安装非常简单。直接执行安装程序就好了。在这里就不多说了。今天主要说说Oracle 10g 的客户端安装。

Oracle 10g 客户端也分为Windows 版和Linux版。 因为我主要是在Windows下搞开发, 因此只是安装了Windows版。可以从这里下载。

Client的安装也非常容易。 安装过程就不多说了。安装也分为几种,我选了管理员的那种。 安装完之后,第一部就是进行网络配置。这也和以前一样, 配置还服务器地址和SID号后, 运行测试, 竟然测试失败。费了一番功夫, 发现问题所在。

1. Scott 用户默认是Lock的。首先的进入OEM去Unlock。 Windows 下的Oracle 10g Server默认是自动启动数据库。Fedora 7 下要用oracle用户登陆,手工启动数据库(dbstart), 再启动OEM服务(emctl start dbconsole)。Oracle 10g 采用Web方式,用浏览器连至1158端口就可。
2. 防火墙。 如果你启动了windows的防火墙, 要允许1521端口。 Fedora 7 也一样。 默认都是禁止的。

这样,在Windows和Fedora 7 下都顺利通过了测试。 用TOAD for Oracle 也顺利的连上了Oracle 服务器。

Fedora 7 下用oracle登陆后运行dbstart 就可启动数据库,10gR2 会自动启动Listener(手工启动Listener的命令是lsnrctl start)。Dbshut 关闭数据库.

这里有自动启动和关闭数据库的设置指南, 有兴趣的朋友可以照此配置。

到此为止, Oracle 10gR2的服务器和客户端都已经顺利安装和测试。

2007年9月8日星期六

Turner Valley 初探


今天和朋友的一家去了Turner Valley一趟,Turner Valley在Calgary的西南,沿着22X往西开, 在22号公路交界处左拐, 一直沿着22号公路开就可以到Turner Valley 小镇。 Turner valley 以前是油和气的主要产地。 在小镇的4 Way stop 右拐, 沿着546号公路一路开就可以领略到Turner Valley的优美景色。 Turner valley的深秋风景非常漂亮, 去年我们九月底去的。 满山的黄叶夹杂着红叶, 蔚为壮观。

今年看着Calgary有些树都开始变黄了,想着今天去先睹为快。 车子沿着546 路开, 不久就进入了Kananaskis Country。 路上的风景还不错, 可惜天公不做美, 下起了小雨。山上的树只有很少一部分变黄, 开来我们是来早了。路边不是见到有牛在悠闲的吃草。 去到最壮观的一个地方, 由于天下起了小雨, 树叶还没有黄, 因此平庸了很多, 如果在深秋时分, 顺着下路下到谷底, 应该是非常好玩的。

回来的路上,一只黄牛拦在路中间。 不过在我们慢慢靠近是快速跑掉了, 出了Kananaskis Country 不久,幸运的看到了一直成年的鹿在我们车前快速跑过, 大家都非常兴奋。

等到10月初我们会再来欣赏Turner valley 美丽的深秋景色。

点击这里浏览Turner valley的主页

这是去年我们去Turner Valley的一张照片。

TOAD for Oracle 强大的Oracle数据库客户端


TOAD(Tools of Oracle Application Developers)是一种专业化、图形化工具的PL/SQL开发工具,用来帮助开发人员和DBA有效地完成他们的工作。它是一个功能强大的、低负载的开发工具,集成了模式浏览、SQL编程、PL/SQL的开发和调试, DBA管理,SQL语句优化等多种功能。它最大的特点就是简单易用,访问速度快。使用Toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和PL/SQL代码编辑和测试工作。Toad专门为开发人员而设计,是一个功能强大、结构紧凑的专业化PL/SQL开发环境。

TOAD 有freeware version。 可以从这里下载。 这个版本是60天后过期, 你可以再次下载和安装。 另外还有一些限制,
* Allows only two concurrent database sessions
* Save Data limited to first 100 rows only
* 60 day expiration date
* Only one active DB session per client
* Does not permit multiple Toads to run (lacks option)
* Nag screen upon startup with commercial message
* Disabled features shown but grayed out (i.e. inactive)
* SQL Modeler removed

但是对于开发人员来说已经足够了。

TOAD 有一系列软件,如Toad for SQL Server, Toad for mySQL 等等, 非常专业。

2007年9月7日星期五

iText 快速产生PDF文件的java类库


iText 是一个能够快速产生PDF文件的java类库, 我现在也在用, 感觉非常好用, 文档做的相当好, 有各种的例子,容易上手。利用iText在服务器生成PDF报表, 客户端可以通过超链接访问PDF文件,进行打印, 预览和下载。

iText的主页。 可以下载源代码,编译代码和文档。上面还有非常丰富的例子。

PDF之家, 里面有翻译的iText PDF 概述, 让你进一步了解iText。 上面还有其他的很多学习制作,加密PDF的文章, 值得一看。


顺便推荐一本书, iText in Action ,the first and only book about iText:

另外,如果你是做。NET开发, 可以下载 iTextSharp。 它是iText的项目的一个分支。用C#写的。

教育孩子, 严防意外


今天收到孩子学校的一个通知, 关于一个男人坐在一辆银色的小车里,用糖果引诱小孩上车说可以送回家。 学校已经把情况报告了警察局, 并已经提醒了小朋友,要求家长也同样教育小朋友, 防止意外发生。 以下是学校的建议,挺好的。

1. Walk with others and use the buddy system. You are an easier target when alone.
2. If someone in a car should stop and ask for help or direction, do not go near the car.
3. Stay an arm’s reach or more away from strangers.
4. If someone is following you on foot or in a car, go to a place where others are. Do not try to hide.
5. No one should ask you to look for a lost item. If a stranger asks you to help them look for something, run to a safe place.
6. Never go in a car with someone that you do not know.
7. If someone does try t take you --- yell and scream “This is not my parent” and make a lot of noise.
8. Never take anything from strangers.
9. Never go anywhere with someone you do not know.

可能大家听说国内拐卖小孩的事多了,以为在加拿大比较安全。 大家千万不要掉以轻心。 看看Superstore门口的寻人广告就知道了。Calgary近来各种重大案件层出不穷。大家要小心, 同时也要教育好自己的孩子,以防不幸事情发生。

Take Care!

2007年9月6日星期四

终于装好了Oracle

既然RHEL 4 安装不了, 那就重新装回Fedora 7。 系统安装一会就好了, 由于开启了自动升级,安装完后很快就收到了升级的提示, 结果系统安装也就半小时, 升级倒花了一个多小时。
按照这里的安装手册很顺利的安装好了Oracle所需要的Package, 重新启动也没有问题。 安装Oracle就非常简单了。只是有两点要注意
1. 最好用静态地址, 不要DHCP分配的动态地址。
2. 内存最好1G。 我的只有512M, 安装时有警告, 不过可以安装, 就是运行时有点慢。


安装好了之后,下一步就是安装客户端, 试着连接数据库看看了。

顺便说一下。Oracle-Base 确实是一个查找Oracle资料的好地方

2007年9月5日星期三

ITalkBB的网络链接方式

今天我的LinkSys Adapter 是通过路由器联入Internet的, 效果还可以。

具体是电话线接入ADSL Modem, ADSL Modem通过网线接入Router的广域网口。Router的局域网口通过网线接入我的千兆以太网交换机。 我的所有设备(电脑, NAS等)都接到千兆以太网交换机上。 我的LinkSys Adapter 也接入到千兆以太网交换机。 这种接法只需要一个动态IP地址。

因为Linksys Adapter实际上也是一个Router。另一种接法是加一个Hub/Switch在ADSL Modem 和原有的Router中间。 这样原来的Router和LinkSys Adapter都同时接到这个Hub/Switch上。这需要2个动态IP 地址, 好处是电话和上网分开。

有时间试试后一种接法, 看看效果是否回好一些。

Telus的用户点击这里来登记/更改MAC地址,因为必须是注册地址才能连上Internet。 每页账户可以有2个免费的注册MAC地址(2个动态IP)。登陆用的用户和telus上的用户是不同的,如果你忘记了用户名或密码, 可以打上面的电话去解决。如果你有耐心的话,今天我等了半小时,呵呵。

今天装上了ITalkBB


鉴于ItalkBB 近来广告攻势很猛, $24。99 包月,价钱非常吸引。 于是上个月底申请了全球通包月计划。 今天LinkSys的VOIP Adapter终于寄到了。于是迫不及待的试用了一把。

因为我也是搞IT的, 多年的网络规划、维护经验,以前对VOIP也有所研究。 装这个小玩意不过是小菜一碟。不过安装非常简单,几乎是即插即用,没派上用场。 马上试了一下打电话回国给老妈。效果不错, 挺清晰的,没有回声,就是声音小点。 比昨天我用小蜜蜂好多了。然后让老妈在国内用17971001 打过来。 也没有什么问题。

本地还没有试过。总的来说, 今天的效果还不错。不知道过年过节等繁忙时间如何。VOIP这个东西一依赖网络, 如果网络质量不好或较拥挤,效果肯定不会好到那里去。

选择ItalkBB的原因有几个。
1。 当然是价钱了。 现在Telus 本地电话加上来电显示要34刀。我每月的长途费大概是10刀, 用ITalkBB可以省20刀。还是挺有吸引力的。
2。 长途我主要是打美国,香港和国内。全球通包月打这些地区免费。 以后打长途就可以放开打了。
3。 国内有回拨号码, 国内亲人可以直接打电话给我。 虽然在国内也给他们装了小蜜蜂, 一来要开电脑, 而来效果时好时坏,还是用电话直接方便。 这也是我装ITalkBB的主要原因。

这个星期试用, 如果效果好的话就那Telus取消掉。我是JustSoft推荐加入的, 如果你也想加入的话, 一定要找一个推荐人哦, 这样双方都能省点钱。

点击这里查看ITalkBB的详细情况。

2007年9月4日星期二

安装Red Hat Enterprise 4

上星期五和同事聊了一下Fedora下安装Oracle的事。 同事也有同感, 在Linux下安装Oracle不是一件容易的事,他建议我改用Red Hat Enterprise 4 并给了我光盘。

今天, 我决定安装Red Hat Enterprise 4。 把先前的Fedora覆盖掉。 Red Hat的安装和Fedora的安装比较象,一切都很顺利, 我最喜欢安装界面的左面有相应的说明,有疑问事可以看看。

安装成功后进入到系统的设置。问题出来的, 去到subscription是,我没有subscription
number, 如果不订阅的话, 只是没有技术支持和更新而已。 但是我一旦选择了没有subscription number, 它就给我一个错误, 说现在可用的subscription已经用完了。然后死活到不了下一步。就这样Red hat的安装又以失败告终。 难道我非得下载Red Hat Enterprise 5 不成。

以此同时, 我又找到了另一个Oracle 10g在Fedora的安装手册。原来还有另外一种安装方式。可以用通配符和通过Yum在线安装。 得, 倒回Fedora 7再试试。

新学年的第一天

今天是新学年的第一天。对我家女儿来说,一切都是那么新鲜。 毕竟是读Grade one 了。以前都是Daycare, ECS,是属于玩之类居多。现在正式踏入小学一年级了,进入了人生的一个新的阶段。

虽然我已经给她找好了Before and after school program. 但还是放心不下。 特意申请了work at home。跟她到学校看看, 确保一切顺利。早上先送她到day home 那里, 让她熟悉一下环境。 Day home 离我家很近, 走过去也就5分钟。 她家两个小孩也和我家宝贝读一个学校, 一个Grade Two, 一个Grade Four,正好可以玩到一块。

还没到学校, 已经见到很多家长带着小孩来了。其实我家就在学校傍边, 每天都见到很多家长来接送小孩。 估计都是一个人工作,收入挺高的, 一个人全职照顾小孩那种。 家长们带着小孩在学校后边的篮球场等,学校会按照年级贴出每个老师所负责的学生名字。家长们需要在名单上找到自己孩子的名字和对应的老师, 然后排好队等进入教室。

我家孩子的老师是一个中年西人,待人挺亲切的。 我把书包, 午饭和其他一些物品交给孩子, 目送着孩子进入学校。想到刚来加拿大是孩子才一岁多,眨眼间小孩都读小学了。时间过得真快。

学校是3点20分放学。我和day home的阿姨还是在早上送孩子的地方接。 孩子从学校里面飞奔过来, 看起来很兴奋很高兴的样子。似乎很喜欢学校的生活。孩子很高兴的告诉我交了新朋友,学校很好玩。 我也很高兴, 孩子喜欢上学就好。现在唯一头痛的是给她准备午饭了。船到桥头自然直, 一切问题都会解决的。明天在算吧。

2007年9月3日星期一

Oracle 10gR2 的安装

上个星期四,安装好Fedora后,从网上找了相关的Oracle 10g在Fedora的安装手册, 同时参考了Oracle的网站有关Oracle在Linux下的安装说明。准备功夫做好后开始了。

按照网上的安装手册, 在安装Oracle之前要安装一些包,由于某些包要依赖于另一些包。由于我已经很久没有接触Linux了。 对Linux很多新的功能都不知道。以前安装package是用rpm在命令行方式下安装的, 因此我犯了一个大错误。首先是找到并下载所需要的所有包, 然后一个个用rpm方式安装。 由于Fedora的各个版本变化较大, 在Fedora 7的DVD里面甚至去掉了一些package,因此光去找这些包已经花费了我相当多时间。因为Fedora有自动更新的能力, 所以没有安装最新版本也没有关系。好不容易成功安装了一部分包, 另一部分尽管显示成功安装, 但是查看下仍然显示没有安装,还有部分显示没有校验。 是否强行安装。

好不容易把所需的package安装完。 重新启动后屏幕一篇漆黑, 进入不到X windows。 估计是刚才安装的X11 package有问题。我倒!要不重装, 要不用用光盘启动后卸载刚才装的X11 Package。

一看时间都已经是半夜12点多了。 算了, 明天再决定怎么处理。还没有到真正的Oracle安装就失败了。气死我了。

长周末去了 Edmonton

这个周末去了Edmonton去看一个很多年的朋友。他的父母早两个星期登陆,经过几年的父母移民办理, 终于顺利到达加拿大, 可喜可贺。 我申请我妈过来, 一年半前递了申请, 到现在还没有消息,也不知道什么时候能办下来。 加拿大在办理父母团聚方面的进度非常缓慢, 虽然现在情况有所改善, 但还是不能接受。无非是老人过来,不但不能对加拿大有所贡献,反而是加拿大的负担而已。

这次过去只要是看看老人家。也没有打算去那里玩。 现在天气还是不错, 2个半小时后顺利到达Edmonton。一路上规规矩矩, 基本保持在120公里左右, 没敢怎么超速。路上只有2处有连续3辆警车捉了几个超速的人。Edmonton 去过几次了, 没有什么新鲜感。就是道路交通比Calgary还差一点。当然,现在Calgary的人口和车辆增加很多, 加上很多道路在维修,扩建, 交通也不行。 上下班堵车是常有的事。

West Edmonton Mall 是必去的地方, 这次带了两个小朋友去, 加上Mall里人太多,基本没有进去各种专卖店,没有买到什么东西,连海狮表演也没顾的上看。Mall 确实很大, 转了一圈都用了快3个小时。其实要是买东西, 也不用跑到Edmonton这么远, 在Calgary几个大Mall转上一圈, 没有什么东西买不到的。价钱也差不错。

还有一个感觉是Edmonton的东西太贵, 个人感觉是比Calgary 还贵。例如著名的越南粉,和Calgary 相比, 不但量少,味道一般,价钱还必Calgary贵上一大截。

这个长周末快过去了, 得计划一下下个周末去那里玩了。 毕竟Calgary适合出去玩的时间不多了。