星期日, 一月 27, 2008

Google Gadget: My IP enhanced

Win32_NetworkAdapter Class
http://msdn2.microsoft.com/en-us/library/aa394216%28VS.85%29.aspx
To find the media connection infomation, then get the index

Win32_NetworkAdapterConfiguration Class
http://msdn2.microsoft.com/en-us/library/aa394217(VS.85).aspx
To find the IP address according to the index


Example in VB
http://msdn2.microsoft.com/en-us/library/aa394595(VS.85).aspx

strComputer = "."
Set objWMIService = GetObject( _
"winmgmts:\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
("Select IPAddress from Win32_NetworkAdapterConfiguration" _
& " where IPEnabled=TRUE")

For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For i=LBound(IPConfig.IPAddress) _
to UBound(IPConfig.IPAddress)
WScript.Echo IPConfig.IPAddress(i)
Next
End If
Next

我在Google Desktop Developer Group的topic 连接:here














flip a image:
http://www.javaworld.com/javaworld/javatips/jw-javatip32.html

draw image
http://today.java.net/pub/a/today/2004/04/22/images.html


text to image:
http://www.knowsky.com/343948.html


media disconnect可剔除 wireless
IPEnable可选中wireless和VPN和LAN
connect可选LAN

VPN没有
string Status;
uint16 StatusInfo;
uint16 NetConnectionStatus;
unit availability


所以,无论VPN是否联通,都会出现在最后的结果中。


Google Gadget的options pane,在“Gadget-》add option Pane”之后,还要在options.xml的“script”页下,手动把options.js关联到options.xml


submit gadget之后,google会发mail给你,说明google developer正在review,在数周后会update,而且还在google gadget developer group那里,开了
个discussion(topic),专门for你的gadget。

星期一, 一月 14, 2008

Quebec city: 自驾车游: 7th,Jan,2008~11th,Jan,2008

3rd, Jan, 2008

今天有点无聊,在家改程序,看书,看英文电视,和睡觉,然后就一天。今天应该是我最无聊的一天吧。所以日记也是最短的。本来以为今天就这样无聊地过了。

但是在晚上,Breeze约我去Quebec City,但是目前之后我和他想去,其他人好似Jacky SongGavin Peng都是想去想5去甘,不管了,就算只有我和他,我们的意思都是继续去。于是我问了Casmowang zong,他们都是号称去过,但是个个都一问三不知,连自己住在的motel住在那条路都不知道!算啦,求人不如求己,自己查。BreezeGPS,我在google上查了地图,应该ok的。于是在网了去Quebec city的攻略,就觉得应该ok了。

剩下的就是租车了,我找到budgetdiscountenterprise。明天,周五,回到公司再打电话问!!

但是晚上和老婆吵了大架!!我为了这事真的很伤心啊。。。。我爱老婆。。。我想老婆长大,但是我真的不想老婆用世俗的眼光看我们的爱情,不要用对客的态度对我。。。为次,我和老婆吵架了。。。老婆。。。老公很幼稚吗?!~

一个复杂的星期四~~~

4th, Jan, 2008

今日公司的同事虽然陆陆续续回到公司了,但是其实个个都是等今日下午的team building,去pool house打桌球。我一回到公司,查了邮件之后,就走到lab 5 eastdrop in处打电话,打电话给budgetenterprise,和discount,在安排明天去Quebec city的事。我一直在找car

renting的事,budget与北电有合同,理论上会平点,37+保险/day,168 CADenterprise有人推荐,163 CAD,我自己找了discount,152CAD。租车的时候有几样要注意:

1.是否北电员工(目前只对budget有效)

2.是否有weekly package

3.是否包含collision damage waiver,这个是防撞保险,有司机极力推荐这个,因为如果小刮花的话,好贵,而且有时是人撞你,不是你撞人,所以19.99一天的waiver都是值的。

于是就租定了discount,电话book了,然后打算下午去拿车。

其实中间有个小插曲的,就是我在drop in Canada yellow page找到budgetSomersetservice center问,她话如果是Nortel员工,37CAD是包collision damage waiver的,但是因为我在Nortel carling,所以她叫我打去budgetcarlingservice center,但是当我打去的时候,那个男的说37 CAD 不包,于是我就想打去Somerset那里再问,但是那个已经无人接了!!所以最后才租了discount的。

讲真,用英文和几家客服讲清楚这几项item真是不容易啊!

3点落班去Clydediscount service center租车,先到Lincoln field等,然后等他来pick

up我,之后就在办理租车手续,但是我的信用卡无论如何都刷不了五百,刷一百也不行,于是我就想上网,但是那个servicecenterinternet service,我唯有搭8555bus走,唉,在那条路,还要转车才能到baseline,走到半路,我想不通啊~因为我每天在loblaws都能消费啊,所以我在半路又番转头,辛苦啊,又要等85,又要行又段路!结果去到租车那里,我打算扣五十元十次,第一次五十可以,但是第二次不行!!

无办法,唯有很不明白很不服气很饿地回家!!我心情郁闷啊!

BreezeJacky讲了此事,Jacky就已经话要退出了,只有我和Breeze坚持,好,那么就只是我和他去吧!君子一言,快马一鞭!去!

然后煮饭吃,但是我和老婆还是在吵架啊,所以其实我还是不开心,烤pizza的时候居然用手去拿那个瓦碟,当堂拇指和食指都烫出两个大水泡!痛!两块皮像不是自己的一样,

老婆,你还在嬲老公吗!~老公想你快哭了。。。

打个电话去招商银行的客服,原来是这样的

1. 到帐日(例如10号)的意思是从上个月10号到这个月号的消费额

2. 还款日(例如28号)的意思是28号前要还清上个到帐日(上月10号在这月10号)之间的费用

3. 招行在1月提高了临时消费额

由于12,所以我的可用额度其实是(15000元减去1210号到14号的消费额),因为我交过房租,所以我的额度是不够500*8=4000RMB的,所以不能租车!

但是我之所以可以在loblaws消费的原因是3,所以我每天都可以买野。

总之就麻烦啦,总算明白了到帐日和还款日的区别了,也总算明白why我小额能消费,大额不能了,只不过付出了比较沉重的代价。。呵呵。。。。

晚上11点的时候打给老婆,老婆终于肯听老电话了!其实老婆无变到,还是以前那个甘爱老公的老婆,好耶!!我们都在哭啊!!老婆,老公永远爱你,知道吗?老公唱分分钟需要你

比老婆听吖!!老公愿意用一切一切换我们的不分开!老婆是值得拥有老公的,老婆是值得有一段属于自己的爱情的,知道吗?!~老婆ur~~

于是晚上一点先训,虽然我明知夜训早起开车好危险,但是为了老婆,我宁愿冒这个险!~我真是训了老婆,希望我明天平安啦,爱你~

5th, Jan, 2008

今日六点半就起床,七点到Lincoln field,八点顺利租到车,是Pontiac G5black的,自动波。八点半出发!!第一在加国开车,第一次自驾游!真的又兴奋有紧张!万事小心啊!安全第一!!!

一开始好顺啊!GPS和我打印的Google地图吻合,从417 40,转20,再转 25就到Quebec city了,虽然有点跌撞,总算顺利。在外国开车,最紧要是认清方向,东南西北,NorthSouthEastWest,法文是NordSudOrientQuest,然后就是认清楚大路,好似41740这种超人气的路就一定要记住,417西到Toronto,东到Montreal417Ontario就叫417,在Quebec就叫40. 所以总算顺利啦,从Ottawa租车后从carling直上417,然后到了Quebec city后,发觉GPS的地图不够update,所以只能用最土的方法:问人!把车停在路肩上,然后问人!

经过Montreal和在Quebec city兜圈的时候,已经发觉这里与Ottawa根本又是不同,有自己的语言,自己的文化,自己的radio,自己的工业,自己的电视,建筑风格都是完全不同的,窗台,店铺的门,连桥柱上都有雕刻和墙画!!!雕刻的内容是宗教和生活相关,店铺的门牌的挂钩都是巴洛克风格的,就是一圈一圈的那种,就是优雅!就是觉得这里很有文化气息,人文气息迷茫着城市的每个角落!身边的朋友都说法国人浪漫,法国的语言是世界上最动听的语言,法国的文化气息浓厚,今日只是感觉到巴黎渗透出来的气息,就已经觉得此话不假!

Quebec city内兜了一镇之后,很饿,但是又不知道哪里有motel,哪里有fast food吃,所以就在港口附近的路,找到civilization museum,然后去里面的info center问,来到这里有个不好,就是个个都讲法语,路名,所有标识都是法文!好彩info center的那个人识讲小小英文,问了如何走才能去最多motel的路,哪里可以park,哪里可以吃fast food,哪里可以上Quebec city castle。但是因为连路名都是法文,所以她讲什么路的时候,是用法文讲的,其实我都是一知半解。所以就叫她用笔纸写下来。

5 CAD停车两小时,然后行去castle,这里的广场就是一个欧洲风格浓郁的建筑,有女神像,有马车,有红砖外墙的矮楼,买souvenir的铺头简直是令人惊叹!这里大部分的shop都是在卖油画!!!文化底蕴可见一斑!总之,一切的色调,一切的楼层,你会觉得与Ottawa根本不同。难怪Quebec想独立,因为真是完全不同。

然后到了广场的info center,这就是我在Google地图上搜索的destination了,尽到里面,拿了ticket,排队一阵,然后就有个miss回到我问题。她给了map我们,指出motel最多的路是138 east,买day pass的地方是info center右边。

我们短暂停留之后,就在castle上走了一阵。其实Quebec city最吸引人的地方就是castle,也就是所谓的魁北克老城。这里以前是个很发达的城市,整个城市就建在城市的最高点,像城堡一样,成为castle,上面有Laval university,有医院,有教堂,有学校,有bistro,有restaurant,还有炮台这样的防御性建筑,山下就是港口,直通内陆运河,canal,当然还有住房和商铺,所以基本上,是一个独立的城市。只是当Quebec city发展了,连山下都旺了,称为新城,当然就没有老城那么有特色啦。

由于不熟路和天色已经黑了,加上GPS在城内没有什么作用,所以撞了几次才能走出来,才去到138 east,这里真的很多motelmotel white housemotel Olympic都几好,60CAD55CAD for 2 beds a room,最后我们在Motel Chevalier住了下来,50CAD。开了TV,全是法文,好不容易找到个英文台!!平时第一次觉得英文是如此亲切!!!呵呵。。。

安顿好之后,我和breeze又开车出来,路过一条街的时候,觉得灯饰很漂亮,于是就下车狂拍照。但是出来的时候发觉这里的路是不能左转的,但是我们觉得3次右转就和一次左转的效果一样,于是好不容易才找到3个右转的路口,点知一转出来,居然是条单行线!!我和对面的车是迎面车!!!好危险啊!!!车头对车头啊!而且还是在外国,如果这里有摄像头,我的拍照一早就被吊销了!!我唯有借道小小行人路,然后在下一个路口马上转回正常车道,我个心才定下小小!!!!!!!!!天啊!对头车!!!!~~~~成条路的司机都是看我,骂我,按喇叭投诉我!!但是无办法~~~我真的不熟路啊!!

然后我们在Quebec city castle上的一家法国餐厅L’Echaude吃饭,20CAD一个main dishOk啦,我吃的是angus flank beef。讲真,觉得不算太好,这家restaurant是获奖的French style restaurant的,waiterwaitress都好有礼貌,而且对自己的外型都很在意,胡子,头发,装扮,真是有贵族feel!!!点都好啦,总算在加国吃过French stylemain dish啦。。。。我和breeze都算超样衰啦,坐在那里,用闪光灯影像,骚扰了其他食客,而且d衣着,发型,都与餐厅的格调完全不符,只叫了dish,不要dessertwine。不过旅行就是甘啦。。呵呵。。。。有个好似管家的waiter还好有礼貌地走过问我d菜好吃否,我话why shallots(我记不清楚是否这样拼了)这么bitter,他说只有中间的heart才是好吃的,leaf本来就是甘苦的。呵呵。。。真是大乡里,这里时候,其实我已经吃了1/3 leaf了!!! 然后买单的时候我和Breeze是把bill分成两份,要了两张receipt,样衰就样衰啦。我留意了一下,Quebec的省税比Ontario的贵5%左右。晚上出来还是在castle里转。去了castle后面,刚好是Quebec city建成400年(1608~2008)纪念,政府组织了个gala,在个场地上有13个小show,色彩很斑斓。

继续走就见到parliament building of Quebec。这里的Parliament BuildingParliament hill有过之而无不及啊!正门是两个圆弧的楼梯,墙面上雕刻这France的名人,例如Elgin和卢梭等,有点像贵族的住宅一样。

另外,我发觉法国的女孩真是好有气质,在街边随便找个素质都好高!!而且,这些mm与一般西方的MM的区别还在于她有种文化的气息,有优雅和高贵,这就是法国人值得骄傲的地方。其实人人都话法语是最美丽的语言,我想其中的原因就是因为法国的MM多,有dMM讲出来的语言当然靓啦!!!就我这两天听到的法语,不觉得真的有多么的好,我想root cause就是法国MM的气质真的很好!

见到France的英雄纪念碑,记录了一二战中牺牲的将士,”To Our Glory Death”

920就回motel,我的鞋子都湿了,雪进了鞋里融里。一晚姐,将就下啦。。。。

10点左右就睡觉了。临睡前我特意打了个电话回家和给老婆,养足精神明天开车!

6th, Jan, 2008

今日的行程是

1. castle拍照

2. Ste Anne Church

3. 去大瀑布

4. island d’Orleand

800出发,在出路口的时候,居然我的车在打滑!!!!我想把车停在红灯前的时候,刹车一开始还ok,但是当刹到底的时候,车就打滑的,180°C掉头!!!!!!!!!!!!

好彩当时旁边没有车,否则就一定出交通事故!!!!我当时马上把车开到无人的雪地上,定下神啊!!!!!我走出车看看,原来我当时左边的两条轮胎在无雪的地方,右边的轮胎在有雪的地方,当时一刹车,车就打滑了!!!!

重新整理思维,继续开车,不过加倍小心!!!

经过昨晚逆行的经验之后,我今日在开车的时候,十分留意路口的方向,总算今日都没有再错了!

BreezeQuebec city castleparliament building之后,他去拍照,我就一直留在车上,因为如果人离开部车,如果有police抄牌,真是好麻烦。

之后去了Ste Anne church,她已经有138年的历史了。她在138 east那个方向。当你站在她面前时,真是宏伟!两个哥弟式尖楼,中间是纯金的圣母像。Church里面的地面,天花都布满圣经的故事的建筑。还有彩色的窗画。因为是星期日,所以有人在礼拜,真是好庄严,也很神圣! Ste Anne church有两层,一层在地下,楼下那层就一般,是忏悔的地方,天花很矮。

离开Ste Anne Church,就去大瀑布,可修都结冰了,没有什么特色。于是就去island d’orleand。这里很多屋子,很多停在路边的车,但是就是无人!!!其实真是几可怕,全是白茫茫一片,无人,有雾气,很静,有点小岛惊魂的感觉。整个岛主要是靠农业为生,上面有church,有police,不繁华,但是感觉与世无争,生活休闲。这才是真正的世外桃源啊!

可以今日好大雪,所以什么野看不到,只看到笔直的树木。环岛兜了一圈,就走了。

我在Quebec city问人的最大感觉就是其实许多人都不懂英文,即使懂得英文,她的英语水平不会比我好,都是断断续续地讲出来,而且用词不准确,例如avenue讲成street。不过这里是法语区,可以理解。Quebec City的法语人口占95%

下午300,正式启程回Ottawa

回来的路上又是458KM,我都开到有点累,而且是晚上开车,真的要加倍小心,我盯着前面的车太久,都有点麻木了,但是又不能不看,因为没有街灯,只能以前的红色的车灯来认路,所以一定要保持头脑清晰。 回来的时候,gas只有100km了,其实我一直都知道,但是由于路标不熟,而且不敢乱cut 线,所以总是miss 加油站。而且还有一点,就是不想在Montreal和入40417之前加油,因为如果落了highway,万一又转了很久才能回到highway就很麻烦,天色已经黑了。按照GPS计算,还有80km就到417,车的info显示还有150KM。如果要在417后加油,就一定要赶,用最省油的方法开车!于是我把时速提到140km/h左右,不刹车,用空挡溜车!!在超车道净超车!!!!!连大货柜都超!!!好危险啊!!这样开了20分钟之后,终于入了417的一个加油站。加油之后,我们的心才定一点!于是就100KM这样开,天啊!!!!!!!!140~150 KM/h真是好快啊!!!!!!我这辈子都不会再开这么快了。简直是生死时速现实版本啊!!

有个值得注意的地方,汽油的翻译是gaspetrolgasoline,但不是oil,柴油的翻译是diesel,是mac truck用的那种。Quebec的油价会比Ontario的贵20 cent左右,这两天的油价在1.04Ontario~1.26(Quebec) CAD/ liter 之间。

顺利回到Ottawa,我送了Breeze回家之后,我就沿着Woodruff开车到baseline,然后把车parkTim Horton附近,就回家了,太饿了,随便吃了些东西,通知了老婆和家人,然后写这篇日记写到1点,睡觉了,真的很累啊!!!!!

明天815之前一定要把车还给在Clydediscount。如果还车都顺顺利利就真是功德完满了!!

出行经验:

1. 认清大路,例如41740

2. 认清方向,NEWS,和法文的缩写NOQS

3. 看清是否单行线

4. 如果发现走错路,先一直走,之后在少车的地方强行掉头!一定要看清路况!!

5. 如果在high way上出错路口,就一直走,问人,看路牌重新merge到原路。在外国,整个城市的路都是可以mergehighway的,放心。

6. 如果可以,尽量坐carpool到那个旅行城市,到了当地之后,就买day passbus旅行!这是最方便和最省心的旅行方法。自己开车,其实不熟路,和找地方park车都是一个好大的问题!

7th, Jan, 2008

今日700起床,马上起身还车。因为要赶在815之前还,否则的话当租了3天。于是就凭记忆,从baseline转入woodruff,在转入carling,来到Clydecarlingcross point,到之后想还车,但是一定要我fill gas full,无办法,所以很不情愿地再开车到附近的油站加满油,然后终于顺利还了车。还车的时候问前台的miss,原来discount可以载客到附近的地方,于是我就坐着discount的车去到Lincoln field车站。开车的司机叫Shawn,哗,他开车真是猛,急停急起。不过他开的车真是靓,GMC起动的推背感好强烈!!要租的话,成90 CAD一天。Anyway,到了Lincoln field之后,我坐上116bus,我突然觉得有bus坐其实这是好幸福的事,不用停车,不用找路,不用怕走错,不怕走了单行线,是在太幸福了!!!!!

今天在公司基本都是收mailcheck以前未得闲看的mail,还有就是prop cr

下午4点就回家了,今晚很大雾,能见度不足100m,好彩今晚我不用开车,真的很危险!!

之后吃饭,买了belgium carrot,冲凉,打了电话给妈妈,她感冒了,小心啊,妈妈。

10左右就训觉了。。真的有点累了。

8th, Jan, 2008

今日上班,发现天气依然天气恶劣,不冷,4度,但早晚都很大雾,比广州的回南天更甚!

雾,雨,冰雪,霜,都有,都是坐bus舒服啊~~

其实判断城市忙碌,可以看以下几个因素:城市的宁静程度,人行速度,司机的守法程度

看报纸新闻先看体育和娱乐,不要先看政治,这样的英文会易懂

回到公司之后,今日奇多野做啊,工作上的事情就无咩好讲了,我做到晚上7点才走。

回到家前去Loblaws买野时候发觉,原来越贵的食物就越是没有fat,这里的人就要减肥,但是我就是想吃多d肉!!多d fat!!!真是不同啊!。

吃饭之后,checkmail,临睡觉看了08 US 大选,在New Hampshire一战的live选情。其实我觉得大部分的supporter都是在追星,纯粹就是自己在做show。我就是当练习英文地听他们的speech,我发觉个个candidate的英文都好clear,而且用此都好大,“tion”结尾的此好多,常用押韵,排比,例如” "Over the last week, I listened to you, and in the process I found my own voice," Clinton said to a crowd of young supporters.

"Now together, let's give America the kind of comeback that New Hampshire has just given me."

deliver the promise, I am ready, ready to serve, restore the standing and credibility around the world.Yes, we can , we can change the world. Ready for challenge. Roll your sleeves and keep going.”

HilaryObamaEdwards都咬字清晰。

9th,Jan,2008

今日个天好通透!我见到云都分开了两层!云都镶了金边!

我近来可能食肉饮奶太多,面上有很多的小疮,细看才看到的那种,真的要注意了。但是肉奶吃得多有个好就是可以抵寒,我现在穿两件都可以了。

10th, Jan, 2008

今日都在prop cr,很忙,无话。

晚上的时候去了art centerwar meseum,因为Thursday 400以后都是free tour,所以特意赶在那个时候去。感觉上一般,尤其是个war meseum,只是摆放了救护车,tankjet planeAnyway,总算来过。坐车的时候,总算见过Ottawa的人在逼车!!!当然啦,这种逼的程度与中国的是无得比的~~呵呵

之后去了珠城吃饭,叫了个二和菜,当然少不了的就是拿发票啊。

回家后,11点左右就休息了。

11thJan2008

今日又是一个忙碌的工作日。

今晚有call,所以这个周末哪里也不能去了,只能在Ottawa内走走。其实在Ottawa,我还有两件事想做,去casinoskate Casino只有21号车到,但是属于express,我怀疑我的month pass不通用。如果步行,要8KM

今日上午赶快做完d野,因为今晚6点有个VSE cut oversite support

回到家,6点前赶快吃完饭,在等support,点知其实在罚坐,2个半小时,都暂时没有customerrequest

星期四, 一月 10, 2008

Java email if internet detected v2.0

Hi buddies,
In some extreme testing environment, it has been proven that the function InetAddress.isReachable() does not send out the ICMP ping request if the administration privilege is not satisfied.

So, as an enhancement against on this issue, I have refactor'ed the class ip_getter function isOnInternet to be isOnInternetByJava, along with adding a new function isOnInternetByWindows.

isOnInternetByJava is implementing the ping functionality by the JDK function isReachable, however, isOnInternetByWindows achieves this goal by explicitly sending ICMP ping request to the specific host address, using a user defined DLL: pingicmp.dll.

Besides this change on ping functionality implementing level, all other parts stays the same.
When deploying the program, please remember to copy the pingicmp.dll to %JAVA_HOME%/bin. After that, directly run the program j_mail_on_net_fat_2.0.jar will be just fine.


The source code can be downloaded here.
The executable jar and dll can be downloaded here.

Thanks to author of pingicmp.

星期二, 一月 08, 2008

Boxing day and 2008 Eve

26th,Dec,2007 (Boxing day)

昨晚计划今日的行程是这样的:

七点半起床

八点四开车

九点到

十点开门

买背包,在rideau center root买,70

买施华洛世奇比老婆和妈,在rideau centerswaroski

之后1059,1117,1129,1147,1159,1217elmvale方向的86sandford fleming5793,行到walmart

450 terminal avenue

intersection of terminal and trainyards

回程时逢1545有车回

如有时间

95senator fob比表弟,chole

st laurent二楼买

我九点就到Rideau center,在University of Ottawa周围走了一下,也是无围墙的,作为首都的学府,不算有何特色,如果与UT相比的话。还去了Ottawa jail,很细,难道这里的罪案率很低?哈哈,UORideau centerjail附近。今日是加国的boxing day,好热闹,有很多人排队等开门!!连卖正版的cd dvdHMV都有人排!真的感觉到对版权的尊重!总算见识到了!!我先买了root的背包,再买施华,妈一条手链,105,老婆一条颈链,95,一对耳环,65,连税共302,卡都爆了,只能用现金了,呵呵!!Swarovski有全球联保,两年内可在全球保养,但不要带着它洗澡,不要在上面喷香水,用棉质布擦就可以。今日买了真是爽啊,呵呵,卡都爆左,呵呵!! Swarovski从来不做sale,哎,我听到真是又开心又5开心。不过我都明白,有d brand是甘架啦。。。就算我自己都有d甘既情结,就算买5起,都5中意那样野降价甘,既然中意到要买,就5好嫌贵啦。。。呵呵。。

boxing day,让我见到其实发达的国家一样有师奶,一样有抢购。这里的人几乎个个都可以拍电影了,男的都好型,年青的女的面型和身材都好,但是一到中年,无论男女都发腹,像梨子一样!加国人的鼻子真是又高又挺,尖到可以拿来批苹果了。。呵呵。。这里的人基本都有擦眼影,另外,应该是卫生条件好,所以这里的人的衣服都好干净,好有心机整理自己的发型和面部。

Rideau center来到terminal,这里简直就是个工业区,有邮政,有上落货区,来到wal mart,这里很多人,都是开车来。d装修是差d啦,吾知是否看惯loblaws,觉得这里很平实,货品平,比loblaws平,而且还有折,所以都买了此食物回去。

离开WalMart再去St Laurent,想买d Senator的纪念品,真难找到不是made in china的!可见中国制作的影响力啊!!可惜不是中国创造~~~

晚上回到家,今晚煮了好多菜啊。。。有羊排,有青菜,有汤,有饭,还有焗薯蓉。。。。好饱了。。。整理完d发票之后,有点累了。。。。想训了。。

我想先和老婆讲我无买礼物比她,然后回到中国再突然间给她,比个惊喜她,但是她听到我无买野比她的时候,她好像有点不高兴,老婆。。。。不要浪费老公的苦心啊。。。。爱你的老公。。。。你的礼物有我的镜头甘贵了。。。。。你在我心中是最重要的,知道吗?~~~爱你。。

27th, Dec, 2007

今日准时起床,提起背包,戴上冷帽,迎着冷飕飕的空气,从apartment行去车站,我特意把iPod开得很大声,这种感觉久违了!像第一次上班听iPod一样。这就是加国,这就是生活。有时人就是甘,我离开了祖国,离开了家,离开了老婆,一个人出来,但是换来了见识,换来经验,换来名气,fair trade~

今日上班的时候遇到个bus116X,其实我已经见到X好多次了,今日上车,行到Nortel Carling附近的时候,车上已经剩下我和司机了。于是我就和司机闲聊起来,原来X的意思是表示短线的意思,表示不会走完全程的bus。然后和司机侃起来了。原来司机以前都是Nortel的员工,是training manager来的,只是在2001lay off了,哎。。物是人非了。。。连他自己都话good old days了。。。。看来Nortel当时真是裁员不少啊!!

回到公司,但是一个人都无,lab5的门都关了,我只能从lab7的入口进来,然后行到lab5,再到lab3。一上番网,咩事都ok,可以上翻MCS了。

今晚回家的等车,好大雪啊~~~成架116就是我一个人坐晒,我发觉这里的人交谈的时候有样野很特别,就是很喜欢望着你的,尤其是你的嘴唇。我和司机在交谈的时候,他居然是望着你但是没有望路!!!在中国,这是完全违反驾驶常识的!我想了一下,这里的人应该是一种习惯,交谈的时候就喜欢望着你,这点,中国人还是有点不习惯。

回到家,吃饭的时候还看了一场Senator的电视直播,Senator主场啊,不是好看得明白,觉得d人溜冰好娴熟,是冰上橄榄球,允许很大量的冲撞。Senator最后5:2取胜,ok啦。。第一次看完一场NHL 比赛。

28th, Dec, 2007

今日一觉醒来,觉得自己这两年一事无成,是时候改变了,所以再次提醒自己要努力做人!于是看《7 habits》和清理以前的mail。未看完《7 habits》,我看得明她的引子,都是一些关于生活的抱怨,但是之后讲character ethics personality ethics那段就有点不明了。

晚上去了珠城吃晚饭,本来想找玲姐拿发票的,但是她不再。我给了15%tips后,就问老板取发票,她跟我说上面没有日期和amount的,你喜欢填几多就几多,看来有中国人的地方就有这种事!本来可以拿更多,但是有个男老板走过来说不要比太多,“如果各个都好似你甘,我地好难做,想拿多d就来多d啦”,我话“你今次比甘少,我下次还点会来”,于是就拿多了一些,然后就走了,不过我都打算以后会来多d,因为都觉得ok

婆婆原来回来广州,我打电话比妈妈的时候才知道。明天去买顶帽子给婆婆吧,都应该买样野给婆婆了!

今晚冲凉的时候突然想起浸浴,所以就放水浸浴,整个人都泡在水里,觉得轻了好多啊,真是好舒服。在中国的旅馆,父母经常告诫我们不要用hotel的浸浴,因为很不卫生,我想加国卫生不会如此差吧,所以就放心泡了一把,感觉真的很离,像离开了这个世界一样。一个人住hotel就是有这个好处啊,有时可以做d怪事。。。呵呵

浸浴之后,继续看《7 habits!!

29th, Dec, 2007

今日早上很早起床和老婆倾电话,然后show我这5个星期拍到的相片给婆婆和妈妈看。

下午去了St Laurent centersports check买了Northfacebeanie给婆婆,我知道的确有点贵,但是买给婆婆的,应该买贵d的,何况婆婆是中意这种beanie的。。。J

然后就在Train这个车站看看,这个原来是Ottawa Station,通往全国的!不是在Ottawa市内走的那种。但是价钱都几贵,从OttawaMontreal76 CAD

然后继续坐车,到Bayview,乘坐只在Ottawa内行走的train,这种train其实很少人坐,但是车内装修豪华,没有人查票。

然后我从Bayview坐到Greeenboro,再回到Bayview,全程不够30分钟,然后我就回到apartment,还自己弄Muffin吃,但是不好吃,应该是因为我用杯子太深了,所以受热不均匀,所以只有表面一层是松软的,只有表面一层像tim horton一样,里面的全是糊,杯子太深,下次放浅些下次继续努力。

30th, Dec, 2007

近来我发觉肥皂剧和天气预报在我学英文的过程中起关键作用!

现在每天都有擦唇膏。

这里不流行整容,可见这里的人对自己的容貌很满意

今日又见乞丐要1 dollar,无比。

突然想到,这里的人因为天气冷,所以可以化浓装。反观在广州和HK就不可以

中午来到Parliament Hill,我经过严格的安检,连皮带都除埋,脱了外套,然后把背包,相机都放到篮子里,照x光,通过了,然后收了我的tour ticket,才可以到国会山里面,第一排左数十一个是总理,中间位是senator speakerElginsenator speakerMackenzie king是二站的首相,也是在外最长的。queenprotrait经历四次火灾和房屋倒塌依然幸存。

参观完之后在world trade center吃包,然后去d’orleans center

zeller更干净整齐。我想起,菜比肉贵是因为运输成本,因为菜是不可以压缩的,但是肉可以。

31st, Dec, 2007

今日在家,写Java Program,现在指可以发mail,但是不可以调用windows API

晚上发觉加国的new year eve有些不同,CNN只会报道London的倒数,而且没有春晚之类的节目,只会报道加国和美国的Afghanistan的军事情况,肥皂剧和一些欢送气氛的电影(例如the Sherk),NHLNFL2 and a half men

这里的电视真的会有violencenudecourse language的镜头。

今晚自己倒数,打电话给老婆,打给屋企人,感觉像不是过节一样。

今晚吃yogurt,我发觉自己饭越吃越少了,但是肉奶和雪糕yogurt就越吃越多了。

今晚倒数,只有一个电视台在播放show,就是倒数的节目,其余有播放电影,我看了一阵《The Matrix》。这里很多人在叫啊,在街道上,我的墙和天花板都有震啊。。呵呵,远处传来Parliament Hill的烟花,我本来可以出去看看,不过都是陪下老婆和屋企人啦。。。呵呵。。。爱你们。。新年快乐啊!!!

今晚研究了一阵HDR,不错,可以提升一部相机质素。

洗澡之后,居然突然很有feel继续写我的“email_on_internet”,居然搞定了,无用DLL link的方法,用JDK1.5isReachable(),用email packagemail,用thread来不断detect网络,用“fat-jar”这个plug-in来把整个Eclipse project用过的libpackage到一个executable jarYeah,终于搞定了!!!!

自己运行过N次,OK

不过搞到凌晨525 200811日的新年倒数之后的那天凌晨在写“email_on_internet”程序。

1st, Jan, 2008

今日一早10点就起床了,我专登早点起床打电话比老婆架。。。挂住你

从窗口望出去,很大雪啊,真是2008年的第一场雪啊!!很heavy snow

从中午开始就不断完善我的“j_mail_on_internet”,现在个program遇到以下3种随便一种情况就发mail通知我:

1. 第一次能连上internet

2. 断了连接之后再恢复

3. ip改变了

然后就下午睡觉,睡到4点,但是此时收到个call,一直接到830,然后因为与USP的关系不大,所以就drop了。之后是Cedarshift,我不管了。煮饭吃了,有点肚饿了。

吃饭之后发觉自己原来已经两天没有离开过这房子了,所以冒着大风雪都出了去走走。今日好大雪啊,积雪很深,我不管,照走啊!!因为能出来呼吸新鲜空气。风扫过d雪,飘起一层雪膜,好似沙漠一样,有些雪在地面上已经冻成一片了。

我行到Rogers的专卖店,那里原来很多东西的都卖的:cablewirelessvideogames都有!其实Rogers不只是做无线网络的,电视,电影都做的,OMNI 台(omnipotent的缩写,有多种语言,例如ItalianIndiaMandarin,没有French因为French已经有特有的台了)时常都有Rogers提赞助的电视节目,也会和翡翠台合作。

回到家了,洗澡睡觉了,今日真是有点累了。明天想回公司。

2nd, Jan, 2008

今日很早就回到公司了,然后执埋d手尾,和相片调色,然后下午很早就走了。中午吃lunch的时候见到个扫地啊叔,原来他从武汉来了Canada已经8年了,但他还是不懂英文,他好似姓陈还是姓谭,他还提醒我去food base买菜会平点。

下午坐355bus回来,在中途下了车,去Wendy’s买了个combo 1吃,觉得d薯条其实与McDonald’s差不多啊,杯cola就好似有点苦,好似是早期cola的味道,hamburger是烤过的,所以面包本身有点硬,块牛肉也是有点硬,总体来讲,有一种old fashion的感觉,anyway,总算是第一次在KFCM记以外的地方吃Hamburger

吃了一个hamburgerfried phtotos,有点饱,所以没有这么早吃饭。

星期三, 一月 02, 2008

Java email if internet detected v1.0

Hi, buddies,
On the new year 2008 eve, an idea just stroke into my mind that I would like to remote control my home PC if I am not at home. However, my family is not so familiar withe the operational skills so every time I have to teach them to run command "ipconfig", get the result and login to IM or email, then finally send to me.

It would be in a mess and very annoying if it keeps happening. That is the context of my program
.

My program "Java email if internet detected" has functions in 3 ways below:
1. detect the internet is accessible or not
2. get the ip address of the host computer
3. login to Gmail and send an email about the IP and exact time of the message
4. make an executable Jar wrapping all the library jars

Java is the implementing language.

1.Detect internet accessible
In JDK1.5+, a function InetAddress.isReachable() can detect a specific host name is reachable by receiving IGMP echo ack message.


example:
public boolean isOnInternet(String pingAddr){
boolean isHooked=false;
if (pingAddr == "") pingAddr="www.163.com";//"web.mit.edu" is fine as well for port 7, but not google
try {
isHooked = InetAddress.getByName(pingAddr).isReachable(3000);
}catch(Exception exc){
exc.printStackTrace();
}
return isHooked;
}



echo ack message. I take "www.163.com" as a flag of internet accessibility. Please make sure "import java.net.*" when taking this function.

2. get the ip address of the host computer
Getting IP itself is not difficult because InetAddress.getLocalHost().getAddress() has already done it for us. However, the returned string has the raw IP address stored, which means we have to decode the raw IP address with the mask 0xff with the integer digital length and then turn it into integer , of coz , adding a coma "." to separate every pair.

example:
public String get_ip(){
byte[] ipAddr ={'0', '0', '0'};
String ipAddr_str="";
try {
InetAddress addr = InetAddress.getLocalHost();
ipAddr = addr.getAddress();
for (int index = 0; index <>
index++)
{
if (index > 0)
{
ipAddr_str += ".";
}
ipAddr_str += ((int)ipAddr[index])& 0xff;
}
} catch (UnknownHostException e) {
}
return ipAddr_str;
}


3.
login to Gmail and send an email about the IP and exact time of the message
This part is a bit slight difficult and I decided to use the javax.mail package to handle.
Please pay attention the email protocol may be of SMTP, SMTPs and POP3, which has to be very specific. Different protocol leads to different server, such SMTP server usually is named "smtp.*.com".

Take Gmail as an example, since it is using SMTPs, in this case, it requires authentication for successfully logging into the SMTPs server.


example:
public void sendMail(String content) throws Exception{
String host = "smtp.gmail.com";
String from = "congliulyc@163.com"; //try to fake
String to = "congliulyc@gmail.com"; //"congcongcongliu@163.com";

Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);


Properties props = System.getProperties();

props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", host);
props.put("mail.smtps.auth", "true");
props.put("mail.smtps.quitwait", "false");


Session session = Session.getDefaultInstance(props,new MailAuthenticator() );
session.setDebug(false);
session.setProtocolForAddress("rfc822", "smtps");

try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("On Internet Alert" );
message.setText("Auto mail by Jack, now is "+ sdf.format(cal.getTime()) + "\nAlert: " + content + " is on internet now.");//("This is the mail body");
System.out.println("JDebug: on "+ sdf.format(cal.getTime()) + "mail send request");
Transport.send(message);
}catch (Exception mex) {
System.out.println("send failed, exception: " + mex);

}
}


4. make an executable Jar wrapping all the library jars
I am using Eclipse as my developing IDE and when I am trying to distribute an executable jar, I found that "
jar cmf mainClass.txt example.jar *.class" does not work because this project has involved some jar which is not JDK1.4 standard, such as Javax.mail. An Eclipse plug-in "Fat jar" in source-forge has been found out to compose this function, please refer to the web site http://fjep.sourceforge.net/

After exporting the whole project to a "fat jar", an executable one is stored on the project directory.

Executable Jar of V1.0 can be downloaded here.
Source code of V1.0 can be downloaded here.

Since the V2.0 of "Java email if internet detected" has been dispatched, please refer to here for more info.
Thanks very much.