木匠的微型博客 Charlie Twitter

    follow me on Twitter

    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)组成的笑脸,可惜维多利亚是阴天.
    昨天是晴天,嘴巴(月牙儿)已经跑到眼睛上边高处去了.