木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Friday, January 30, 2009

    BC goverment job salary 加拿大政府工作收入简介

    一位华人老乡问及BC省政府薪酬情况, 如下
    [QUOTE=abc]请问老兄了解省府里面搞IT的工资待遇情况吗?我可能有一个机会,但是不知道是否值得去。[/QUOTE]

    以下言论,纯属道听途说,毫无真凭实据,入职各行各业(三教九流)均有风险, 请谨慎参考.

    政府的工资都是公开的,去政府网站溜达一圈,就都清楚了. BC Public Service - Job Opportunities

    BC省政府设在维多利亚,而不是BC省最繁华拥挤的温哥华,改善交通,增加就业机会,好处多多.
    (人们纷纷建议中国中央政府设在昌平或者通县,一个道理)

    木匠由于住在维多利亚,近水楼台,做过几次不成功的尝试,人家政府的人就是瞧不上俺,看我不像个混混,过于讲究实干和激进,不适合政府工作. 唉, 罢了, 由此断绝了这个想法.

    政府工作职位分级别, 论资排辈, 又臭又硬的门槛和台阶.(精神胜利法;吃不到葡萄,说葡萄酸,发扬阿Q精神). 以后退休可以再考虑混进去.

    R18,21,24 初级 3~5万
    R27 中级 6.5万 ($64,109.53 - $73,329.50)
    N30 高级 8万 ($72,380.24 - $82,867.93)
    在往上就是Manager了. 每个级别会有5%到10%的市场调节. 鄙人没有听说过政府有额外的奖金计划.
    政府有一个Flexible Day, 每两周多休一天假.
    最牛的是政府的退休金计划, 一年加年薪的3%(或者2%), 最多可以达到年薪的75%, 商业公司没有这个计划, 干巴巴的$1400,还是在你没有存款和收入的情况,明摆着领不到.

    我LD他们单位是个大学科研机构(纯属浪费纳税人钱财),属于政府薪资范畴,刚刚给每人追加了$4000~$7500的市场调节,还不错. 干的政府的懒散活,却非要和商业公司员工的收入看齐,不知道他Niang的哪门子道理.

    我们DBA部门2008年夏天刚刚从政府找了一个R30级的, 给了他9.5万.

    感谢这位华枫(ChinaSmile.net)网友提供素材, 素材就是博客的生命线.

    BC省议会大楼(现在成文物了,每天对游人开放参观),在维多利亚 Inner Harbor .

    Thursday, January 29, 2009

    Rocky mountain trip落基山国家公园行程

    我喜欢旅行在路上的感觉.

    这里是2008年陪岳父岳母观赏加拿大落基山脉国家公园的行程, 包括Banff, Jasper, Revelstoke.
    和BC省立公园 Wells Gray, Mt. Robson.

    9/6 Saturday: 赶八点轮渡(8:00 Ferry), 不在温哥华停歇, 到Hope市吃午饭,
    夜宿净水市(Clearwater).Jasper Way Inn Motel, 57 Old North Thompson Hwy East,
    1-250-674-3345, 2bedroom, $105

    9/7 Sunday: 游Wells grep 瀑布,Roberson公园,Mt Edith Cavell 看冰川,
    夜宿Jasper. Accommodation in the Rockies,303 Aspen Avenue,tel:(780)852-4609
    Rates ($CDN, per room, 2 guests) High Season - $60,Low Season -$40, Miller

    9/8 Monday: 自带午餐游 medicine lake/Maligne lake, Miette 泡温泉

    9/9 Tuesday: 穿过 93 号公路, 观看1. Athabasca fall, 2.哥伦比亚冰川, 3. Saskathewan午餐, 4. Mistaya Canyon 5. Bow pass(Bow summit), and Peyto lake 6.乌鸦脚雪原
    夜宿Banff. Rocky Mountain Bed and Breakfast,223 Otter Street,
    1 (403) 762-4811,www.rockymtnbb.com $100-$125, sheryl

    9/10 Wed. 1.Go throuth 1A (Option), 2.Lake Louise,(自带简餐)
    Yoho:1. Spiral tunnels 2. Takakkaw fall 3. Natural bridge 4. Emerald Lake
    5. Golden 午餐
    夜宿Revelstoke, Alpine Inn & Suites, 1001 W2nd St, 1800-876-8206
    2 bedroom suite three double beds or two double beds and two single beds, $110

    9/11 Thu. 游水库大坝, Naksup (optional)

    9/12 Friday: Vernon (optional)

    9/13 Saturday: 温哥华 中餐 大快朵颐, 夜宿Richmond华人家庭旅馆.
    9/14 Sun.乘轮渡返回 美丽宁静的Victoria.


    应该是5号(Yellow head)高速公路.

    Monday, January 26, 2009

    2009 Chinese new year show维多利亚春节联欢晚会

    给维多利亚华人社区做个广告.
    -------------------------------
    時間: 2009年1月31日晚7:00
    Time: 7:00pm January 31, 2009

    地点: 以馬內利浸信會
    Location: Emmanuel Baptist Church,
    2121 Cedar Hill Cross Rd. (大学南门)

    晚会内容: 中国民歌民乐民族舞蹈京剧话剧
    Content: Chinese Music, Chinese Dancing,
    Beijing Opera and Drama.

    晚会提供少年兒童照顾: Children Program Under Grade 6
    免费入场,会后提供茶点: Free admission and refreshments provided after show

    赞助单位 Sponsors
    Dawa News
    VictoriaBBS.com
    Global Travel
    DFH Realtor: Ms. May / Katherine
    Traditional Chinese Clinic: Dr. Chen

    大华商报
    维多利亚华人网
    环球旅游
    DFH 地产经纪:刘艳梅/李冬妮
    北京传统中医诊所:陈香医生

    -------------------------------
    http://www.news.cn/video/2009chunjie/cw.htm
    推荐给海外华人, 这里您可以看到中央台春节晚会录像.

    Thursday, January 22, 2009

    Solve SQL plan access path issue with 10053 trace CBO小试牛刀解决执行计划突然改变的一个办法

    写完了英文版以后,耗尽了今天的能量,赶在各位回家过农历新年前,再努力一下,完成中文版.

    问题
    ----
    如下SQL查询订单细节表,两个谓词(predicate),每个谓词列上都有索引,
    为什么 SQL optimizer 挑了一个选择性差的索引.

    # SQL
    SELECT /* */ * FROM po_item
    WHERE poid = :a AND STATUS = :b
    ORDER BY poitemid;

    INDEX PO_ITEM_POID ON PO_ITEM(POID)
    INDEX PO_ITEM_STATUS_UPDDT ON PO_ITEM(STATUS, STATUSUPDDT)

    db_file_multiblock_read_count = 32
    optimizer_dynamic_sampling = 2
    optimizer_features_enable = 10.1.0.4
    optimizer_index_cost_adj = 100
    alter system set optimizer_index_caching = 25;
    alter system set optimizer_mode = FIRST_ROWS_10;

    我们的情况是,一般一个订单一本书, 应该选择订单号POID列,基本没有重复. 但是2007年初夏的一个夜晚,CBO突然改用了物品状态STATUS列上的索引, 物品状态总共只有20个不同数值.
    幸运的是,通过构造测试案例,成功再现了当时的情况(好比侦探办案).

    解决方案
    --------
    理解 CBO,试验,观察 and 解释说明.
    With SQL session 10053 trace and dbms_xplan.display_cursor().

    结果及解释
    ------
    当列统计信息包含num_distinct和density时,少数情况下,优化器会考虑使用density.
    比如这个案例,
    根据谓词取值(predicate column value)在数据发布图(histogram)的水桶(bucket)里面结果集大小(cardinality) 和 num_rows * density 做比较, 理论上会取数值大的一个. 但是这个案例CBO挑了数值小的一个. 理论会随着新版本的出现而改变.

    做数据库设计和管理的,英语都不赖,看官您先读一点英文吧,春节后就变成中文啦. ^_^
    When database collect histogram stats on a column, it calculate a new density for the column,
    and it will be extreme smaller, CBO use density as selectivity.
    After we hack the column density, database will clear the histogram stats,
    the CBO will use 1/NumberOfDistinct, ignore density.

    When we check the output of 10053 trace,
    both IO costs are same, but index selectivity (ix_sel) and table selectivity (ix_sel_with_filters)
    on Index: PO_ITEM_STATUS_RANDOM_UPDDT is smaller than than it on Index: PO_ITEM_POID.

    Access Path: index (equal)
    Index: PO_ITEM_POID
    rsc_cpu: 17832 rsc_io: 3
    ix_sel: 1.2670e-05 ix_sel_with_filters: 1.2670e-05

    Access Path: index (index-only)
    Index: PO_ITEM_STATUS_RANDOM_UPDDT
    rsc_cpu: 17632 rsc_io: 3
    ix_sel: 6.2422e-06 ix_sel_with_filters: 6.2422e-06

    *) 修复: 改变列的density统计信息, 使之接近真实值.

    Test case setup link 构造测试案例

    10053 trace output跟踪文件输出和dbms_xplan美化的执行计划.


    后记
    ----
    CBO的水很深, 一环套一环, 好似无底洞. 研究细节和深度需要适可而止,解决完问题,赶紧撤.
    参考Christian Antognini提到的DBA容易犯的强迫调优失调综合症(compulsive tuning disorder)谨防重蹈覆辙.

    FYI,
    Once upon a time, most database administrators suffered from a disease called compulsive
    tuning disorder.3 The signs of this illness were the excessive checking of many performancerelated statistics, most of them ratio-based, and the inability to focus on what was really important.


    回龙观 风雅园 飘在北京住的地方

    Monday, January 19, 2009

    Learn from Oracle book 读书学习数据库

    首先热烈庆祝今天读完了老刘(Lewis)的Cost Based Oracle Fundamentals附录A附录B,就此读完了全书.欢迎客官您将各种SQL执行计划和优化器方面的疑难问题放马过来,让木匠尝试一下新学的功夫.

    开卷有益,静下心来读书是吸取知识的最快途径之一, 再结合试验,进步更是飞快.
    书中自有黄金屋,书中自有颜如玉,对第二点还没啥体会,您有的话,介绍一下.

    2008年上半年读完了Steven Feuerstein的Oracle PL/SQL Best Practices, 2nd Edition: October 2007, ISBN 13: 9780596514105. 感觉PL/SQL功力暴增,从菜牛一跃变为牛人,读完了Doing SQL from PL/SQL: Best and Worst Practices更是进入了超一流选手的行列,充满自信.

    2008年10月11月,花了两个月时间完成了瑞士人Christian Antognini的Troubleshooting Oracle Performance. 读了一半,节奏缓慢,等读完了所有章节,才明白了前半部分铺垫的意义,盖房子要有一个好的根基. 作者虽然母语不是英语,开始读的时候稍有不适,慢慢的,发现他的文章却是平铺直叙,拿捏得体,易于理解,所以读书进度很快.

    扯远一点,1994年偶然在公司(西安思维)捡到一本Code Complete(代码大全)中文译本,爱不释手,但也只是蜻蜓点水,学到一点皮毛.现在我手里正拿着Code Complete的原版.
    代码大全里讲的软件开发有几种比喻(Metaphor), 比如软件书写(Penmanship,写作),软件农场(种庄稼/耕作Farming),软件堆积(养牡蛎Oyster Farming) 和 软件构造(Construction/Building,构建软件).
    我同作者一样,喜欢盖房子这个比喻,房屋的根基和房屋的构造规划都很重要.

    2008年5月开始读CBO Fundamentals,这本书真是难啃,内容不易理解,断断续续,每天大概5页,9月份卡在第十三章Sorting and Merge Joins,圣诞节又拾起这本书,一鼓作气,冲过难关,读完了剩余部分,特别是读完14章The 10053 Trace File,贯穿全剧,对CBO的认识又上了一层台阶.
    我对英国英语不太适应,Doing SQL from PL/SQL: Best and Worst Practices的作者也是英国人,读起来相当吃力,改天我把所有20个要点及示例重新写一遍.

    下一个目标是Richard J. Niemiec的Oracle Database 10g Performance Tuning Tips & Techniques, 1000页,每天十页,计划100天(3个月)读完.粗粗翻了一下,此人标准美国英语,文笔通俗易懂,按时完成目标问题不大.


    2005年7月刚到加拿大时,从旅馆到办公室的路上, 距离办公室有300米,中午常到这里散步.

    Friday, January 16, 2009

    Kicks 近期动态

    除了生活八卦以外,好像我的技术文章大伙都没兴趣,难道是我讨论的主题太偏太生僻,还是社区里面做Development DBA的同仁较少,激发不起共鸣.

    这里是我的学习动向,
    宏观研究易于线性廉价扩展的数据库系统,BASE解决方案,依据功能组拆分数据库,异步处理.
    微观研究SQL Optimizer是怎样工作的.弄清楚了Oracle优化器,你会发现以前各种SQL方面的疑难杂症迎刃而解,加个SQL hint,调整隐含参数,修改对象统计信息之类的技术,都是菜鸟级的功夫,但是牛人也得用.
    中间层面,研究各种典型场景中处理数据的设计模式,以及SQL和PL/SQL优秀实践和糟糕实践,找出规律,重构模型. 通常我们讲最佳实践,木匠不喜欢"最佳"这个词,它也是个封闭端口,感觉不允许别人挑战你的权威一样. 质疑权威是我的行事准则之一. 而且喜欢开放端口的描述.

    生活方面, 耳朵感染了,旱了两个月,这个周末开始恢复游泳锻炼,健康始终排在个人目标前三位.
    2009年的密林狂奔和(国家公园)露营野游计划也该详细制定了.
    股市在低谷震荡,2月底以前需要找准机会抄底,买足去年RRSP(退休金计划)的余额.
    房屋贷款利率降到了2.8%,诚如玉面飞龙所述,现今房奴的日子比较舒服,不急于还本金.

    职业发展方面,前CIO介绍了一个挑战性的工作,2月初确定.
    还有个加州的华人中介介绍了中国的机会,如果前一个尝试失败,加拿大移民监坐完了,我可以自己回国.如果前一个尝试顺顺当当,我就把它介绍个国内的朋友.
    我平均18个月换一个工作,最短的只干了一天半,1993年10月在西安用AutoCAD绘制电路图.
    目前这个工作是我做的最久的,已经3年7个月了,一来就是6级工程师,我们的CIO/CTO才7级,基本没有发展空间了. Tom讲过,10年做10个项目,远远好过10年做一个项目,积累更多经验,学到更多知识.
    参考木匠的座右铭,我最不缺少的就是探索尝试新技术的兴趣,好奇心,创新精神和想象力.

    博客方面,一下萌发了好多主题,可是哪个也不能专心深入的展开写出来.
    老爸讲过咱天生就是发散型思维,缺少组织才能,缺少的是自律和专注,排在我的座右铭前面.
    人生35岁,看清了自己的优点和缺点,不容易.路漫漫其修远兮,吾将上下而求索.
    突然觉得英文写起来快,中文已经慢了几节,下周赶紧把异步处理系列翻译完.


    我们家苏菲 和 回龙观的冰糖燕窝家的 ??,对不起,浅棕色可卡犬的名字忘了.

    Tuesday, January 13, 2009

    Why to generate test data and how. 为什么要生成测试数据?如何做?

    在学会生成测试数据之前,我仅仅知道select * from scott.emp;
    加上
    create table t(a number);
    insert t values(1);
    这就是我知道的所谓测试,幼稚吧.

    为啥需要测试数据呢?
    情况太多了,我的经验是,等到你需要的时候,就是找不到,干着急.

    测试数据可以用来把灵感转化为实践,验证原型是否工作(可用性,可靠性,可扩展性),性能测试,提问题和重现问题 等等. 随后有一篇介绍我是如何用完善的测试数据发现了使用MERGE SQL产生的臭虫.
    还支持TDD, 测试驱动开发, 用过以后你就知道甜头了, 和异步处理一样美妙!

    关于提问题, 引自Tom: You would better supply very very simple create tables and insert statements.
    The SMALLEST create table possible (no tablespaces, no schema names, just like I do in my examples for you)

    解决方案.
    --------

    *) 产生多个不同数值, 得到一定的数据分布

    Mod(rownum,500)
    dbms_random.value(1,500)
    dbms_random.normal()

    *) 产生字符串

    rpad('x',500,'x')
    lpad(RowNum,200,'*')
    dbms_random.string('l',500)
    # 'u', 'U' - returning string in uppercase alpha characters
    # 'l', 'L' - returning string in lowercase alpha characters
    # 'p': any printable char. this one is slow

    *) 数据源

    # dual connect by level <= 3000 # all_objects # WITH subquery factor *) 随机排序 ORDER BY dbms_random.random; *) 点击进入具体示例

    *) 参考
    1. Tom, from dba_object
    2. Jonathan, + materialize subquery
    3. Christian Antognini, dbms_random.string()
    4. Tanel, dual join dual connect by level <= 3000
    维多利亚市的天鹅湖, 湖对岸右边一点是Hatley Castle城堡, 电影X-Man(X战警)三部都是在这里拍摄的.

    Wednesday, January 07, 2009

    cross rows comparing行间数值比较

    回应eagle的一篇帖子,介绍一下多种方法做行间数值比较.

    方法
    --------
    1. Hash Join
    eagle’s home http://www.dbafan.com/blog/?p=176

    2. Lead()/Lag() Analytic function

    3. SQL Model

    结果
    -------
    Hash Join表连接是一个好的方法, Lead() 分析函数效果更佳, 更短时间, 使用前者八分之一Latches锁,1/4逻辑读.
    SQL Model可以工作, 但是数据量一大,效果就很差,惨不忍睹, :)
    SQL Model 需要更多的 PGA内存和临时表空间来存储Model单元和排序.
    减少Measure部分的列数有一定帮助, 需要进一步学习和调整. SQL Model的效率理应匹配Lead() 分析函数.

    您有更好的手段来调优 SQL Model 吗? 请发表高见.

    详细性能测试步骤和代码

    PL/SQL ADT collection usage比较自定义类型数组与PL/SQL数组的性能

    从今天开始, 木匠开始介绍BASE架构中数据库部分的基础部件.
    有了这些基础准备知识以后, 我们再来谈(big picture)整个画面: 异步处理 和 数据复制.

    PL/SQL 是最好的Oracle数据库数据处理和编程语言, 这里讲讲如何提取数据并放进用户数据类型数组ADT/UDT collection. 我仅知道3种方法, 我们通过一组Benchmark找到每个方法的优缺点,帮助指导实践.

    先写了英文的,然后翻译成中文. 详细初始化设置和Benchmark的代码, 请参考英文版链接, 很多关键字看英文版会更清楚.
    你可以暂时忽略create table里面的list partition分区部分, 以后会用到.

    欢迎提出更多更有效的方法.

    Benchmark方案
    -- -- ---
    * RunStats
    * SQL trace, 推荐使用Christian Antognini的TVD$XTAT trace 分析工具 , 读过TOP的人都知道, ^_^.

    测试结果
    -------
    PL/SQL 内置数组(Associative Array and Nested Table) 是从数据库获取结果集的最省资源的方法.
    但是有些时候,你需要把数组当作表(table),来跑一个查询, 你就必须用到ADT/用户数据类型数组.
    比如:

    Declare
    lt_item_tab item_tab;
    Begin
    select item_name, qty, price from TABLE(lt_item_tab);
    End;


    3种方法 和 他们的优缺点:

    1) 将多个列转换成用户数据类型数组, 成批放进数组.
    优点: 代码简洁.
    缺点: 和第二种方法相比, 多消耗50%的CPU时间; Latch锁数差不多.

    2) 使用multiset, 在SQL里面直接构造出用户数据类型数组, 作为一行/一个单元放进数组.
    优点: 使用较少资源, 在我的测试案例里面, 比第一种方法CPU时间少50%.
    缺点: 代码有点复杂; 在版本10.1中,不支持SQL Returning语法. (明天试一下11.1.0.7).

    3) 成批放进 PL/SQL 内置数组, 然后复制数据到用户数据类型数组.
    优点: 使用较少资源, 67% better than approach 1 in my test case; Latch锁数少一半.
    缺点: PGA内存多一倍, 合乎逻辑, 代码有点复杂, 维护性较差.

    注释: ADT: Abstract Data Type, 也叫作 User Define Datatype.

    鄙人以为, 以上所有代码都很简单, 复杂只是相对而言. 嘻嘻.

    Sunday, January 04, 2009

    Amazon.com aquired AbeBooks.com公司被亚马逊收购

    上文书提到要写收购的事儿,今日成行,

    2008年早些时候就开始谣传,先是说要被Chapter(加拿大最大实体书店)收购,
    后来夏天漂流的路上听"老奔驰"说在两周以后要被亚马逊收购,而且全世界的人都知道了,这才倍感震惊,恍然知晓.
    公司有3个华人同事,我是第一个得知,难道这"全世界"不包括我们,因此学了一课,没事多找同事聊天,即提高口语,又快速了解本公司花边新闻.

    7月31日,公司宣布第二天有重要消息发布,同事们顿时感到黑云压境,不知是祸是福.
    第二天亚马逊来了几个VP,宣布了收购意向,十月底完成交易,现金收购.
    他们提到了三个不变: 业务,人员和办公地点.这下大伙的心才放了下来,松了一口气.
    在QA问答时段,席间好多同事积极表示了去西雅图亚马逊工作的兴趣,他们的回答是公司鼓励应聘内部职位,优先考虑.本地西人同事真是直爽!

    收购并不是一帆风顺,期间受到了加拿大政府遗产部门的刁难,区区一个十年历史的创业型公司,咋样也不能算作一个加拿大遗产呀!!? "老憨"(德国CEO老大)多次亲自跑到渥太华,同政府官员进行激烈的争论,终于在11月底得到政府批准,(而接待我们CEO的竟然是刚毕业的实习生毛头小伙,他知道啥呀).

    结果12月1日成交,亚马逊趁机压价10%,好过收购失败,以后有大树做依靠,确保安然度过本次经济危机. 还好加币跌了,收购按美元结算,基本没有亏损.

    在说说股票和期权,这是木匠第一次从期权里面得到实惠,味道不错;在Dell工作的时候,发了600股,每股标价$60,结果到走的时候,2001年IT泡沫,每股跌倒$30,味儿都没闻着.
    原来的公司AbeBooks.com每人##股期权(Stock option),人人均等,共产主义.
    到了亚马逊好了,发的是股票Share,而且根据职务轻重差异化,终于显示出来DBA的重要性,还是大公司规范.股票分四年兑现,算下来每年差不多一万块.这年代,要求加薪五千,难于蜀道,股票发下来倒是轻松.

    号称维持三不变,其实日常工作还是受到了影响,稍微大点的项目,都要报亚马逊审批.希望今年有机会南下100公里,到西雅图亚马逊短期轮换工作.


    注释1: "老奔驰", 原名Peter, 因为他有一辆80年代造的奔驰汽车,就给他起了这个绰号.在办公室用中文议论别人是不礼貌的,所以给每个同事都起了中文外号,比如沃尔沃,豆腐丝,老汤唯,二号,研究生...etc.

    河狸湖(Beaver Lake)结冰了,1996年以来首次,记录一下.

    Saturday, January 03, 2009

    Data accuracy and consistency分布式异步数据处理的可行性

    2009年定下一个实在的目标: 坚持每周一篇博客. 主要写个人在加拿大的生活趣事, 以及数据库开发和设计模式作为辅助.
    -- '大多数的事例告诉我们,我们不因才干、天赋、美丽的帮助下取得成功。反而,成功来自于最简单的"坚持"'.

    好了,言归正传,谈谈当下如火如荼BASE设计架构中异步处理的可行性.
    BASE (basically available, soft state, eventually consistent)

    很久以来,产品经理和软件开发人员都把维护数据的一致性和准确性作为首要目标.
    要想构建一个scalable线性扩展的数据库系统,必须牺牲一些数据一致性,来创造出更高的可用性和减少网络依赖性(Network Partition Tolerance, or Isolation and Loose coupling).

    鄙人认为(IMHO - in my humble opinion), 除了信用卡系统和订单系统, 其余功能模块都可以异步处理,比如库存,搜索,财务,物料,后勤运输,发货...etc.
    这里提供两个真实生动的素材,帮助你说服产品经理,证明构建异步数据库系统的可行性.

    a) 航班订票系统
    某天你去国航订票,要求买靠窗户的座位,系统里显示只有3个走道的座位,但是实际上有两个靠窗户的座位.
    你会去国航找他们领导投诉吗? 答案是否定的.

    b) 网上购物-在亚马逊买书
    Doug(倒戈)刚刚出版了一本新书: "如何冬季漂流?".
    我们快乐的客户登录亚马逊主页,输入关键字"漂流", 找到3本书,但是没有Doug那一本,客户才不在乎呢.
    他们买了一本评分高的, 然后带着汽船去享受冬季漂流了.

    我猜只有作者Doug非常气愤,他会打电话给亚马逊客户服务热线,要求更新库存,将他的书上线.

    同样, Tom 刚刚出版了一本新书: "如何3分钟优化你的数据库?"
    ... ... 您自己编后边的故事吧, 嘻嘻.


    以下是我发给我们产品经理的原文.

    *) Air flight booking ticket system

    As a passenger, if you ask a seat close to window, but system shows only 3 seats available in aisle, and actually there are 2 more seats close to window.

    Will you call airplane company to complain? No.

    *) Amazon book search

    Doug published a book: “how to tube in winter?”

    If you search the book title with keyword “tube”, show 3 book, but not Doug one, the end user won’t care. They will buy one of them, and then enjoy the tube in Winter…

    I guess only editor Doug will be angry, he will call Amazon to refresh his book in Inventory.

    您有什么更好的应用场景故事呢? 欢迎留言介绍.

    注解1: Doug 是我们公司一个年轻贪玩的Web Developer, 每年夏天组织我们去Duncan市Cowichan 河漂流,而且可以观赏hot girl, 并且引诱你吸大麻(Weed).
    注解2: Scalability - 更具体点,就是Scale Out, 这个词我翻译的不好, 欢迎批评指正.
    注解3: network Partition tolerance, CAP三原则中的P, 也翻译的不好,请指正.

    p.s. 参考:

    1) BASE: An ACID Alternative
    http://acmqueue.com/modules.php?name...owpage&pid=540

    2) Scalability Best Practices: Lessons from eBay (Partition and Asynchronously)
    http://www.infoq.com/articles/ebay-s...best-practices

    *) Fenng 的 系统架构方面的文章汇总.
    http://www.dbanotes.net/arch


    从客厅窗户看我家后院.

    Friday, January 02, 2009

    Life quality beside salary 生活质量和生活成本

    上一篇讲了美国高科技公司的收入, 这里续写一篇, 生活成本, 然后您就能估算出生活质量了.

    如果你今年在硅谷湾区找到了一份满意的工作,
    开始找公寓租住,
    一房一厅 $1200 ~ $1500
    两房一厅 $1500 ~ $2200
    如果你是单身,一个月$8000,不少了吧,基本吃住生活开销,就得花掉$4000, 还有30%缴税,
    各种奢侈娱乐你就别指望享受了,闲暇时间,就在家上网溜溜花边新闻得了.
    或者休长假,去中西部偏僻省份长途旅游.

    Santa Clara中等价位房屋 $500,000
    稍微好点,中上等价位房屋 > $ 1 million.
    在硅谷的IT华人,基本赚着中上等的收入,住着中上等价位的房子.
    维多利亚的IT华人也一样; 中等价位房屋 $40万, 中上等价位房屋 > $60万.

    比如在湾区,一个家庭年收入在15万到25万,不少了吧, 每月大概一万二到两万.
    上缴30%个人所得税, 每月6千.
    然后谈房子, 基于正常贷款利率, 借十万,月供$500, 那么买个一百万的房子,
    多年的积蓄交了20万首付,咋整也得借八十万,月供$500 * 8 = $4000, 日常生活开销, 每月2k~3k.
    一般一家两个小孩, 上学加上各种知识培训(钢琴,国际象棋,游泳...等等)一个费用在1k~2k, 两个算3k,不包括玩具.
    一眨眼,每月一万六千块钱没了. 该谈玩耍娱乐了, 就在自己后院陪小孩玩玩过家家娱乐吧.

    最近半年房屋价格剧烈震荡, 半年前中等价位房屋 $70万.
    但是好地段的房子,价格基本没变, 老道理 Location, location, location!
    买房主要看位置,位置,还是位置.

    总之, 硅谷湾区生活成本高, 一个家庭里边, 夫妇双方都要工作,才能生存下去.

    以上素材来自一个我的客户,在硅谷湾区工作生活了15年,如今在 Mountain View 上班.

    注释1: 写的有点悲观, 给一些盲动的人一个清醒的认识,比如我, 全盘考虑以后再做决定. 嘻嘻 硅谷的人们依然快乐的生活着.
    Have a nice day!

    Thursday, January 01, 2009

    Salary review in glass_door职业规划

    新的一年开始了, 你定下了什么职业目标?

    2008年初我的目标是年收入增加一倍, 由于客户业务量收缩,我的目标也随着一再调整,最后减到年收入增加25%. ^_^
    今年经济形势差,正好找个借口,今年的目标是持平去年的收入,或者减少20%,不求上进.
    (不能产生价值的技能,不是我追求的技能;参考木匠的座右铭第二条: 实用)

    我三年前登录加拿大的时候,预定目标就是坐满移民监,然后南下.
    估计这个月入籍考试,三月宣誓入籍,就可以走了.
    资本主义经济5到10年一个高低循环, 让我赶上了经济低谷, 或许还要继续卧薪尝胆一年.

    亚马逊有一个内部机会,属于Payments Services部门,
    我就喜欢去最艰苦(critical business)的地方工作,提升技能,提升收入,一举两得.
    先联系试试,看看可不可以远程工作两个月,然后搬过去.

    关于工资调查,我推荐www.glassdoor.com, 一个由用户产生内容的Web2.0网站.
    在如此经济低迷时期,它居然得到了一千万风险投资.

    这里是GlassDoor网站公开的工资调查.
    你注册一个帐号,然后填上你的年收入(现在的或者历史的,都行),就可以看别人的工资和公司评价了.

    Microsoft

    Software Development Engineer base salary: $91,464
    Program Manager base salary: $89,765
    Software Development Engineer In Test base salary: $84,451

    Deloitte

    Consultant base Salarie $73,236
    Senior Consultant base Salarie $96,546
    Consulting Manager base Salarie $127,002

    Cisco Systems

    Software Engineer IV base salary $110,904
    Software Engineer III base salary $93,232
    Software Engineer base salary $90,629

    Accenture

    Consultant base salary $73,741
    Analyst base salary $58,426
    Technology Consulting Analyst base salary $59,460

    Yahoo!

    Software Engineer base salary $97,175
    Senior Software Engineer base salary $121,145
    Senior Product Manager base salary $123,000

    Google

    Software Engineer base salary $95,631
    Senior Software Engineer base salary $123,225
    Software Engineer III base salary $105,022

    Amazon

    QA
    Salary: $84,000 Bonus(Cash+Stock): $20,500 Total $97,667
    Software Engineer I
    Salary: $82,416 Bonus(Cash+Stock): $18,286 Total $97,889
    Software Engineer II
    Salary: $98,686 Bonus(Cash+Stock): $28,140 Total $122,857
    Software Engineer III
    Salary: $113,54 Bonus(Cash+Stock): $58,859 Total $161,311

    Yahoo! DBA
    Salary: $128k~141k Bonus(Cash+Stock): $24k Total $153k~165k

    QA Engineer at Yahoo!
    Salary: $88,880 Bonus(Cash+Stock): $5,500 Total $90,713

    Cisco Systems Software Engineer
    Salary: $90,629 Bonus(Cash+Stock): $12,772 Total $98,223

    eBay Principal DBA
    Salary: $138k~150k Bonus(Cash+Stock): $ 20k Total $158k~171k

    维多利亚的IT同仁,咋样,心动了,南下吧.
    看看下面这张地图,西雅图就在维多利亚南边100公里,收入却高出我们一倍,天理何在. 哈哈.
    备注: 点击看大图.


    Wednesday, December 31, 2008

    Motto of the year 2008座右铭

    2008年阅读了很多对生活和工作有指导意义的文章,
    好多都是看完就忘,无法运用到日常事务当中,让人遗憾.

    后来思考了一下, Simple is beautiful, 简单就是美, 常用且有用的就那么几条,足矣.
    收集并简化其中的精华,贴在我办公室抬头可见的位置,每天早晚温习数遍,潜移默化到实践当中.
    (通过自律和专注, 在2008年最后一周,实现了每天一篇博客)
    并且希望对过路看客有帮助.

    *** 按照重要性*优先级排序 ***
    14:c:目标 Definiteness of Purpose
    12:c:实用
    11:g:计划 GTD Inbox Organize Next Action Review
    10:x:合作 Master Mind Principle 完美 融洽 协作-尊重/respect
    9:u:专注 Control attention
    8:u:自律 Self-Discipline
    8:f:Accurate Thinking 全盘考虑
    7:m:Open and Listen
    7:h:健康
    7:e: 记录好主意 Write everything down
    7:e: 真诚-信任-行事透明
    7:e: 承担责任-询问意见-优雅接受批评
    7:e: 批处理杂务 Batching
    7:e: 感激 Gratitude. Be grateful
    7:e: 努力做的更多 - 更好更多的完成工作
    7:e: 主动去做 Be proactive. Personal initiative.
    7:e: Don’t take things too seriously
    7:c:热情
    7:c:创新 Imagination
    7:c:乐观开朗
    7:c:Positive Mental Attitude
    6:l:Learning from Adversity and Defeat 从失败中学习
    5:d:素质 -- 技能,专长,理解和热爱一个领域,
    5:d:灵活性 -- 初学者心态 - 好奇心
    5:d:享受竞争的过程,有足够的进取精神
    4:c:宇宙平衡法则 Cosmic Habitforce

    -- 按照我的缺点弱点(weak point)排序 --
    10:x:合作 Master Mind Principle 完美 融洽 协作-尊重/respect
    9:u:专注 Control attention
    8:u:自律 Self-Discipline
    7:m:Open and Listen
    6:l:Learning from Adversity and Defeat 从失败中学习
    7:h:健康
    11:g:计划 GTD Inbox Organize Next Action Review
    8:f:Accurate Thinking 全盘考虑
    7:e: 记录好主意 Write everything down
    7:e: 真诚-信任-行事透明
    7:e: 承担责任-询问意见-优雅接受批评
    7:e: 批处理杂务 Batching
    7:e: 感激 Gratitude. Be grateful
    7:e: 努力做的更多更好 - Going the extra mile
    7:e: 主动去做 Be proactive. Personal initiative.
    7:e: Don’t take things too seriously
    5:d:素质 -- 技能,专长,理解和热爱一个领域,
    5:d:灵活性 -- 初学者心态 - 好奇心
    5:d:享受竞争的过程,有足够的进取精神
    7:c:热情
    7:c:创新 Imagination
    7:c:乐观开朗
    7:c:Positive Mental Attitude
    4:c:宇宙平衡法则 Cosmic Habitforce
    14:c:目标 Definiteness of Purpose
    12:c:实用

    没有数据库,一样完成Order By的排序操作 :)

    附录: 富兰克林的座右铭

    1.节制——食不过饱,饮不过量。
    2.寡言——除对别人或自己有益的话外,不多说话,避免与人说话。
    3.秩序——用过的东西归还原处,做事情有条有理。
    4.果断——该做的事,坚决执行,决定履行的,务必完成。
    5.节约——除对别人或自己有益外,不乱花钱,也就是说,切勿浪费。
    6.勤奋——不浪费时间,经常从事有益的事情,动作利索,不拖泥带水。
    7.诚实——不欺诈,心地坦白、正直,言行一致。
    8.公正——不侵害别人,不要由于你的失职而使人遭受损失。
    9.中庸——避免极端,责人从宽。
    *.整洁——身体、衣服以及居住的地方,保持整洁。
    *.沉着——遇事不慌乱,不论是琐碎的、一般的或是不可避免的事故。
    *.正直——行正言正,不要损害自己或别人的声誉。
    *.谦虚——学习先哲的谦逊精神。


    雪还没有融化完, 木匠就像水浒传里逼上梁山的好汉.


    这是我网上购物新买的柯达照相机拍摄的我们居民小区.

    Happy new year! 今天在小区散步, 各位大叔大妈就是这样打招呼的. ^_^

    Tuesday, December 30, 2008

    response time SLA 如何定义前端Service Level Agreement

    关于OLTP前端用户体验, 我赞成Christian Antognini(Troubleshooting Oracle Performance 作者)的度量方法.

    很简单.

    比如说购物篮Check out/Submit Order的最大响应时间,
    200并发事务 90% < 0.7秒, 99.9% < 1.5秒
    500并发事务 90% < 1.2秒, 99.9% < 3秒

    我们刚刚开始采用, 作为客户端response time SLA 的达标定义.

    如何检查你的应用性能有没有达到SLA定义呢? 有两种基本方法:

    1. The first takes advantage of the output of instrumentation code.
    2. The second one is to use a monitoring tool that checks the application by applying synthetic
    transactions.

    我的笨拙翻译:
    1. 分析跟踪(调试)代码的输出, 生成响应时间有关的性能报表
    2. 定期运行人工合成仿真事务, 监控其响应时间

    附录, instrumentation说起来简单,却找不到一个合适的中文,抱歉,我考大学语文不及格. 看客您将就点儿.
    比如, log4j, log4plsql, Oracle session SQL trace 和 debug.f 都是 instrumentation, 用來跟蹤運行代碼的執行結果.

    Monday, December 29, 2008

    Company benifit package 公司福利

    圣诞节假期过去一多半了, 人越发懒惰,啥正经工作也不想干.
    今天的主要任务就是写博客.

    一大早起来,想到公司福利是个很好的主题,有一大摞素材.

    就说我们公司吧, 2004, 2005, 2006, 2007 & 2008 连续5年 加拿大Top100,
    (North America’s top ecommerce companies) 北美(加拿大,美国,墨西哥)电子商务公司排名70.

    假期: 15天; 3年以后, 18天; 5年以后, 20天. 我是2008年夏天够3年的.
    病假, 一年6天, 事假(Paid Personal Days-off), 一年3天.
    共计: 24~29天, 病假事假用起来和年假一样. ^_^
    灵活工作时间, 作为数据库管理员,这个我用的多.

    公司付3%工资额度,替员工购买退休金(RRSP), 相当于工资增加了3%.

    报销: 每月汽车票或停车位 $75, 每月健身$25, 书籍照实报销.
    股票: 期权大概每人1万股, 最后卖给亚马逊的价格是5块多,扣完税人均1万多;
    反正成不了百万富翁,还得继续工作.
    员工可以按一定百分比额度购买公司股票,Share Purchase Plan.

    保险:
    短期失去工作能力, 前2周 公司付100%工资,后15周 公司付70%工资; 然后交给社会保险.
    牙医: 每年$2000, 就是说, 花费$4,000 乘以 50%.
    公司负责购买100%医疗保险.

    幼儿园: 正在筹建当中.

    办公室娱乐: 桌球,乒乓球,桌上足球,Wii; 另外每周三中午利用上班时间踢一个小时足球.

    小食品(tantalizing perks):
    每周三免费早餐,有我的最爱牛角面包,Muffin(马粪),甜圈(Doughnut),烧饼(Bagel),果仁酥饼,还有各种叫不出名字的食品;
    每周一二四供应水果, 各种饮料无限供应. 可是我主要喝冷水和豆浆.

    还有免费流感疫苗,电动按摩椅...

    左上角图片是我正在和一个菲律宾同事玩桌上足球, 窗户脚坐的是我们公司的二号(美女)在读书.
    这是我工作过的最好的办公室建筑,四面全部是落地玻璃,维多利亚美景一览无余,我的座位可以看到海景,照片随后就到.

    差不多就这些了. 象我门人事部经理说的, 现今20~30岁的年轻人,过两三年换一个工作,
    不是因为工作满意度差,而是依靠换工作来构造他们的简历. 还是有很多人再次回来,有两个QA回来以后升职当了拉长(Team Lead).

    因为目前大学生选修计算机IT专业的越来越少, 加上二战婴儿潮(baby boomers)开始大量退休.
    提高公司福利是吸引和留住IT人才的关键一环.

    附录一些报刊参考文章:

    Victoria's Abebooks fights to retain job-hoppers

    Happily ever after - Abebooks Inc.

    Sunday, December 28, 2008

    Boxing week 岁末减价周

    商家觉得Boxing Day一天太短,就发明了一个Boxing Week(减价周).
    27号天气不错,风和日丽的,我们一家出门进城购物啦.

    从中国带来的登山鞋终于在这次大雪天派上了用场, 可惜鞋底磨破了,其他地方依然如新.
    加拿大人力太贵, 补鞋不是办法, 就再买个新的吧.
    Fenng 绿色 IT 生活 推荐一条牛仔裤穿三年, 咱的鞋子是2003年参加北京昌平回龙观野猪登山队时买的, 木匠的名字也是从那时候公开使用.

    在SportsCheck找完鞋子和棉背心后, DL去MayFair看衣服,我下楼再扫一眼FutureShop.
    U盘和SD卡堆了几大箱,而我网上订购的依然在路上. 今年是卖不动了.
    在店里碰到了黑龙江北大才子, 这伙计去年Boxing day退掉的佳能单反相机,今年又捡回来了,有意思.
    俺们维多利亚华人圈子小,搞IT的基本都互相认识.

    中午在MayFair商场的快吃摊(Food court)解决了午餐,省了做饭和洗碗. 咱是出名的懒人.

    沃尔玛的抢低价的人太多,就放弃了.
    眼下经济低迷,以廉价著称的沃尔玛反而生意兴隆,不过他的货品质量不敢恭维.

    又到Candian Tire淘货, 找到果汁搅拌机,记忆泡棉枕头($5,野外露营用).
    一套两个保温不锈钢水杯$15.
    两个可以承重135公斤的小板凳$7,岳母回国之前一直惦记着去街道Yard Sale 后院跳蚤市场 捡几个回来,未果, 因为夏天宝贵的周末都被LP安排出门游玩了.
    还有咱多年苦苦寻找的大沿儿太阳帽,可以跟开吻野战军形象看齐了.

    您在Boxing week淘到什么了? 欢迎共享.

    Saturday, December 27, 2008

    LifeHacker top 5生活客工具推荐

    最佳文本编辑器:
    http://lifehacker.com/385929/best-text-editors

    Notepad++ (Windows)
    Emacs (All Platforms)
    UltraEdit ($49.95)
    TextMate (Mac OS X)
    vim
    TextPad(Windows) $32.50, 木匠喜欢用.

    最佳找工作网站
    http://lifehacker.com/5114814/five-best-online-job-search-sites

    Indeed.com
    Craigslist.org 木匠经常使用
    HotJobs.com
    CareerBuilder.com
    LinkedIn.com
    Monster.com

    Friday, December 26, 2008

    A white snow holiday 2008 白色圣诞节

    可能是戈尔(美国前副总统,现在是著名绿色环保推广人)的预言命中,
    随着全球变暖,会出现越来越多的恶劣天气.
    维多利亚,这个全加拿大最温暖的地方,开始下大雪了.
    记得2005你刚来的时候,整个冬天气温在零度以上,连阴天加毛毛雨,草地一片绿色.

    12月19日,从北极来了一股寒流.
    因此,从东海岸到西海岸,整个加拿大50年以来首次迎来飘雪的白色圣诞节.
    美国大部分地方也享受到了白雪圣诞节.
    维多利亚和温哥华均降雪70多毫米,部分房子被压塌.
    我家北边的河狸湖(Beaver Lake)湖面结冰,整个公园一片白色,踩得脚印都是那么干净.

    记得在中国时,大不了也就西伯利亚来股寒流,看来还是北极的寒流威力大,更猛烈.

    路面积雪打滑,出行不易,减少采购, 就在图书馆借了好多DVD,包括电影,足球集锦,
    肥皂剧('sex and city', 据说有利于提高英语口语 ^_^)
    我们圣诞节也吃了大餐, 就是包素饺子, 吃了两天,再次减少了出门采购.

    今天又下了雨夹雪(Flurry,新学一个词,和我的计算机同名), LP还惦记着SportsCheck(体育用品店)的长筒靴促销, 估计明天去,连断码也买不到了, 嘻嘻.

    祝各位朋友新年吉祥!

    Thursday, December 25, 2008

    Shopping online 2008 网上购物

    咱的博客老是干巴巴的文字,没有生活图片, 因此决定在假日前采购一个.
    还真有点难为了木匠,可恨的rb日货横行,都是木匠打击对象. 还好柯达幸存.
    昨天在staples.ca订购了一个柯达照相机, $65.00, C713 Digital Camera, 7.0MP, 3x Optical, 5x Digital Zoom
    这个配置足够我用了,拍照1024 x 768尺寸的照片就行了.

    话说华人男子最喜欢购买电子产品,
    在加拿大西海岸,网上购物一般可以去,
    dell.ca, futureshop.ca, bestbuy.ca, amazon.ca, staples.ca

    一般我推荐去dell.ca, 90%情况下物美价廉,送货也快,优于其他网站.
    可以在Amazon看看产品介绍和使用评价,亚马逊的强项是数据,包括数据仓库,(商务智能)数据挖掘 和 关联产品推荐;
    amazon.ca里面的货物品种比较少, 优点是以加币计算,运费合理.
    amazon.com里面的物品齐全, 可以用关键字搜索商品,然后顺着used & new链接,
    进入Featured Merchants,找价格实惠的商品.

    Dell的强项是物流和进货渠道,所以Dell的货,成本低. 我2000年在Dell做DBA,那时Dell的口号是零库存.

    staples.ca 第二天送货到家,送货免费($50以上),可惜电子产品种类太少,而且贵,还蒙你,说他的已经打过狠狠的折扣.

    一些极端情况, Future Shop 还是有亮点, 以下就是我淘沙淘到的两个内存卡,
    Future Shop的送货极其的慢,耐心等待个把月.

    明天是Boxing Day(大减价日), 我们去城里买点鞋子和衣服.
    老婆为了准备这个"火拼"日,做足了功课,遍历筛选了各种Flyer(广告传单).

    您是在哪个网站购物的? 欢迎留言投票评选.

    附号外一则,

    SQL and Hadoop
    听说Hadoop最终会结合进数据库,而你不再用作出选择:所有主流数据库系统将同时拥有SQL层、查询优化引擎和MapReduce能力。

    作为 Oracle DBA, 我就等着Oracle下一个版本 12.0 集成Hadoop啦,也省得提前单独学习它了.

    Sunday, December 21, 2008

    Getting Things Done notes 2008 学习与共享笔记

    两周前在维多利亚IT俱乐部做了一个GTD的知识共享,自己从中又学到了不少东西.
    如果GTD分为5级, 我刚好到InBox 和 Next Action之间的1.5级.

    时间管理:
    Set goal
    Set priority

    执行步骤(原则):
    Collect
    Process
    Organize
    Review
    Do

    计划 --> 一种自然方法:
    Defining the purpose and principles
    Envisioning the outcome
    Brainstorming
    Organizing
    Identifying next actions

    组织任务(文件夹):
    InBox
    Next Action
    Project
    Waiting for/On hold
    Idea/Inspiration/灵感
    Some Day/Maybe
    Reference
    Delegate
    Complete box
    Trash box

    推荐GTD工具:
    Paper and Pen
    Text file
    Spread sheet
    Action Outline
    Monkey GTD (http://monkeygtd.tiddlyspot.com/#MonkeyGTD)

    后续, 下次谈如何做计划.

    不同层次的远景和焦点,
    Current actions
    Current projects
    Areas of responsibility
    Yearly goals
    5 year vision
    Life goals

    Saturday, December 20, 2008

    Beat rb_jp products"今天,你搞日了没有?"

    枫华园原文有趣,引用一下. 继续马不停蹄的打击日货.


    日前和几位编辑朋友吃饭,吃到中间,有两位工作比较狂热的家伙抛开梅菜扣肉又讨论起了稿子,中间冒出一句 – “今天,你搞日了没有?”

    嗯? 这什么词儿阿?

    好 奇之下一问才知,“搞日”一词原来是个典故,在北京编辑界颇为流行。可能近来穿越流行,仓颉经常在北京的大街上游荡,三天两头创造出“BT”“雷倒”之类 新词,让字典追着改都来不及。大环境如此,作为文化人的一员,编辑们自然也不甘人后,这“搞日”一词,竟然是报纸上出了错字的意思。

    这个词兴起来没多久。原来,某大报前些天发了篇历史评论,编辑一个疏忽,竟把“抗日”排成了“搞日”,一直到报纸上市了才发现。上头老总看见“搞日救亡运动”,抱着脑袋在屋里转圈,心说我们当年确实抗过他们一回,可是我们并没搞他们阿!

    Friday, December 19, 2008

    Bald Eagle 白头鹰

    一大早出门,一只大鸟飞过来,还以为是海鸥或者巨型乌鸦(Raven).
    它越飞越近,才看清楚白色的头 和 白色的尾巴, 原来是只白头鹰.

    希望这个景象预示着2009年有个好的开端.

    这是我最近距离观赏白头鹰了, 大概十米.
    心想这伙计要是攻击我,可麻烦了,赶紧拉近了帽子.
    老鹰悠闲地飞进了北边的树林,竟然没有任何表示.

    12月15号, 有了 亚马逊 的邮箱, 这下简历好看一些了, 可以靠亚马逊唬人了, 嘻嘻.

    Thursday, December 04, 2008

    Speaking English 学英语口语和英语面试

    有好多人在问关于提高英语口语的问题.
    这里是我的一个简单解决方案, Simple is beautiful.

    Oracle iSupport: 你当时是怎么学习的英语?
    Charlie木匠: Watching "Friends", 纽约肥皂剧

    Oracle iSupport: 你学了多久?
    Charlie木匠: 依然很差, 词不达意

    Oracle iSupport: 比如别人要面试我,有没有同样的情景英语?
    Charlie木匠: 情景英语: 参考 monster.com
    Charlie木匠: 专业 更重要!
    Oracle iSupport: 我专业重要。但是表达不好. 问我东,我回答西
    Charlie木匠: 英语再好, 比本地人还差一大截
    Oracle iSupport: 那肯定了。但最起码得过面试这一关啊。只有给老外干,工资才高些
    Charlie木匠: 对头, 到经济最发达的地区.
    Oracle iSupport: 呵呵,嗯。那只有北京了。或者国外任何一个发达国家

    Charlie木匠: 好了, 包下我一个月的午饭.
    Charlie木匠: 找几本外语生活新闻杂志, 每天早晚大声朗读一篇文章.
    一个月下来, 准行. 这是以前DoubleBridge老板Joe 教我的.

    Friends(老友记) 看3遍
    第一遍: 中文字幕
    第二遍: 英文字幕
    第三遍: 无字幕

    只要功夫深(就是)铁杵磨成针
    黄天不负你这样的有心人

    另外可以参考西安老乡开吻的学习经验:
    http://13910841932.spaces.live.com/blog/cns!786C11C2EE11258E!4263.entry?&_c02_owner=1

    星期一二傍晚在加拿大和美国可以看到月亮金星木星(Venus,Jupiter)组成的笑脸,可惜维多利亚是阴天.
    昨天是晴天,嘴巴(月牙儿)已经跑到眼睛上边高处去了.

    Monday, October 27, 2008

    过周末autumn weekend

    星期六我们睡了个懒觉,10点多吃过早饭,当天Victoria Times Colonist(维多利亚日报)广告福特Escape SUV下调$5000, 3升6缸前驱, 6气囊,自动档,空调和自动门窗. 从$28,539 降到 $23,539. 马上赶往车行.

    等到了以后,才知道广告车型只剩下一辆,还是老鼠黑色(深青色),
    选来选去,中意一个2008款四驱白色和一个2009款前驱大理石色,都是$26,000多, 36个月0%利息,月供$900. 想想眼下糟糕的经济, 最终放弃了.

    折腾完了,都两点多了,按照A计划,到红谷仓(Red Barn)农贸市场买了大半个星期蔬菜水果.
    为了让岳父岳母快速适应加拿大,我们给很多地名起了中文名, 比如贝壳山,橡树湾,皇家橡树,说给同龄人,他们反而丈二和尚摸不着头脑. 我们住的小区叫链条,更觉古怪.

    周日上午顺着新家北面的仙湖(马鹿湖Elk lake)来回走了5公里(转一圈是10公里), 仙湖的名字是西安老乡"开吻"给起的.来加拿大3年多了,坐满了移民监,才开始享受免费图书馆福利,新家紧挨着一个图书馆,就顺便办理个借书证.

    周日下午看了一张陈冲的DVD, 一般都是糟蹋中国人, 又一次得到验证.
    故事讲的是纽约华人48岁寡妇与20多岁小伙热烈相爱,寡妇怀了小伙的孩子,寡妇的女儿(一个医生)却是个同性恋, 寡妇还喜欢看毛片, 角色们全是华人.

    我岳父岳母,一个月走之前讲过,二三十年前他们工作时,每周只有星期天一个休息日,周末就像打仗,拆洗被子,打蜂窝煤,忙忙碌碌一整天,喘不了一口气,比上班还累.

    到底社会进步了, 使我们有更多的时间玩耍和娱乐.

    Friday, October 24, 2008

    Translate root cause "问题根源"分析

    昨天读了老刘(Jonathan Lewis)的一篇时评文章,非常有趣,在征得老刘的同意后,在此翻译成中文.

    http://jonathanlewis.wordpress.com/2008/09/26/root-cause/

    标签: 架构, 解难, 幽默

    现今有一些(计算机)行业的表达方式惹恼了我 - 不必有一个好的理由,仅仅因为听起来极端的自命不凡,并且被做市场的放到一起. (狂妄自大, moi !)

    比如: "问题根源分析","整体全面方法" 等等 - 不过是重复在讲 "我们和别人解决问题的方法是一样的, 但要起一个好听的名字,使人们相信我们做的会更好,更有意义".

    每当他们提供这些无价值东西的时候, 我总是喜欢用相反的观点来比较,看看会得到什么印象:

    "我们采用全面整体方法" = "别人只看局部"

    "我们重点放在问题根源分析上" = "别人不会发现真正的问题在哪里"

    像这样, 只是换个说法, 没有任何额外价值. 你渐渐识破他的诡计和谎言.

    不过, 我近期看了一篇有才气的问题根源分析. 他是这样开始的:

    问题: "为什么我们开始 长时间等待 log file sync(同步写日志文件)?"
    答案: "因为经济衰退, 笨蛋."

    的确 - 这就是问题根源 (尽管我想引用 克林顿 1992年竞选宣言)

    说说他的来龙去脉.

    房价下滑(因为经济), 银行紧缩贷款(贷款多数是用来购买房地产)**.就是说他们放慢了贷款申请的处理速度.

    贷款申请有四种状态: 新申请,在线处理,批准,拒绝. 突然间很多申请被滞留在"正在处理"状态.

    办公室职员上班时间的多数工作集中在"正在处理"状态的申请, SQL 访问请求急剧增加, 使用更多的CPU. CPU负荷增长, 尽管(写)事务量没有变,写日志个数没有变, 日志文件同步的往返信号传输时间就会延长.

    因此 - 当房价下滑, log file sync(日志同步)等待时间延长. 这就是所谓的根源分析.

    脚注 - 这不是一个有关信息系统的准确描述, 但是经济变化可以影响数据库性能.

    ** 近期一份时代杂志指出, 银行相互竞争, 看谁能给出最低的交易.
    大概因为他们不得不继续发放贷款, 在市场上继续生存, 而不愿被别人摘牌(收购).

    经济危机

    [09:33] 木匠: 兄弟咋样了? 有没有受到金融危机影响?
    [09:34] 队长: 还没感觉到
    [09:34] 队长: 你那情况如何
    [09:35] 木匠: 这个月, 才开始, 加拿大慢一点, 1~2 年滞后
    [09:35] 队长: 那慢慢熬吧
    [09:35] 队长: 不成就回来躲几年
    [09:36] 木匠: 一个可选项,
    [09:36] 木匠: 不过国内也不好过了, 大批南方工厂关门大吉
    [09:37] 队长: 说实话国内情况也不会好
    [09:38] 木匠: 或者休假, 或者再教育
    [09:38] 队长: 年纪大了, 再教育不动了
    [09:39] 木匠: 没啥好招了
    [09:39] 队长: 睡觉去了, 改天聊

    上下文注解:
    木匠 在加拿大一家书店工作,刚刚被亚马逊收购. 预计2009年图书销售会下降40%.
    队长 在国内思科工作.

    昨天跟老朋友Chao也聊了好久,他那里情况同样不容乐观.
    由于涉及到一些心情文化隐私, 就不发表了.

    一介小民,难以回天,帮一个算一个.

    Sunday, October 19, 2008

    Amazon DBA team info exchange 书店DBA技术交流

    周五吃完午饭,和Amazon DBA team 进行了技术交流,
    (Amazon上个月收购了我们公司AbeBooks, 下文详解)

    我其实想问问 西雅图(Seatle)那边的DBA市场, 当时人多, 没有好意思问.
    听说维多利亚这边一些华人去了微软,那边生活成本低,房子便宜,收入又好,去的人基本不打算回来了.
    希望以后人员交流, 派我过去工作几个星期.
    维多利亚(Victoria)距离西雅图比较近, 隔着欢德福卡海峡(Strait of Juan de Fuca),坐船一个小时.

    内容如下,

    *) suggest move away from RAC for OLTP database, remove one big central database, function split to many small databases, Amazon got 100+ databases.

    - Cluster ware down, database down
    - one instance hang, database hang
    - painful global lock control
    - Lot’s of issues with RAC
    # Add database file make RAC database hang (happened in Amazon)
    # enq-US (undo segment management) cause slow Global cache/message transfer

    *) Suggest Open source Linux over other Unix

    *) Suggest cross platform and cross Oracle version standby database to help upgrade, will check the configuration certification to confirm it.

    *) Suggest batch commit (SQL> COMMIT BATCH NOWAIT) for Inventory data loading row-by-row auto commit jobs

    *) Oracle Active Data Guard Option enables real-time read-only access to a physical standby database to offload queries, sorting, reporting, web-based access,

    *) Enable fast-start failover to fail over automatically when the primary database becomes unavailable, proven stable,

    we’ll implement above 2 options after upgrade to 11.1.0.7 in 2009 spring.

    亚马逊的OLTP数据主要跑在10.2.0.4, 他们对11g第一个补丁集还不够放心.

    今日提示: 来自 Pythian Group Blog » Log Buffer #119

    Oracle 刚刚发布是早期Data Modeling工具, 这里下载, modeling download

    main data modeling page: Modeling

    Friday, October 17, 2008

    2009 OOW

    今年很多DBA朋友从中国到旧金山参加了Oracle Open World, 馋的木匠口水长流.
    终于领导建议并批准我明年前往, 暗自窃喜.

    这里是预算, 去过的DBA同行, 看看够不够?

    Oracle Openworld Conference 2009
    a. Conference Name – Oracle Openworld Conference 2009
    b. Conference Date –Oct 11-15, 2009
    c. Number of Attendees – 1 x Dev - Charlie
    d. Conference Cost - $2600 US
    e. Flight Cost - $1000 – Estimated
    f. Hotel Cost - $1200 – Estimated
    g. Taxi Cost - $200 – Estimated
    h. Meals - $250 – Estimated

    另外咱非常喜欢红色的边境牧羊猎犬(Border Colli), 原以为维多利亚就能找到培育场,
    偶然碰到公园玩耍的(Border Colli)狗友介绍, 需要远道 拉斯维加斯 才能够拿到优良品种的幼犬, 近一点也要到多伦多, 而且价格高,质量差.

    所以这一趟还可以顺便接回几只小狗.

    Wednesday, October 15, 2008

    成功投标 win bid project

    记录一下, 庆祝成功获得UVic(维多利亚大学) 海洋研究项目Oracle 技术咨询合同,
    这是今年接到的第三个项目, 可以帮助我完成年收入增加25%的目标(经过矫正, 以前是+100%),
    咱的小时工资又涨了,这次是$90,逐步靠近$120每小时的理想时薪. ^_^ :)
    该项目主要研究美国和加拿大西海岸海底生物,以后会补上他们的网站地址.

    下面是标书节选

    - a total of ##hours of Oracle expert consulting.
    - on-site support of our systems team for setting up and configuring Oracle 11g servers for high availability, including replication to an outside system and performance optimization for the type of data we are storing
    - other technologies in which the consultant should be proficient include: storage use strategies, partitioning, warm-standby and replication using DataGuard or other systems
    - provide basic Oracle 11g on-site training to developers and DBA.

    下篇预告, 翻译老刘的 "Root Cause"

    Tuesday, October 14, 2008

    Victoria IT Club 维多利亚IT俱乐部 节目单

    在这里刊登个广告.

    2008冬天 三个月 Victoria IT Club 节目单:

    10月18日,本周六的知识共享主题是: 可扩展性网站架构
    -- 之 如何构建一个低成本线性扩展的数据库系统.
    -- To scale the transactional throughput of a web-based system.

    11月主题: 爬山 Mount. Finlayson, 体力差的,观赏三文鱼洄游.

    12月主题: TDD(Test Driven) and QA自动化, 正在寻找主讲的志愿者, ...,欢迎您主讲.
    -- 报酬: 木匠 请您到 温哥华 Richmond 老四川 暴食.


    有钱的捧个前场,没钱的捧个人场. ^_^.

    Victoria IT Club hold free IT Seminars on 3rd Saturday 2:30pm every month at
    EBC church second floor meeting room. After each seminar we'll play
    basketball at Church Gym. www.ebcvictoria.ca

    Address: 2121 Cedar Hill Cross Rd.

    p.s. 参考:

    1) BASE: An ACID Alternative
    http://acmqueue.com/modules.php?name...owpage&pid=540

    2) Scalability Best Practices: Lessons from eBay (Partition and Asynchronously)
    http://www.infoq.com/articles/ebay-s...best-practices

    *) 老朋友 Fenng 的 系统架构方面的文章汇总.
    http://www.dbanotes.net/arch

    3) 金鱼溪
    http://www.goldstreampark.com/

    Monday, August 25, 2008

    老妈的创业故事

    前文讲了老爸的奥运故事, 再来看看老妈退休以后的创业传奇故事.

    以下引自我老爸的另外两封家信.

    << 这个邮件专说你妈。 昨天是星期天,我们两人去洛南玩了一天。洛南最北边的巡检镇有个老君山,处华山之阳,数峰并立,山势陡峭,墨绿青翠。传说道教鼻祖老子曾在此活动。我的看法,洛南县相学商南县造金丝峡、山阳县造月亮湾旅游景观一样,和一外地人签约,合伙开发。眼下开发公司成立,在商洛市区办公。工程已经启动,理想远景不次,登山道路草成。同行的30几个人,包了5个面包车,两个小时行程,9.30到达,稍事休息,10点登山,午时到顶峰,个把钟头下山。中午美餐一顿,5点到家。你妈参与了这公司,每天上班,月薪600。景点下有泉水流出 ,他们想办个饮水厂,将来生产饮用水。你老妈现集资5000,憧憬着以后捞个大元宝。当然呀,不用说我这次去,还是沾了你妈的光。她还向我吹嘘,过几天还有去河南南阳机会。我这个家属当然等待着这“宝贵时刻”的到来! 你老妈花甲之年已过,仍雄心壮志,似有魏雄曹操诗“烈士暮年,壮心不已。老骥伏枥,志在千里”之心!也好。人活着就得有个事干,总比无所事事好。 (上午你来了电话,我到河里洗衣服去了。昨天上山出了几身汗,那个路呀,好几处用壁立形容不为过。想象做成水泥台阶之坚啦!) 前一所告,洛南县的老君山景点在华山之阳,规划两景点修一条公路,游了华山,顺便就到了老君山,它的远景许是可观的。老白集资一万,签订半年合同,也参与其内,成了那个公司的一名员工,宣扬集资,往返洛南,每天忙个不停。曾因登山得奖200元,上月奖金收入一千多元,不说那几百元工资了。然她这山望着那山高,前一阵经熟人绍介,已经面试,想到西安南郊某酒店当大堂经理,工资千多,加奖金月收两千多,住有一间小室,吃就包了。对她来说,这无疑是很诱人的。但是,违约自退,集资不给,损失也是够大的;酒店答应给补5000,自损一半。后经请教别人,还有我的“训示”,西走的念头慢慢打消了。现“安”下心来,到旅游公司上班。 商洛学院已放假,女子却忙着改卷子。咸阳地区的中考试卷商洛包了,大概再有四、五天结束。她还准备到上海、苏杭一游,学校组织的。都很忙,就我闲了。 >>

    嘻嘻, 咱老妈也要做大堂经理啦. 以后路过西安住店, 遇到麻烦事,就找老妈投诉好了.

    老爸的奥运评论 结局篇

    16天的奥运盛事,昨天晚上落下了帷幕。不管是开幕式,还是闭幕式,异常精彩。这,也许因为我们是中国人,很欣赏东方的文化,然国际奥委主席罗格先生称本届奥运无与伦比,废弃了以前俗气的赞扬。昨天下午2.30,美国对西班牙的男篮决赛,更是引人入胜,是我多年来未欣赏到的一场经典之战,也算是无以伦比吧。16天,加上开幕式,有半个来月,我每天上午、下午、晚上观赏不止,精彩之处赏心悦目,但也确实累了,我将用两三天休息弥补之。

    明天就是你的生日了,女子中午吃饭时还在述说。我,就以奥运会的圆满结束这一盛事,聊以记之。

    Thursday, August 14, 2008

    老爸的奥运评论 - 续1

    12日看了三场。头一场上午10点半的女团体操决赛,美国劲头强盛,前三轮领先压着中国处首位。第四轮高低杆是中国的强项,一句窜到了美国前面。第五轮平衡木,中国首先出场的队长就掉了下来,所有的人都捏着一把汗。谁知美国队首先出场的,第一个动作倒反上杠,也掉了下来。最后中国队以两分的优势摘下了这块金牌。这是中国在这个项目上第一次拦金,值得庆贺。下午看了一场女篮,中国对阵新西兰。之前的一场中国和美国的较量,中国女篮输得一塌糊涂。这一场中国重振雄威,赢了20多分,比较轻松地拿到了胜利。晚上的中古女排较量,开始两局,使古巴落花流水。然它毕竟是个强队,第三局的尾声时节古巴逆转,第四局的比分交替上升,直打到32:30,古巴才赢。决定胜负的最后一局,我太累了,没有看.

    由于在加拿大看不到中央台奥运会直播, 老爸就在中国想评论,然后Email给我看.

    Wednesday, August 13, 2008

    我老爸的奥运会评论

    昨天看了两场比赛。上午10点开始的男团体操决赛,中国队的表演真是美轮美奂,令人叹为观止。内中有个四川的小子,个头不高,年龄不到20,是个新秀,表现尤为出色。当然啊,中国获得了金牌,洗雪了上届雅典奥运会的逊色。另一场是下午中国对阵西班牙的男篮预赛。这次奥运中国男篮抽签运气不好,组内有美国、西班牙、德国强手,稍次的安哥拉,也虎视眈眈。头一场就对阵天字号美国队,开场还可,不用多说是会输的,但打出了点气势。中西对赛真是好看,中国一反前态,一直压着西班牙打,到了最后几分钟,它才超了几分,但终场打了平手。中国队员使尽了力气,5分钟加时赛才输了球,犹如解说嘉宾所言,虽败尤荣。

    Friday, May 16, 2008

    买房记 第二年

    今年美国经济一片糟糕, 有新人DBA朋友在纽约, 亲身经历身边裁员声此起彼伏,包括IT部门. 加拿大近三个月经济急剧恶化,眼看要面临衰退.
    中国又是藏独,紧接着地震,人灾天灾. 还要靠信心毅力坚持把奥运办好,这是我们祖国由懦弱到富强的转折点.
    ( 我淮河(岳母)也是第一次在中央台见到雪山狮子旗, 作为土生藏族人, 从不知道有这么个蓝色旗子存在. )
    木匠的大年撞上了加拿大经济形势的小年,该冒进,还是稳守,不好判断. 以后有机会再介绍人生大小年定律.

    说到移民, 理想生活景象是: 一个房子两辆车, 两个孩子一条狗.
    说到买房子, 经历了2007年的屡次挫败, 步入2008年春夏之交, 终于全家老小又大力投入了买房子斗争当中.

    由于经济形势在变差, 昨天吃完饭时问及泰山泰水(岳父母), "买涨还是买跌", 泰山答道, 通常人们都在追涨买涨,只有慧眼有远见之士会买跌. 因此我们也加大砍价力度,一口气压下5万,屋主竟然答应了.

    作为家庭第二主力,马上开足马力,花了整晚时间浏览小区委员会给的3年维修记录,
    谁家门口台阶楼梯加个扶手, 哪家延伸木板凉台, 哪家浇水喷头坏了,哪家修篱笆,哪家种树预防高尔夫球砸碎窗户 等等.
    最有意思的是我们要买的58号, 从头到尾在说一件事情,就他家的Staffordshire terrier狗.

    比如说拉屎不清理,毁坏草坪,吠叫,恐吓居民, 结果被小区居民控告举报, 而且举报内容非常详细,包括年龄,性别,品种,尺寸和重量,一一写进小区委员会例会记录里面. 老加(加拿大人)真是实诚.

    最重要的是,新屋近靠Commonwealth Pool, 郭晶晶曾在这个池子里跳过水. 本木匠酷爱游泳,曾梦想横渡长江,可惜长江水污染日趋严重,随后放弃了.等日后清理干净了,再畅游.
    身体是革命的本钱, 各种人生长短期宏伟目标,都要依赖一个健康的身体.

    等我们搬进了新屋,再续生活感受.

    Monday, April 28, 2008

    2008的职业转换 Work from home

    曾经有个理想, 每个月写两篇日记.
    Tom 很久没有更新博客了, 我也是, 在等待灵感. "Was waiting for inspiration I guess".

    自从接了老客户的电信数据仓库项目,Work from home, 开始part time Remote DBA顾问工作.
    更是少了时间与本地社区,Oracle社区分享生活与工作的乐趣.

    还记得跟AnySQL谈起Oracle DBA consultant在美国的行情, 普通在$85~$120每小时, 卓越的DBA加上RAC服务会达到$200~$350每小时. AnySQL还就这个主题发了一篇贴子,并且没有声明出处,令我不快,嘻嘻!

    去年底和客户谈工钱时,考虑的新职业起步,就自砍一刀,报了个最低价$80, 结果客户还嫌贵,硬要和老印的外包价格比较,也就是$25一小时, 顿时令我很伤心, 咱木匠起码也是北美地区Top N的拔尖DBA, 在维多利亚在这个偏僻小镇,做着$##每小时的全职工作, 好赖也相当于硅谷,纽约的17万年薪了. 咋能这么贱买了呢?!!...

    最后还是以低于$80的价格成交. 等干两个月,客户发现了我的价值以后,再从新议价,只能如此了.

    译言(http://www.yeeyan.com/)看了一篇如何制定目标和计划的文章,很受启发.

    写下今年的目标:

    *) 搜寻到3个以上客户, 动态平衡,旱涝保收.

    *)年收入增加一倍.
    后来跟领导和加拿大智囊一合计, 已经调整到50% 啦.

    *)多爬山,多进球,多游泳(这周就开始,每周两次)

    Tuesday, February 05, 2008

    在维多利亚Oracle用户组学到的东西

    上周四下午, 第一次参加了Victoria Oracle Users Group
    组织的技术交流活动. 题目是 Database Gems: 9i, 10g, and 11g.

    VicOUG 请来了著名Oracle 技术网站的http://www.psoug.org/的作者: Dan Morgan,
    --
    最常用的是
    Morgan's Library http://www.psoug.org/library.html, 可以找到各种语法和函数用例.
    这个伙计自称因为人员好, 被评为Oracle Ace Director.

    言归正传, 以下是我学到的3点,

    1)
    ALTER SYSTEM SET PLSQL_WARNINGS='ENABLE:ALL';
    建议在所有的开发(Development)及测试(Test)环境设置.

    有啥好处呢? 编译PL/SQL的时候,给出有用的警告信息.
    a) 严重问题, 比如参数混淆 (这点我还没有理解, 需要一个示例)
    b) 性能问题, 一个INSERT语句,传递一个VARCHAR2值给一个NUMBER列
    c) 提示信息, 比如有一段代码 永远不会被执行

    详细说明, 请参考:
    Oracle® Database PL/SQL Language Reference
    11g Release 1 (11.1)
    - 第十一章: 11 Handling PL/SQL Errors
    -- Overview of PL/SQL Compile-Time Warnings

    2)
    wmsys.wm_concate

    你可以Sum() 数字列, 也可以 Sum() Varchar2 字符串列,
    我们叫作String Aggregate, 以后会有一长篇文章介绍.

    这里有一个示例, 自己在 SQL*Plus 或者SQL Developer里面跑一下吧,
    select DEFAULT_TABLESPACE,
    translate(wmsys.wm_concat(username),',','|')
    from dba_users
    group by DEFAULT_TABLESPACE;

    3)
    FBI index, virtual column index and SHRINK clause

    有个听众提个问题, 说在10.2以下版本, 有Function Based Index的表不能做空间回收-Shrink.
    Dan Morgan这位老大自己没测试过, 随口就说11g上,在一个表的虚拟列上的构建索引,这张表可以Shrink, 岂不是犯了和 老旦一样的错误.
    (老旦:Dan. 你们都知道是谁, 曾被老刘 Lewis 严肃的教育过, 以后有另外一篇文章评论,关于PGA 和 Parallel execution)

    第二天到办公室一测试, 发现11.1也不行.

    以下是测试用例:

    --drop table scott.y1;
    create table scott.y1(sal number, comm number);

    drop index scott.yi_fbi1;
    create index scott.yi_fbi1 on scott.y1(sal + comm)
    --tablespace data_auto
    ;

    alter table scott.y1 enable row movement;

    alter TABLE scott.y1 shrink space compact;
    alter TABLE scott.y1 shrink space;

    ERROR at line 1:
    ORA-10631: SHRINK clause should not be specified for this object

    drop index scott.yi_fbi1;

    alter table scott.y1 add (income AS (sal + comm));

    drop index scott.yi_vi1;
    create index scott.yi_vi1 on scott.y1(income);

    alter TABLE scott.y1 shrink space;

    ERROR at line 1:
    ORA-10631: SHRINK clause should not be specified for this object

    Sunday, February 03, 2008

    在加拿大给美国客户远程工作, 相关流程总结

    我自己亲身经历, 也有多位加拿大的华人朋友问到, 所以在这里总结一下.

    如果你是搞IT系统维护或开发的,这样的话VPN远程接入美国客户应该是通常的手段了.至于远程会议等要看对方要求了.一般公司都有WEBEX之类的.

    填一份 W-8BEN表格, 给美国客户寄去 备案, 就行了. 美国客户/雇主就可以开始给你付工钱了. (如果在美国工作, Independent Contractor 需要填w9 form)
    另外,对方有可能要求签一个安全保密协议, Non-Disclosure-Agreement.
    如果你觉得有必要, 再跟美国雇主签一个Offer(工作合同)

    美国公司如何支付工钱: 美国公司 "电子转帐或寄支票" 来 支付工钱

    纳税:
    1) 美国缴税 - 不用

    问过会计师了 无需向美国缴税
    刚刚打电话,问了会计师, 确认不用向美国缴税.
    下来就是明年报税, 找会计的问题了.

    加拿大居民/公民, 不用给美国缴税.
    If you perform the service from Canada, the income is not US source of income and is not taxable by US government.
    http://www.irs.gov/businesses/small/...=96459,00.html

    A nonresident alien (NRA) usually is subject to U.S. income tax only on U.S. source income.
    http://www.irs.gov/businesses/small/international/article/0,,id=96459,00.html

    Nonresident Aliensa
    A nonresident alien usually is subject to U.S. income tax only on U.S. source income.

    http://www.irs.gov/publications/p519/ch02.html#d0e1779

    <<
    如果你是美国公民, 绿卡持有人,

    根据w8 form 指南, 美国客户(Payor)会预先扣缴 30% 的税
    See: http://taxes.about.com/od/taxplanning/qt/form_W8BEN.htm
    >>

    2)加拿大缴税
    如果是 Independent Contractors, 交加拿大这边的30%~50%的个人所得税.

    注册公司:
    年收入在$30,000以下, 不需要在加拿大注册公司.
    (我个人觉得, 20万以下, 都不需要成立公司)
    注册个公司很容易,拿着公司注册号去开个银行帐号,然后就等对方电子转帐或寄支票了.
    http://www.smallbusinessbc.ca/bizResources-name.php
    http://www.bcbusinessregistry.ca/introduction/index.htm

    财务税务最好找个专业会计师.一年千把来块钱的开支,都可以打入公司运营成本, 还可以要回美国预扣的30%的税钱, 提交Form 8233.
    如果你恰好组织BC省府维多利亚市,我还可以给你介绍一个有这方面经验的华人专业会计师.

    也可以参考
    华枫论坛> ◆主题论坛◆> 创业者俱乐部.
    http://www.chinasmile.net/forums/showthread.php?t=303814

    下面是一些英文原文资料摘要:

    US Withholding for Canadian Independent Contractors

    Using Form W-8BEN to Claim US-Canada Tax Treaty Benefits
    American companies generally withhold income taxes on income being paid to foreign nationals. You may qualify for reduced withholding if meet some rules. Basically, there are three steps to this process. First, you must clarify in which country you are a resident. Second, you must decide where your "fixed place of business" is located. Third, you must notify your clients of your tax status using Form W-8BEN.
    Withholding
    The tax treaty specifically allows for US companies to withhold income taxes on self-employed Canadian residents (Article XVII, paragraph 1). Withholding will be 10% on the first $5,000 of income, and 30% on income over that threshold. The client and independent contractor may agree on a lesser percentage of withholding if these amounts are considered "excessive" (Article XVII, paragraph 2).
    Normally, US companies are required to "withhold 30% of any payment of an amount subject to withholding made to a payee that is a foreign person" (Instructions for Form W-8BEN). Form W-8BEN is used to inform the US company that you are "a beneficial owner that is a foreign person entitled to a reduced rate of withholding." You qualify for a reduced rate of withholding if you meet the residency and fixed place of business rules
    Filling out Form W-8BEN
    Provide your name in Line 1 and check "individual" in Line 3. However, if you are working under a business name, provide your business name in Line 1 and check the appropriate type of entity in Line 3.
    See: http://taxes.about.com/od/taxplanning/qt/form_W8BEN.htm

    Claiming Tax Treaty Benefits
    Exemption From Withholding
    If a tax treaty between the United States and your country provides an exemption from, or a reduced rate of, withholding for certain items of income, you should notify the payor of the income (the withholding agent) of your foreign status to claim the benefits of the treaty. Generally, you do this by filing Form W-8BEN, Certificate of Foreign Status of Beneficial Owner for United States Tax Withholding with the withholding agent.

    Rules that Apply to Compensation for Personal Services
    Independent contractors. If you perform personal services as an independent contractor (rather than an employee) and you can claim an exemption from withholding on that personal service income because of a tax treaty, submit Form 8233 to each withholding agent from whom amounts will be received.
    See: http://www.irs.gov/businesses/small/international/article/0,,id=96438,00.html


    Instructions for the Withholding Agent

    Requirement To Withhold
    A withholding agent must withhold 30% of any payment of an amount subject to withholding made to a payee that is a foreign person unless it can associate the payment with documentation (for example, Form W-8 or Form W-9) …
    Responsibilities of the Withholding Agent
    If you are a withholding agent making a payment of U.S. source interest, dividends, rents, royalties, commissions, nonemployee compensation, other fixed or determinable annual or periodical gains, profits, or income, and certain other amounts (including broker and barter exchange transactions, and certain payments made by fishing boat operators), you are generally required to obtain from the payee either a Form W-9, Request for Taxpayer Identification Number and Certification, or a Form W-8. These forms are also used to establish a person's status for purposes of domestic information reporting (for example, on a Form 1099) and backup withholding. If you receive a Form W-9, you must generally make an information return on a Form 1099. If you receive a Form W-8, you are exempt from reporting on Form 1099, but you may have to file Form 1042-S and withhold under the rules applicable to payments made to foreign persons. See the Instructions for Form 1042-S for more information.
    Generally, you must withhold 30% from the gross amount paid to a foreign person unless you can reliably associate the payment with a Form W-8. You can reliably associate a payment with a Form W-8 if you hold a valid form, you can reliably determine how much of the payment relates to the form, and you have no actual knowledge or reason to know that any of the information or certifications on the form are unreliable or incorrect.
    Do not send Forms W-8 to the IRS. Instead, keep the forms in your records for as long as they may be relevant to the determination of your tax liability under section 1461. Use the information on Forms W-8 to prepare Forms 1042-S.
    See: http://www.irs.gov/instructions/iw8/ch01.html

    Tuesday, January 22, 2008

    Supporting Multilingual Databases and NLS_CHARACTERSET

    We recommend going to AL32UTF8 as the ultimate solution for Oracle 11g-.
    AL32UTF8 is the database character set that supports the latest version (5.0 in Oracle 11.1) of
    the Unicode standard. It also provides support for the newly defined supplementary characters.

    Here are some major points I briefed as a reference.

    How to move to AL32UTF8 / UTF8 (Unicode) Database Character Set
    Note:119119.1

    to check you database Character Set,
    select value from NLS_DATABASE_PARAMETERS where parameter='NLS_CHARACTERSET';

    Usualy database will grow when going to AL32UTF8, use CSSCAN to generate the size expansion report.

    The NLS_LENGTH_SEMANTICS initialization parameter determines whether a new column of character datatype uses byte or character semantics. The default value of the parameter is BYTE. The BYTE and CHAR qualifiers shown in the VARCHAR2 definitions should be avoided when possible because they lead to mixed-semantics databases. Instead, set NLS_LENGTH_SEMANTICS in the initialization parameter file and define column datatypes to use the default semantics based on the value of NLS_LENGTH_SEMANTICS.

    columne_name VarChar2(300 char/byte)

    Related function: lengthb(), substrb()

    UniStr() over Chr()
    select Chr(163) from dual;
    select UniStr('\C2A3') from dual;

    convert(string_column,'AL32UTF8','US7ASCII'), convert from US7ASCII to AL32UTF8.

    To use WE8MSWIN1252 over WE8ISO8559P1, WE8MSWIN1252 supports European Code.

    Reference

    * US7ASCII: US 7-bit ASCII character set
    * WE8ISO8859P1: ISO 8859-1 West European 8-bit character set
    * WE8MSWIN1252: Microsoft Windows West European Code Page 1252
    * UTF8: Unicode 3.0 Universal character set CESU-8 encoding form
    * AL32UTF8: Unicode 5.0 Universal character set UTF-8 encoding form

    **Unicode character sets in the Oracle database, Note:260893.1

    exp/imp

    set NLS_LANG=
    export

    set NLS_LANG=
    import into the new UTF8 db.

    The conversion to UTF8 is done while inserting the data in the UTF8 database.

    Today's learning:

    如果你确信了那些消极的结论,那么你就极少可能去冒险和尝试新事物。消极的想法掩盖了你的感受,使其处于恐惧中。

    积极的想法的也是以同样的方式起到其作用。带着积极的心态,你将搜寻那些积极的选择然后确信其积极的结论。它帮助你克服恐惧并且尝试那些可能你认为“不能做到”的事情.

    积极的思想,有助于确定目标实现.

    Tuesday, January 08, 2008

    看看日本人是怎么抵制中国货的

    打击日货, 喊得有些累了, 这里转抄一篇, 华人同胞, 共同学习进步.

    --From 枫华园
    http://www.fhy.net

    最近很多国家在抵制中国货,特别是日本。日本抵制中国货不是象我们中国只是喊口号,而是肆意贬低中国货,特别是利用宣传工具。

    日本有2个电视台播放了2个关于中国货的节目。一个是试验生活中怎么不用中国货,当然是很可笑的了,可给消费者的影响可想而知。另外一个台,放了他们在中国的采访,说是广东的一个地方,说用来浇蔬菜的河水被污染了,河里的水--当然水很黑很臭的了。看了这样的镜头还有谁敢买中国的成品?还把河水和菜拿到日本来化验,虽然没查出什么。可还请什么专家来说话,说不能否定含有重金属。

    利用媒体,不是直接抵制中国货,这就是日本的手法。断章取义,再好的东西都可说成说垃圾的,我们中国人在抵制日货方面是不是也可以其人之道还其人之身呢?中国的媒体在干吗?我们不放日本作品?我们可以去揭揭日资企业的违法问题?可以说说销售到中国的倭货是在日本被淘汰的东西的?要找问题,为什么不利用现代的科技手段呢?

    建议大家不要光叫抵制日货的口号,真有爱国的思想的,多做一些具体的事情,真正的抵制日货。

    Tuesday, December 25, 2007

    过冬至 陕西老乡聚会 Potluck(家常便饭)

    2007冬至, 由苏州热心朋友Yang组织 (他老婆是陕西人), 我们来自陕西的老乡 聚会了, potluck, 又吃到了各种正宗陕西菜, 写日志以纪念.


    主人家在Cordova Bay, 面朝佐治亚/欢德福卡海峡,温哥华岛与大陆之间; 夜晚出来赏景, 月色映着海面, 别有一番韵味.

    陆陆续续有十多位老乡到场, 如果算上不认识的, 比如乘以十, 那么BC省府-维多利亚的陕西人就有一两百个了. 有一位搞房屋建筑的材料专家,竟然跟我同一栋楼上班,他4层,我5层(就是前文书提到的三面海景绿玻璃楼),天天进进出出碰面,还以为他是韩国人. 我要执行四川同事 老高 的建议,在电梯里面贴一个广告,邀请同楼的所有华人老乡,到街道对面吃(早年飘洋过海来的)福建人开的四川皇都自助餐.

    那天品尝到了久违的牛羊肉泡馍,肉夹馍,秦镇米皮,八宝饭,个个精彩,宛如回到了陕西老家.
    我消化系统不太好,当晚吃的很多,却也睡得比较香,算是吃的对路啦.

    去年2006冬至是到四川同事 老高 家里包饺子, 广东人讲了"冬至大过年".
    近期 Potluck(家常便饭) 活动频繁, 发生撞车, 特次向 开吻 表示歉意, 来年我们可以春节聚会.
    Potluck实际意思就是各做各的饭菜, 带到某个东主家一起大伙会餐.

    本想体验一下加拿大的Boxing day,准备26日一早去FutureShop店门口排队,
    商家又出新花样, 提前24日太平洋西海岸时间下午4:00开始网上抢购, 我抢到了一台500GB移动硬盘, 随后放弃了去现场排队的冲动.

    今日星相预测:
    Today is all about helping your friends and family.

    今日激励:
    积极的心态创造了一个富裕、热情以及解决方法的思想意识。而不是思考什么不能做,积极的思想者不会被束缚在“能”和“不能”里。一个积极思想者为解决问题是以新思路去自由思考,因为他们不会被限定在失败的恐惧中。

    下期题目: 乘坐救护车

    Saturday, November 17, 2007

    老爸的加拿大生活总结

    上周六(Nov 10)到温哥华送走了老爸老妈回中国,顺便买了一大堆干货,质量远远好于维多利亚的华人商店,下篇帖子再做介绍, 就叫温哥华中国货攻略.

    好了,言归正传, 以下是我老爸回国前发给国内亲人的邮件正文:

    -->
    最后一封信

    一切都准备好了,明天(中国是9日)离开维多利亚,到温哥华去。那里有国际机场,从那里离开加拿大回中国。你哥过去在电话里给我们说,这里好比是天堂,这是从生活环境说的。这里夏天不热,冬天不冷,空气清新,人们礼貌、热情、有序,除了语言不通,生活在这里,确实是好。地大人少(它一个人,中国就43个人),资源丰富,生活水平当然高了。回顾中国,以现在的速度建设,委实可观,但现实中也委实有很多问题。不管怎么说,我们是中国人,希望我们的祖国愈来愈强大!
    <--

    老爸跟咱有着一样的赤子爱国之心.

    Tuesday, October 30, 2007

    年末岁尾 升职加薪

    又到了公司财政年末尾, 开始了一年一度的Performance Review(个人业绩审核),
    老板会给你造出很长一串任务计划,指示你来年完成,好比爬山,没有个尽头,
    总是满足不了领导的期望值,领导就有借口反驳你的加薪要求; 但是还得坚持"斗争".

    还没有开始评审,上周四下午,老板发来一封邮件,说的11月1日起,给本人升职加薪,不亦乐乎,
    我就喜欢简单.

    具体是个啥职位呢, Data Solutions/Systems Architect,
    (刚进公司时,CIO给了俺一个 Data Solution Architect 干)
    只比我原来的职称多了一个单词 - System, 搞不清楚其中有何区别,
    号称是提升了职位, 糊涂, 难得糊涂.

    然后老板发出公告,宣布我们部门有4个人获得升职, 这不是卖乖吗?!!
    工资比我原来要求的少加了三千,结果闹腾的全公司同事都知道了,一个一个跑来祝贺,
    有人是真心的,有人是妒忌的,在所难免,引起人民群众内部矛盾,唉,老板真是老谋深算,
    给你加了薪水,也不让你舒服.
    我倒是喜欢悄悄给咱加了工资,咱以后继续卖力工作.
    想要维护好上上下下的群众关系,真是不容易.

    下面看看 System Architect 的定义, 还有我喜欢的职位 - Database Designer

    System Architect Definition
    The system architect has the task of putting together the skeleton of a software project.

    Depending on the specifications gathered by the requirements analyst, the system architect will choose to focus on ease of maintenance, application performance, compatibility with existing systems, or a combination of all three. Each decision that the system architect makes has to be carefully considered because a wrong move the beginning of a project can have damaging effects later in the software evelopment life cycle.

    Database Designer Definition
    Most software projects boil down to information storage and retrieval. Deciding how and where this information is stored is the domain of the database designer. Working with a system architect and a requirements analyst, the database designer ensures that all necessary data has a place to be stored. At the same time, the speed at which the data can be stored and retrieved are taken in to account so that user's are not left waiting for unreasonable amounts of time.

    Sometimes database designers take on database related activities such as arranging for backups, creating ad-hoc reports, and server tuning. However, these other tasks are often part of a Database Administrator's (DBA) job.

    Tuesday, October 09, 2007

    公司2008 Technical Vision 和 前eBay CTO

    今天公司请来了前eBay CTO, Marty, 来评论我们的2008技术架构展望.
    他是两年前离开eBay的, 现在开了个Consulting皮包公司.
    eBay去美国出差的朋友可能认识他.

    谈到了数据库的分割(split),
    从三个维度:
    1) 功能
    2) 读/写
    3) 大表本身, 比如根据键值 (something like partition key)
    这样一来, Oracle Sales 又要高兴了, 可以卖出更多的许可证.
    现在我们已经购买了16个, 包括 RAC, Partition, Diagnostic Pack options.

    还谈到了 Messaging Queue, Enterprise Service Bus,
    Coherence ( like TimesTen, 网格内存数据库, 刚刚被Oracle并购, 比TimesTen有更好的分布扩充性)

    o SOA
    o Recent database issues with connection pool usage and Oracle 10g bugs
    o Data Replication/Data Warehousing/Data Archiving within Oracle
    -- 竟然又开始推销 Quest SharePlex
    -- 而我强烈坚持升级Oracle 11g, 启用Active Standby database.
    o Site Separation model
    - App server(s)
    - Oracle Partitioning


    IT Architecture[Operation Driven]
    o Best Practices in implementing Operations into Product Development process flow
    o Config Management[Build, Packaging, Deployment, Promotion Model]

    Sunday, October 07, 2007

    怀念张纯如 -- 南京大屠杀电影 十一月将在温哥华公映

    纪念已故美籍华裔作家张纯如, 和她的10年前《南京大屠杀》一书,揭露亚洲浩劫史实真相.
    希望华人同袍找机会前往观看, 回顾历史, 展望未来.

    前两天看了一部由美国独立电影人制作的纪录片《南京梦魇——南京大屠杀
    http://www.youtube.com/watch?v=YoW2WYdOsvg

    知道了 张纯如 这位有为青年, 除了敬佩, 还是敬佩.
    我只是想让她知道, 打击日货, 消灭日货的力量正在逐日壮大, 直到日本消亡.

    眼下正在发展华人群众捐款,
    http://rapeofnanking.info/Donate.html

    就算有人不捐款,起码请您youtube点击一下,

    ***********************************************
    Youtube:
    part 1 http://www.youtube.com/watch?v=YoW2WYdOsvg (English)
    part 2 http://www.youtube.com/watch?v=iqH47MIpuoA

    part 1 http://youtube.com/watch?v=TgENINXPrAM (Chinese)
    part 2 http://www.youtube.com/watch?v=mwdzxTMFUl4
    网站:www.RapeofNanking.info
    捐款:http://rapeofnanking.info/Donate.html
    ***********************************************

    醒醒吧, 我的中国同胞. 此事紧紧关乎你我的人生,健康,灵魂.
    当日本人来屠杀你的时候,一切就都太晚了.
    还犹豫什么, 勿忘国耻, 打击日货, 中国需要你,世界需要你, 做有正义感, 有骨气的中国人!

    --资料1

    张纯如, 她出生于美国,曾在美联社和《芝加哥论坛报》当记者。1997年,她的《南京大屠杀:被二战遗忘的浩劫》在美国出版,这是首部全面记录当年日军血洗南京城暴行的英文著作,曾连续5个月被列为《纽约时报》书评的最佳畅销书。2004年11月9日,年仅36岁的她突然在自己的轿车内用手枪自杀身亡。有推测认为,她自杀的原因很可能与撰写太多南京大屠杀血腥场面患上了抑郁症有关。

    --资料2

    1937年12月13日,日本侵略军侵占南京后,在日本华中方面军司令官松井石根和第6师师长谷寿夫指挥下,在南京全城进行了40多天的血腥屠杀,使用集体枪杀、活埋、刀劈、火烧等惨绝人寰的方法,杀害中国平民和被俘军人达30万人。

    以下为转载:
    http://www.chinadian.ca/viewthread.php?tid=27819&extra=page%3D1

    据星岛日报消息,為纪念10年前以《南京大屠杀》一书,揭露亚洲浩劫史实真相的已故美籍华裔作家张纯如,一部纪录她在发掘歷史真相时心路歷程的电影《张纯如:南京大屠杀》(Iris Chang-The Rape of Nanking),將於11月在温哥华公映。

    温哥华抗日战爭史实维护会会长列国远周二表示,今年除了是《南京大屠杀》一书出版10周年,也是南京大屠杀70周年,為纪念这位勇於追求歷史真相的女斗士,本地电影界出资拍摄电影,由皮克(Anne Pick)和斯帕克(Bill Spahic)任导演,华裔演员郑啟蕙演出张纯如一角。

    列国远提到,由於郑啟蕙喜欢《南京大屠杀》这本书,当她知道张纯如早在她读到《南京大屠杀》一书之前就已自杀身亡时,郑啟蕙感到万分遗憾。后来当《张纯如:南京大屠杀》电影在寻求张纯如一角时,郑啟蕙即主动联络製片,希望能扮演张纯如。

    列国远说,郑啟蕙不仅长相酷似张纯如,而且与她神交多年,演出时入木三分,甚至还為主题曲撰词抒怀。

    《张纯如:南京大屠杀》將在11月15日、17日、22日与25日共放映5场,票价15元。史维会邀得张纯如父母与女主角郑啟蕙出席与观眾会面,分享参与本片的感受。

    全部收益,將用来资助加国老师赴中国学习二战浩劫史实及史维会其他工作。详情查询及购票,请致电+1-604-313-6000

    Monday, September 17, 2007

    勿忘国耻, 打击日货, 纪念九一八

    经由Oracle国贸旧同事推荐, 最近开始研究<<推背图>>, 愈看, 心情愈舒畅.

    先是预言,马英九将会是台湾最后一个总统.
    中国统一以后,日本挑衅,导致其战败, 并从此以后, 一蹶不振, 快哉!

    各位同胞,赶紧觉悟,从我们开始,从今天开始打击日货,做有骨气,有正义感的中国人.

    看看ChinaRen 校友录里的链接, 有骨气之爱国人士, 后继有人.
    “九·一八”国耻日 万人签名纪念


    这里是 推背图 的链接:
    http://fengwen1103.blogdriver.com/fengwen1103/1107632.html


    第四十五象 戊申 (第二次中日战争)

    图:两个面向西的武士用长矛指着太阳冲来

    谶曰:

    有客西来 至东而止
    木火金水 洗此大耻

    颂曰:

    炎运宏开世界同
    金乌隐匿白洋中
    从此不敢称雄长
    兵气全销运已终

    金圣叹:「此象于太平之世复见兵戎,当在海洋之上,自此之後,更臻盛世矣。」

    解:我猜肯定是美国瞧我们站了它的世界领袖之位,心生嫉妒,挑唆日本争夺钓鱼岛,(也有可能是因为台湾问题,也许第43象同第40象一样,时间跨度很长)引发战争,美日同盟两个打我们一个,但我们最终取得胜利,我们取代美国成为日本的宗主国。(想起我们现在提的和平崛起的理论,简直好笑,我们必须做好军事斗争的准备。)

    “有客西来至东而止”,依推背图以前提到的客是指敌人来看,这里的客也是敌人,且是从西往东来。我猜想肯定是美国。我们看图,有两个武士面向西来,(注意是面向西,不是向东)有人说,是中国和某国结盟共同攻击日本,我看未必,没看到这两个人是向西的,一定是美日同盟,指着太阳,是说明他们是为日本而战。这个猜想更为符合实际,因为美日有同盟条约,我们和谁结盟,俄罗斯吗,它会为我们与日美而战,太天真了。所以我们必须做好打一场恶仗的准备。“木火金水”,五行缺土,一定是为了领土之争,最可能的是钓鱼岛了。(有人认为,“木火金水”指的是韩国的国旗,我们同韩国结盟打日本,我觉得几乎不可能,别忘了他们都是美国的非北约盟国,美国驻军占领呢,怎敢和我们结盟,分析推背图要注意结合客观的国际局势和现实发展趋势去研究解读。)“洗此大耻”,联想7勇士日前登岛被捕,真大耻也,别着急,我们早晚要洗的。“炎运宏开世界同”,有可能发展成世界大战,“金乌隐匿白洋中”,金乌,古时对太阳的称呼,如果日本膏药旗,没了太阳,自然成了白旗,说明日本投向了。“从此不敢称雄长,兵气全销运已终”,日本再也不敢有野心了,没了军队(估计连自卫队也没有了),国运从此衰落。(变成中国的附属国?)

    Tuesday, September 11, 2007

    登陆加拿大两年记

    坐在落地玻璃墙的办公室里, 温和的阳光透过窗纱照到脸上, 看着海面跑来跑去的轮船, 有客轮,
    大邮轮--从加勒比海到阿拉斯加,经过维多利亚停靠, 还有 集装箱货轮, 时不时有水上飞机跃出水面,迎空而起.

    回想起来这两年的生活, 赶上了加拿大的医疗制度,
    我自己看过两次医生,一次是2005年冬天 踢足球撞断了脚腕, 在家工作,休息了一个月,
    一次是上周被黄蜂(wasp)蜇了,吃了一周抗感染药,好了.
    加上看牙医,那就更多了, 6颗门牙花了$7000, 自己只用付$1500,也不用回中国看了.

    吃住早就习惯了, 今年夏天, 开始买房子, 根据现在的家庭状况, 可以选择中等的独立屋了,
    上天预计我们可以2008年二月拿下, 下一篇帖子再做分解.

    说说游玩, 每年出去露营3周, 尽情游览国家/省立/市立公园, 享受着加拿大第三大福利. (老人,小孩福利,暂时靠不上)

    其实我是2005年6月30日,从波士顿,沿着美国东北部90号高速公路,到著名的水牛城,
    然后北上,在尼加拉瓜瀑布附近,穿过美加边境,踏上了加拿大的土地.

    我目标还是比较明确的,父母过来探亲半年, 看看真实的西洋镜.
    望着年迈的父母,想想最初的抉择,我们1998年开始准备移民的时候要的不就是这些吗.

    设想着回到自己的老家,那个人说历史开始的地方,古老的城墙,妖娆的方言,凉皮,泡馍,酸汤水饺,肉夹馍,拉面,都是我心底一直的牵挂。

    十几岁的时候背井离乡,何日是再回去的一天呢?加拿大是个非常好的国家,可它和我们的回去和留下又有多大的关系呢?中国有无数无法解决的难题,可它是我们自己的地方呀!我曾以为也就这样了,在加拿大的蓝天碧水中快乐地老去,不经意的设想回去却勾起这么许多的情绪来。很多的东西哪有那么多道理可讲呢?

    回去留下真的就是每个人和每个家庭自己的选择,我不知道那些高深的东西,这里藏龙卧虎的大师太多,可是只要你情愿, 只要你舒服, 只要你愿意选择自己的道路, be passionate and persistent, 哪里的生活都适合你.

    明天又是每周三Soccer day, 继续和维多利亚各种高科技公司的足球爱好者较量,包括开发FireFox 的外包公司, 坚持锻炼身体, 健康是革命的本钱.

    Monday, September 10, 2007

    Good practice: Middle-tier DAL or Database API – Database access guideline

    The reason I don't use "Best Practice" is that will prevent rest of people create some better new ideas, and let you out the 'Keep an open mind' zone.

    So I turned to Good practice:

    Middle-tier DAL or Database API – Database access guideline
    (Hibernate vs Store procedure)

    • Maximise SQL and minimise PL/SQL
    • Minimise client code and maximise database server code.

    Generally servers are more powerful and built for this type of work. You also want to minimise trips back and forth to the server.

    Reference:

    Business Logic - PL/SQL Vs Java
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:883929178230

    I prefer to put all logic that deals with data in PLSQL. There is no more natural language to interact with SQL data then PLSQL. None.

    For example -- native compilation was added -- turned plsql into object code that runs natively on the OS.

    Database API, build the data API in the database, you call the data API
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:25405782527721

    When to use Hibernate DAL
    • One step SQL (SELECT OR UPDATE) to finish your goal
    • Heavy and forced interaction in mid tier, like CCBB encryption, that means high coulping too, and hard to encapsulate the process logic.

    Jave developer can help us on this list.

    When to use Database API and Store Procedure Package
    • Complex SQL
    For example, book delete check, reference Single Hash Table and list of IDs.
    • Many (more than 2) steps data machinations logic in a sigle module
    • Reture rows more than one page, let's say 20 rows from database.

    We like Database API approach, because it:
    1.. make software components modular, I'm totally into modular programming
    2.. software modules must carry out a very specific task (and be very efficient at carrying it out)
    3.. each software module should be loosly coupled (to limit dependencies)
    4.. It removes the need for triggers as all inserts, updates and deletes are wrapped in APIs. Instead of writing triggers you simply add the code into the API. I loath triggers.
    5.. It prevents people who don't understand SQL writing stupid queries.
    All SQL would be written by PL/SQL developers or DBAs, reducing the likelyhood of dodgy queries.
    6.. The underlying structure of the database is hidden from the users, so I can make structural changes without client applications being changed.The API implementation can be altered and tuned without affecting the client application.
    7.. The same APIs are available to all applications that access the database. No duplication of effort.

    Anything that generates SQL on-the-fly worries me, not just Java. I want to be able to cut and paste the SQL, not try and capture or trace it during a run.

    Our concept is "build the data API in the database, you call the data API" .
    Database API has been layered by different UI technologies over time.

    All about API's. The applications don't do table level(select/insert/update/delete) stuff, the apps don't even really know about tables.

    On top of database schema we have an API that does the data stuff.

    In the application we call this API but have our own application logic as well
    (only application logic is in the application, data logic is – well, right where it belongs – next to the data, waiting for the 'next great programming paradigm to come along')

    The fact that our UI is in Java isn't really relevant. You could pretty much see how you would use this package from C#, Java/JSP, Swing, VB, Pro*C, Forms, Powerbuilder, a mobile phone, .


    Storing application code in the database has had it's champions and detractors.

    When you start putting application code in the database, you are in the thoroughly non-portable arena. That code, were you to port your application to another database, would have to be rewritten. But think about your application mid-tier layer, will you port Java code to C#/.Net,-> Pascal -> C -> VB, then to Python, Ruby on Rail ...etc., will you do that?

    Its very specificity to that database means it can also take advantage of, and wire close to that engine. There are situations where stored code in the database can be notably faster. Supposed you have to update some chunk of a million rows after doing some machinations on the data.

    In a stored procedure the data is read, manipulated, and updated in one step. Meanwhile if you did the same in your middle tier application code, you would have to send that data set over the network, do your manipulations, and send it back. Not only would it make this one task slower, but other transactions vying for that same data could potentially have to wait while that data is in transit, and being manipulated. Also, stored code can serve to encapsulate specific requests which can be invaluable at simplifying your overall application. All three databases support stored procedures and functions. Oracle also supports packages, or collections of stored procedures as well as various object oriented features, which almost no one ever uses. An additional note, a database engine actually context switches between stored code, and the SQL code embedded therein. As since of 9i, Oracle introduced bulk binding, so you can do work on large sets of rows, and update them all in one go, instead of each loop iteration. This feature can even further improve performance quite dramatically.

    Document the SQL access database

    We'll build a small application for this target, on Oracle APEX (HTML DB).
    then QA (and Developer) need to record all the SQL access db in the new developing applications.
    * SQL execution path
    * SQL performance statistics

    Sunday, September 09, 2007

    Oracle DBA 职业成长计划 本月Victoria IT club讨论主题

    Oracle DBA 职业成长计划 -- 本月IT club讨论主题,
    主要针对 加拿大BC省 维多利亚 IT同行.

    以下是内容简介:

    Grow That DBA Career
    Square one - How to be an expert.
    Salary center:
    A typical Database Administrator working in British Columbia -- Victoria earns a median total cash compensation of $96,509, according to our analysis of data reported by corporate HR departments. Half of the people in this job earn between $82,461 and $105,361, from http://salary.monster.ca/
    --
    Should I Become A DBA?
    How do I get my first DBA job?
    You’ve landed your first job!
    Junior DBA Roadmap
    Junior to Intermediate DBA
    Intermediate to Senior DBA
    --
    Attitude and skill set for future
    Approach to design database application
    Reactive Tuning
    Q & A

    欢迎各位IT老大(大佬)前来, 有钱的捧个前场, 没钱的捧个人场.

    Time: 3:00-5:00pm 15-Sep-2007
    Location:
    2nd Flr meeting room
    Emmanuel Baptist Church (Victoria Evangelical Chinese Bible Church)
    2121 Cedar Hill Cross Rd.
    就在UVic维多利亚大学南门, 穿过马路西南角.

    Wednesday, August 15, 2007

    Compiz Fusion 强劲灵巧的 Linux 用户界面

    今天在 lifehacker 看到的, 最新发布了.52, 第一个稳定版本将会是.60, 很快就会与大家见面的.
    http://lifehacker.com/

    这里有它的动画演示,
    http://www.youtube.com/watch?v=_ImW0-MgR8I&NR=1, 还有这个动画.

    支持Cube, Rotate Cube, Group Windows and Tabbing, Dodge, Focus, Free Zoom, AddHelper(Dark rest windows) 功能太多了, 而且都非常实用.

    等.60版本出来以后装一个试试, 或许真要投靠Linux办公桌面了.

    Thursday, August 09, 2007

    Learn something new every day 天天进步

    读了Tom的In search of the truth

    总结了两点学习和应用实践Oracle的座右铭:

    1)Keep an open mind, learn thing(s) new everyday
    2)Ask for proof from everyone

    今天我学到了一个新的 SQL Hint, LEADING Hint change in 10g,
    知道了RAC的cache传输和节点多少没有线性比例关系.

    大的方面,开始学习Oracle OLAP & Analytic Workspace Manager, 知道了如何规划和预先分配OLAP cube空间尺寸大小.
    参见: Mark Rittman 的 Oracle Database 10g OLAP Performance Tips & Techniques


    题外话, 最后看看我老家所在的省城: 西安, 聊以自嘲.

    "  如同一个大县城,又向一个饱经沧桑的老人,中国第10大城市的经济总量刚刚1000亿,这就是西安,一个不求上进而颓废的城市,市民打扮如同黄土高原的放牧者"

    Saturday, July 14, 2007

    "continue": PL/SQL 在 Oracle 11g 里面的功能完善

    Oracle 终于支持 CONTINUE 了, 像我一样 做 Development DBA 的人用得着了.
    原来老得翻翻文档, 找出 Label 和 GoTo的语法, 特别烦人.

    这个东西实在算不上一个新特性, 只能叫作功能完善而已.

    使用"CONTINUE" 的 PL/SQL程序样本, 请参考:
    http://technology.amis.nl/blog/?p=2261

    Sunday, July 08, 2007

    一个安全的"亲吻", 加拿大遭遇轻度汽车追尾

    一大早带上抓螃蟹的笼子,沙滩椅,餐具,
    准备前往 Pothole 省立公园 会合 "开吻"一家五口, 一起野餐, 游泳, 钓螃蟹.
    刚到小区出门的十字路口, 后面一辆小Van风驰跟上,紧紧贴在后面停了下来, 感觉要被撞上了,
    此时忽略了一个要过路口的行人,
    (在加拿大, 行人优先级最高. 帮助解释上下文)
    此中年妇女愤愤的瞪了我一眼, 绕道车后面穿过,
    恰逢我左转, 她又要继续横过十字路口另一边的人行道,
    总不能再抢道了, 我赶紧停在了十字路口当中,
    中年妇女转身给了我一个会心的微笑, 稍微弥补了刚才的过失,
    还没有得意一秒钟, 就觉得全身一震, 沉稳有力 幅度小,
    哈哈, 被后面的老兄追尾了, 还好, 刚刚启动, 速度慢.

    OK, 后面才是关键部分.
    此中年妇女马上走过来, 主动要求做目击证人, 并留下了姓名,电话,住址.
    后面车主紧跟着过来,写下了自己的姓名,电话,住址,车牌和驾照号码,
    和我们车的信息, 并且抄给我们一份, 根据他们两个的经验,协商了解决办法.
    交谈中才得知, 后面车主从Campbell River赶到 维多利亚 来看望治疗癌症的老婆,
    所以行动急躁了点儿.

    我们啥也不用干, 问题就解决了, 轻松愉快.
    对于初次遇到car accident的我们 (这里讲车祸,有点过分了), 帮了大忙.

    作现场目击证人, 这是加拿大一个人人愿意主动承担的公民义务,
    生活在一个普遍讲求诚信的国家, 真好. 我就喜欢过简单宁静的生活.

    来到维多利亚,考取驾照有一年了,仍然觉得技术没有多大提高,胆子却越来越小了.
    我也通过这次事件,又学习了一课:
    随时留心前方路两边的行人,每隔3秒左右扭头一个循环,
    (祖籍英国教练 Alan 常常咆哮教训: moving your head)
    撞了前面的行人可比汽车之间磕磕蹭蹭问题严重多了,
    况且在加拿大, 汽车追尾多数情况下是后面车的责任. ;)
    -- 左转并道 和 倒车 除外.

    转眼想到了 NinGoo@Net 写的 "暂住证?居住证?身份证?"
    在我们中国, 啥时候 <<身份证>> 才能变成真正的ID, 记录每一个人的信用记录.

    Wednesday, May 09, 2007

    回忆陕西方言

    想家, 自然想起了家乡的方言.
    我长大的家乡 商洛地区 (商州) 属于陕南山区,八山一水一份田,与关中平原的方言略有不同.

    看了 GTD Life 整理的陕西方言,
    在这里检出一些我耳熟能详的句子短语, 与生活在 维多利亚 BC Canada的陕西老乡分享:

    11.喋―→吃饭、打人
    24.嘹杂列―→很好,很美
    xx.辽地太-->棒极了
    xx.搁揪-->蹲下
    xx.瓜娃-->憨厚老实,傻孩子
    **.污瞍-->阿齰, 脏乱,恶心
    1.制达―→这里
    2.雾达―→那里
    3.啊达―→哪里
    5.野个―→昨天
    12.试火―→试一试
    14.谝―→聊天,说话
    15.扎势―→摆架子,打肿脸充胖子
    16.花搅―→开玩笑、恶作剧、取笑
    17.蚕活―→厉害,有本事,办事效率高, (好,舒服 -- 意思太多了)
    18.骚青―→热情过分,讨好献媚之嫌
    19.木乱―→不舒服、不适,思绪烦乱
    20.罢咧―→一般,还行、过得去
    22.幕囊―→行动迟缓、浪费时间的行为
    27.麻达―→麻烦、问题
    xx.麽麻哒 --> 没有问题,一定办理
    28.麻米儿―→不讲理、不明事理
    29.瓷马二楞―→不机灵,迟钝
    30.克里马擦―→快点
    31.逼咧―→完蛋了,指事态无可挽回
    32.裂远―→一边歇着去

    一转眼已经离开中国2年了,新移民的时间过得真快.
    希望明年拿到公民身份,然后南下美国打工,顺便找机会回老家玩一个月.

    Tuesday, April 24, 2007

    高效字符串替换

    今天看到AnySQL提到了关于字符串的灵活替换一文.

    1)
    SELECT
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(TABLE_NAME,'0','#'),
    '1','#') ,'2','#') ,'3','#') ,'4','#')
    ,'5','#') ,'6','#') ,'7','#') ,'8','#') ,'9','#') PATTERN_NAME
    FROM USER_TABLES;
    2)
    地铁上,AnySQL又想到了改进的方法,

    SELECT
    TRANSLATE(TABLE_NAME,'0123456789','##########') PATTERN_NAME
    FROM USER_TABLES;

    3)
    还有更简洁的, 运用正则表达式 替换 或者 查找:

    select REGEXP_REPLACE(TABLE_NAME, '[1-9]', '#' )
    from cat;

    在大数据量情况下(比如超过1百万行数据),需要注意一个问题: 就是函数REGEXP_InStr()
    和PGA内存的使用.

    update abedba.addresses
    set
    NAME = REGEXP_REPLACE(NAME, '['||CHR(13)||CHR(10)||']', ' ' )
    where
    REGEXP_InStr(NAME, '['||CHR(13)||CHR(10)||']' ) > 0;

    ERROR at line 1:
    ORA-04030: out of process memory when trying to allocate 4000 bytes (kxs heap,kghalp : evarxalc)

    work around 就是使用传统的InStr()函数:

    update abedba.addresses
    set &1 = REGEXP_REPLACE(&1, '['||CHR(13)||CHR(10)||']', ' ' )
    where INSTR(&1, CHR(10)) > 0 or INSTR(&1, CHR(13)) > 0;

    --最后一点,就是经验问题,
    如果你有多个列做相同的修改, 最好用SQL*Plus变量替换column_name,存成脚本, 成批运行,
    这样,就不用担心改错了数据, 比如把ADDRESS改成CITY.

    错误样本:
    update abedba.addresses
    set
    ADDRESS= REGEXP_REPLACE(CITY, '['||CHR(13)||CHR(10)||']', ' ' )
    where
    REGEXP_InStr(CITY, '['||CHR(13)||CHR(10)||']' ) > 0;

    正确脚本:
    -- C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql
    -- http://mantis/jira/browse/OPS-2043

    update abedba.addresses
    set
    &1 = REGEXP_REPLACE(&1, '['||CHR(13)||CHR(10)||']', ' ' )
    where
    INSTR(&1, CHR(10)) > 0 or INSTR(&1, CHR(13)) > 0;

    /*
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql NAME
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql ADDRESS
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql ADDRESS2
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql CITY
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql PROVSTATE
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql COUNTRY
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql ZIPCODE
    @C:\Charlie\DEV\scripts\deploy\2007apr10\addr_u.sql PHONE
    */

    这是我的第一个技术帖, AnySQL不要说我盗版吆.

    改进型:

    SELECT * FROM(
    SELECT TABLE_NAME, count(*) over (PARTITION BY REGEXP_REPLACE(TABLE_NAME, '[0-9]+', '#' ) ) AS tab_cnt
    , REGEXP_REPLACE(TABLE_NAME, '[0-9]+', '#' ) tran_tab
    FROM USER_TABLES
    ) WHERE tab_cnt > 1

    运行结果:
    TABLE_NAME TAB_CNT TRAN_TAB
    -- -- ---
    LOGMNR_HEADER2$ 2 LOGMNR_HEADER#$
    LOGMNR_HEADER1$ 2 LOGMNR_HEADER#$
    PARTS2 2 PARTS#
    PARTS1 2 PARTS#
    T101 4 T#
    T2 4 T#
    T1 4 T#
    T3 4 T#

    优点:
    1) 两位数,3位数,n位数 都可以.
    REGEXP_REPLACE(TABLE_NAME, '[1-9]', '#' )
    更改成,
    REGEXP_REPLACE(TABLE_NAME, '[1-9]+', '#' )
    替换1到任意多个数字.

    2) Count(*) over (PARTITION BY)
    更容易理解, RATIO_TO_REPORT 分析函数有点用过了.

    我最近正在学习 SQL Analytic Functions, 感谢 rollingpig 给出RATIO_TO_REPORT的这个用法.

    Wednesday, April 11, 2007

    再谈在加拿大就医 - 看急诊

    昨天下午,改了夏时制以后,吃完晚饭,7:30pm,天光依然大亮,随即出门散步.
    街道依然有小猫徜徉,老婆依旧伏身逗玩猫咪,依旧不听我的忠言警告;
    (黑龙江老乡George的乖女儿被猫儿抓破脸的一幕依然印象深刻)
    事情发展的那么快,小猫翻身打滚的一瞬间,老婆的手上被划出一道3厘米长的
    血口子.

    幸好我们住的离Jubilee医院近,10分钟走到,
    进了急诊室,有向导,诊断,开始看似一切顺利,
    心里暗暗祷告,那些网上华人老乡流传的故事该不会发生在我们身上...

    初诊以后就在大厅等候医生治疗,
    等了两个小时,只有两个排在我们前面的人被叫进去,
    这才发现好多人是有备而来,有看小说的,有玩电脑的...
    一直等到午夜12点,才轮到我老婆,3分钟内打针吃药,看的到挺快.

    顺便看一下今天的星相,还是积极乐观的,吻合了我的心愿.
    You are an inventor, ready to change routines and improve the ordinary with slight but brilliant tweaks and modifications. That optimistic, hopeful spirit encourages and amazes those around you.

    Friday, February 23, 2007

    在加拿大看牙医-感觉好极了

    通过老婆同事介绍,获知维多利亚市中心有个牙医诊所,提前一个星期打电话约好了时间.

    一直在为医学专业英语担心,只知道,Teeth,Dentist and Dental.
    打电话预约又学了一个新词: Crown, 牙冠.

    另外还担心繁琐的手续,起个大早排队(5:00am),拍X透视片,从一个科室跑到另一个科室,花去一整天时间.

    最后还有昂贵的医疗费用(听说好多华人老乡回国看牙,中国成本加上往返机票,比加拿大还有便宜许多.)

    结果全部比想象的好多了,第二次享受到了加拿大的公司医疗福利.

    从头到尾,修复一颗牙齿(一个磨损的牙套),花了大约30分钟,我一直躺在病人椅子上,压根不用挪地方,
    连吐口水都不用,助理医生拿着一个像吸尘器一样的小管在嘴里一转悠,脏东西全吸走了.

    先是助理医生给我拍片子,也是在病人椅子上上完成的,然后主治医生过来诊断,治疗, (因为她年轻漂亮,身段纤细,我开始还以为是护士小妹哩).
    他流利的说着牙医专业语言,我通过意会加猜测,理解了一小部分,她就让我拿着镜子,让我看着,指着牙齿的各种部位,跟我一一解释, 又学会两个词, 牙龈gum 和 牙结石tartar....
    期间我想说我是四环素牙+铅中毒,基本被她猜出大意.

    最后护士小妹轻轻一句: "我们给你约好了下次来看牙的时间,你可以走了,你的牙医保险包含了所有的费用".
    真是舒服到心坎里了,嘻嘻!

    Monday, February 19, 2007

    一些需要马上行动的事情

    一:身体是本钱

    1.开心一点能活得更长寿。

    2.在最短的时间内让自己出汗。

    3.扔掉不合脚的鞋子,不要为了漂亮而让脚受伤。

    4.尽量在家吃饭。快餐食品内的“反式脂肪酸”对人体健康无益。

    5.多喝绿茶。喝绿茶有益人体免疫细胞,预防癌症。

    6. 多做体查,预防糖尿病。

    7. 小心爱护你的隐形眼镜。

    二:提高你的智慧

    8.订一本可改变生活的书。

    9.参加一个读书会。

    10.学会一种乐器。

    11.每个星期让自己有一天远离高科技的东西。

    12.学习阿拉伯语。

    13.写博客。 通过博客可以逼着自己写东西,可以整理自己的思想,可以锤炼自己的语言,

    可以结交许多陌生的朋友,可以增强自己的时间意识,可以学到许多东西。

    14.管理好自己的域名。 拥有自己的独立域名,易找易记,独立性和可信度更高。

    15.观测夜空。

    16.学会拍摄出质量更好的照片。

    三:改善家庭生活

    17.尝试做个好父母。

    18.记录下家里的食谱。

    19.让你的孩子有更多的时间练习驾驶。

    20.为你的孩子读大学储钱。

    21.好好对待你的婚姻。

    22.让你的孩子随队训练前要再三考量。

    23.关掉电视。

    24.驾车出游,但是不要带DVD播放器。

    四: 改良家居生活

    25. 从家务中解放出来。

    26. 找一家信誉好的家政公司。

    27.把房子装修得更合你心意。

    28. 在卖掉房子之前先简单装修一下。

    29.在更加内陆的地方安家,比住在沿海一带安全。

    30.升级家里的真空吸尘器。

    31.给每间房挂上一幅油画。

    五:协助社区建设

    32.帮助灾区重建。

    33.参与投票。

    34.帮助搞好附近的公园。

    35.关心军队。

    36.旅游在外,对当地人要友好。

    37.学习一点宗教的知识。

    38.向难民伸出援手。

    39.向学校捐助书籍。

    40.为你孩子的运动队担当义务教练。

    六:为地球尽份力

    41.做个环保的人。

    42.率先使用植物柴油。

    43.让别人坐你的顺风车。

    44.尽量使用低排量的座驾。

    45.把吹落叶机扔掉。 一台吹落叶机所排放的污染物相当于80辆轿车的排放量。

    46.多阅读一些指导性的书籍。

    47.支持本地农民。 购买本地农民生产的新鲜食物,寻求一个更干净的地球。

    48.关掉干衣机。 干衣机很耗电,除非不得已才用。阳光可以杀菌,更加卫生。

    49.在它融化之前,到有冰川的地方看看。

    50.减肥吧。

    Thursday, February 08, 2007

    数据库专家AnySQL 和 Instrumenting code

    不久前通过AnySQL的blog, 认识了这位老大,

    根据最近阅读他的几篇文章,AnySQL偏向于数据库内部研究,
    而我更喜欢钻研宏观数据库应用开发,数据处理流程,数据建模.
    正好我们可以互相学习, 取长补短.

    在他的处理Resource Busy情况的一段角本提到了Instrument the code,
    用google搜索一下: LOG4PLSQL debug.f
    会分别找到他们的主页.
    Tom DebugF
    Open source LOG4PLSQL

    借用Tom的解释, In every 2nd line of your code, logging what you have done the line before, such as information, debugging, warning, alarm, error...etc.
    然后, Developer debuging, QA testing, benchmark, after roll-in production operation trouble-shooting, identifying the performance bottle-neck, just a peace of cake. 味道好极了.

    我的认识也是刚刚上了台阶, 从半年前开始 Instrumenting the code (logging, trace every line)


    玉面飞龙兄弟也来凑热闹,好极了. Chao 给你红包了吗?

    当你做Application Developement DBA时, (个人不太喜欢Production Operation DBA, 相对来讲,创新的空间比较小)
    你会发现Instrument your code 太重要了!
    我们这里(www.abebooks.com)每2周Release一个新版本,
    (Creative and Innovation)创新是我们以及Online Business生存之本.

    Thursday, February 01, 2007

    趣谈 Oracle 数据库的升级

    吃螃蟹没关系, 关键是看你敢不敢第一个吃螃蟹, 嘻嘻.

    作为网上库存量最大的书店(www.abebooks.com),
    我们从2005年3月开始使用Oracle 10.1.0.4 4 nodes RAC on RHAS3.0,数据库连续正常运转超过200天,
    后来一个节点reboot,只是因为硬件内存坏了,他娘的,至今仍然愤慨, PC Server 是不如Unix小型机稳定..

    ChaoPing (5年前,在Oracle江湖名声遐迩)开始不相信,
    随手run了一个:
    select * from gv$instance; and $> uptime.
    Chao 立马心服口服,惊的口吐鲜血,哈哈.

    倒不是因为我原来做Oracle 的 Sales Consultant, 学会了吹牛.
    一个旧同事在 澳大利亚 专门做 Oracle RAC Support, 经过他的反馈,我才敢放心升级.

    再说远点, 2002年, 世界第二大长话公司的生产数据库就被我给升级到了Oracle 9i.
    要知道进出中国的国际长途电话都是通过这个公司中转的.
    只要各种应用功能模块测试充分,没啥可担心的.

    Thursday, January 25, 2007

    英语 和 中国大陆来的新移民

    口语差是华人新移民的通病,因此而痛苦的失去大把工作机会.
    我们www.abebooks.com在招聘一个Database Developer,昨天Interview了一个中国Oracle Consultant部门工作了4年的老员工(女),英语一塌糊涂,老板听得直摇头,作为华人老乡 我实在帮不上忙. 可惜.

    其他非外企员工的英语口语就更糟糕了,可想而知.
    我们必须置于死地而后生,奋起直追呀.

    此文感慨而发,是由于读了 Fenng 的 英语口语的僵化

    Fenng 有个 "学英语的 GF", 牛. 去外语学院逛逛一直是我的梦想,只是那些学外语的姑娘高不可攀.

    Monday, January 08, 2007

    美丽宁静的花园城市 维多利亚

    Victoria is a piece of paradise. 没住过的人不会了解,住的时间不长,或没在别的加拿大城市住过的不会深刻理解.

    拿到公民之前我是不会离开 维多利亚 的,大概还有两年.
    然后南下美国赚美元.

    Vancouver和Victoria各有自己的美丽,Vancouver是一个冷艳盛装的贵妇,而Victoria是一个满脸雀斑的纯朴乡姑,这就是他们的区别。
    我更喜欢VICTORIA.

    曾经有一个热腾腾的Offer摆在了 温哥华,
    我没有去,
    这碗热腾腾的热干面依然热着, 没有凉(原文此处是"凉了"), 我还是不去.
    如果上天再给我一次机会,我仍然会留在 维多利亚.

    嘻嘻...

    Friday, December 22, 2006

    Senior PL/SQL Developer

    我们公司(www.abebooks.com)有空缺职位,喜欢维多利亚的朋友 过来看看.

    Senior PL/SQL Developer

    --------------------------------------------------------------------------------
    Reply to: charlie.zhu1@gmail.com
    Date: 2006-12-22, 10:09AM PST

    As a Senior Database Developer
    you will be a key Member of the Systems Database Group
    responsible for providing overall database development
    and support with concentration in backend programming.

    The responsibilities of the position will be to develop, design, test, implement,
    and maintain complex custom software systems developed
    using Oracle, PL/SQL, SQL and various third party libraries.
    The PL/SQL Developer will be responsible to properly maintain source code sets
    and necessary technical documentations,
    and assist the Head DBA in overall database maintenance.

    Job Requirements

    Must Have:

    3-5 years experience in Oracle Highly Proficient in SQL programming using PL/SQL,
    Good Database Administration skills
    Good communication skills
    Good understanding of client/server concepts and methodologies.
    Experience in Java API calling database API’s patterns
    BS in Computer Science or equivalent

    Nice to have:

    TDD and Agile mind set.
    Experience with DB2, MS-SQL, MySQL
    JDBC Drivers
    DAO mapping apis e.g. Ibatis, Hibernate, custom, etc...
    Data Warehousing and OLAP
    Performance tuning, profiling...
    Database design, logical, physical Database version control, installation, archiving, upgrading
    Linux, Unix, Windows Server
    Exposure to C++ or Java as a front-end is desirable, but not required, Perl, other scripting languages

    We offer an attractive, competitive base salary, bonus, and comprehensive benefits. You will work closely with a highly motivated team in a dynamic, and fast-paced environment. We welcome comments and suggestions as the best ideas often come from those closest to the project. The right individual has an opportunity to make a significant contribution.
    We are an equal opportunity employer


    Location: Victoria BC Canada

    Compensation: attractive, competitive

    Monday, November 20, 2006

    Greater Victoria, British Columbia 的人口统计

    关于维多利亚的人口,各位一直有许多争论,所以我就在这里公布一下官方统计数字(2001).

    Population 335,000

    The Greater Victoria region has a combined population of almost 312,000, according to the 2001 Canadian census [1]. The region comprises two of the fifteen most populous municipalities in British Columbia (Saanich, at number seven, and Victoria at number thirteen). The population of the municipalities and unincorporated districts are as follows:

    Saanich 103,654
    Victoria 74,125
    Langford 18,840
    Oak Bay 17,798
    Esquimalt 16,127
    Central Saanich 15,348
    Colwood 13,745
    Sidney 10,949
    North Saanich 10,436
    Sooke 8,735
    View Royal 7,271
    Metchosin 4,857
    First Nations Reserves 4,667
    Juan de Fuca Electoral Area of the CRD 3,962
    Highlands 1,674

    Thursday, November 02, 2006

    浅谈加拿大BC省 维多利亚的治安问题

    在 ChinaSmile 有人问到
    "请推荐 VICTORIA downtown 附近的好社区"

    James Bay 不错,我在那里住了一年, 基本天天骑自行车上班.

    No bad neighborhood in Victoria, that's true.
    住哪里都挺好,我晚上睡觉很少锁门的,嘻嘻.
    和温哥华(本年度犯罪之都)形成了极大的反差.

    离开避难所(China Town 西边顶头,靠海)远一点就行了,
    所以没有哪个区靠近它,放心住好了.

    Wednesday, November 01, 2006

    闲谈在加拿大玩足球 Soccer

    今年1月份(农历新年前几天),脚腕给踢骨折了,好痛呀...!
    打了石膏,在家休息了3个星期,(薪水全额照发,资本主义好呀!)
    直到四月底,恢复"训练",现在完全恢复,生龙活虎,球技日渐纯熟,嘻嘻.