木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Monday, April 19, 2010

    Critical thinking 问题分析能力

    人的意识(Consciousness)由三部分组成,记忆(memory 经验),感观(Sensory),想像和预感(Imagination/prdication),他们有等同的权重.

    很多知觉来自于带个人倾向性的预测. 预测又是基于周围环境(上下文),和过去的经历,
    太多的经验和带有个人主见的推测将实时感观认知推到了一旁的次要位置.

    想像压倒感观认识.

    当我们不能保持一个开放的心态,基于事实和数据说话,而是根据个人主观推测,人的思路就容易钻牛角尖.
    根据鄙人理解,所谓的分析问题能力(Critical thinking 或者 Analytical and Problem Solving Skills
    ),指的就是这些.

    好了, 理论讲了一大堆, 故事开始了.

    客户的一个OLAP数据库满了,需要清理一些过时的历史数据.
    通过查询dba_segments,发现LOB大对象占用了80%的空间.
    segment_name都是些系统产生的序列号,比如"SYS_LOB0000110879C00036$$".
    由于鄙人缺乏LOB知识,不知道table.column和LOB segment的对应关系,也就不知道到底是哪个表的哪个LOB列占用了这么多的存储空间.

    我和客户都想着是A表的BLOB_1列占用了太多空间, 可是删除了很多数据以后,回收(shrink)了table和BLOB_1列以后,数据库空间依然占的满满的.

    第二天下午遛狗的时候,鄙人才想到可能是我们钻了牛角尖,很可能是另外一个表的LOB列占用了巨大空间,
    随即搜索了如何查看LOB列信息,找到了视图user_lobs,也就找到了LOB column name和segment_name的关系, 问题迎刃而解.

    具体案例和解决办法,请看http://mujiang.blogspot.com/2010/04/reclaim-deleted-lob-data-storage.html


    附录,

    个人主见和想象力也有好的一面, 能够加速学习进程.

    imagining success is provably effective in achieving it.

    You can improve your performance—whether you’re playing a violin,
    debugging code, or designing a new architecture—by imagining
    that you’ve already done so successfully

    From Pragmatic Thinking and Learning

    带着朱丽叶在附近的沼泽公园散步.

    Wednesday, April 14, 2010

    Soccer day 周三足球日

    又是星期三,足 球日(Soccer day),我们中午订快餐的饭馆的粤菜厨师也下场踢球了,身手敏捷,控球能力强,传球也准确,比上一次好多了. "老奔驰"说他上次在吸大麻,远远都能闻到大麻的味道,犯晕着哩.  洋人咋么以为我们华人也喜欢吸大麻,岂有此理?


    关键时刻,北大才子掉链子,一早打电话说拉肚子,问我要黄连素,可惜鄙人已经到办公室了,只有过期的佛哌酸,家里倒是有新从中国带回来的,明天给他.


    对于第三个本命年的我来讲, 踢大场还是有点累. 对方有个轮子球员,近距离逼抢,问题不大,可是这个家伙带球跑起来以后,鄙人就追不上了.

    沙滩上尽情奔跑的朱丽叶

    Thursday, April 08, 2010

    April tasks 四月

    除了每天遛狗十公里,本月还有一些硬性任务需要完成.


    • 制定黄石公园的行程

    从西雅图出发向东,走90号公路,多找几家沿途停歇城镇的汽车旅馆.

    • 报税

    由于经济大环境走弱,两个远程支持的顾问工作都被终止, 明年就不能避税扣成本了.
    在加拿大,鄙人使用的免费报税软件: http://www.studiotax.com/en/download.htm


    Note: 这篇博客是用twitter的精神来写的,力求简洁.
    加之鄙人语文功底极差,只能草草了事. ^_^


    East Sooke西门.

    Thursday, April 01, 2010

    April 1st 愚人节




    今天又是愚人节,好多人真的相信我们的数据中心瘫痪了! 客户支持部门还添油加醋,大叫订单数量异常的低.

    Tuesday, March 23, 2010

    木匠的由来 about mujiang

    为什么鄙人自称为"木匠"?

    如果您读过 Code Complete(代码大全), 关于软件开发有许多形象的比喻,

    * 软件书写: 像写信,坐下来,拿只笔,就开始书写了.错了,草纸扔进废纸篓,再写.
    * 软件农场: 播种,收获. 种的多,收得多.
    * 软件牡蛎农场: 外界条件适合,软件就会像牡蛎一样逐渐增大(accretion).
    * 软件建造-盖房子: 需要仔细周详的设计和计划.

    鄙人和Code Complete的作者一样,非常认同软件构造这个比喻. 谁来盖房子呢,当然是建筑工人,还有木匠.

    -- 软件架构师和土木工程的建筑师一样(都是architect),是一个项目的设计首脑,通常由技术部门的高手担任,有很崇高的地位. 因为架构师的工作影响深远,他们往往牵制连连. 工程人员对他们的设计有意见,项目经理对他们的设计有意见,营业部门对他们的设计有意见,客户对他们的设计有意见,层层经理对他们的设计有意见,财政部门对他们的设计也有意见。

    -- "我们架构师要为技术负责,我们出席会议,同主要利害关系人(stakeholders)开会一同决定,讨论技术方案的利弊,辅导他们做决定."

    -- "我们必须考虑每个决定可能造成的各种影响,得听听大家的意见,每个决定需要多方考量,我们只能努力争取利害关系人的信任,辅导他们做正确的决定"

    -- "要争权和要服务是非常不同的心态,不是几句话能改变的。一个人要有相当的智慧,信心和耐心才能从争权的心态里走出来"

    “无权决定,有权负责”, 这个就是软件系统架构师的作用. 冷酷却现实.

    Tuesday, February 16, 2010

    Chinese new year lunch and welcome newbie 虎年吉祥

    仅供娱乐,以下邮件转自鄙人对新员工的"敲诈"信.

    --
    各位华人同乡,

    首先祝各位虎年虎虎生威,早日发达!

    然后呢,

    本公司华人社团(非黑帮)有一个传统,每位新人可以自愿请各位老员工吃一顿午饭.
    离职跳槽高就的老员工,再自愿回请一顿,这样就平衡了.

    再次声明,纯属自愿,愿者上钩.
    Samuel Chen and Tina Chang你们两个联合请一次就行了.
    北大才子Bill饭量特别大,所以要趁他回国在外,抓紧时间.

    推荐: Raymond川菜. Future Shop旁边.
    时间: 本周五中午, 或者下周五中午.

    为了统计人数, please click the Voting Buttons.


    Thanks,
    木匠 (Charlie)  |  Development Database Administrator

    Monday, February 15, 2010

    [IT Club] BI Data Warehousing in Healthcare

    通知:

    From Adam,

    I'm currently working with VIHA as part of the BI Data Warehousing team.  I've also recently completed a project looking at the effective use of quantitative information in healthcare administration. As information needs, and the technologies available to support them, are continually changing, its an interesting field to be in.

    I will talk a little bit about tools  (Cognos, SQL Server & SSIS)  
    we use and methodologies (relational & star schemas).  I'd also like to share with you about some of the challenges we've faced in designing and building the data warehouse, as well as around what we're attempting around metadata and data quality feedback loops.

    If we have time, it would also be good to look at the different types of analysis and reporting one needs support with data, - and on their implications for data warehouse design and development work.

    Have a good Friday, - and I'll look forward to seeing you on Saturday.

    Adam  



    时间: Feb 20 (Saturday) 2:30pm
    地址 Address: 2121 Cedar Hill Cross Rd.


    欢迎各位IT同仁.


    Victoria IT Club hold free IT Seminars on 3rd Saturday 2:30pm every month at EBC church second floor meeting room.

    Thursday, December 17, 2009

    SMART Objectives如何分解和设定目标

    如果没有设定目的地,我们只会盲目前行,不知道该去哪里,也不知道能不能到达那里.

    要变成你想成为的人,完成一些辉煌成就,我们必须设定目标,包括职业发展和追求美好生活,家庭/事业/财务/社区/自然环境.

    我们如何设定阶段性里程碑来完成目标呢? 这就有了 SMART Objectives.

    1. Specific: 短期目标应当是非常明确的和具体的. 比如ETL里面,不是构建一个数据仓库, 而是将product_id成批转换成production_name, 冗余数据.

    2 Measurable:怎样知道何时完成了目标? Measurable和Specific亲密相连,通常的和抽象的事物不容易测量,而容易测量具体的明确的使用数字定义的事物.无法测量就是不够明确. 循序渐进,按阶段分解,设定短小目标,走一步,量一步

    3 Achievable: 从你现在所处的位置,制定一个可以实现的短期目标;目标必须是合理的,现实的,客观的.
    比如,在一周之内用新学的编程语言写出"世界,我来了!",是合理的; 但是,在一周之内使用神经元网络优化程序写出一个互联网应用框架和用户界面, 是不太现实和客观的.

    4 Relevant:目标相关性就是,它是对你重要的,充满热情的,可以支配和掌控的.

    5 Time-Boxed:对每个阶段目标设定硬期限. 不然,目标就会枯萎凋零,最终丢弃一边. 总之,设定许多小的里程碑,完成一件,前进一步,倍感鼓舞.

    那么还等什么呢.赶紧试着SMART objectives分解你的目标,设定阶段性里程碑式样的目标吧.

    Monday, December 07, 2009

    Acting Evolved 以进化的高等智能人类的思考来处理变化

    "Act like you’ve evolved: breathe, don’t hiss."

    鄙人的理解就是: 对于一些(反感的,恶心的,烦人的)突发事件,不要急躁,紧张,暴跳,而是做深呼吸,冷清分析处理.不要像变色龙/蛇一样焦躁的嘶嘶作响(以尖利的嘘声驱赶或压倒、嘲弄等). 在热带丛林里面,迅速暴力做出反应,应对凶禽猛兽或许适当. 可是在一个软件开发项目里,如此对待同事,客户,或者服务供应商,就不合适了.

    思考需要时间.




    From 2009_Oct

    Tuesday, November 03, 2009

    我的脚痛 sole of foot

    脚掌终于承受不了每天十公里的负荷.早上看了医生,指出鄙人脚结构的天生缺陷.需要扔掉$50的运动鞋,换了穿每双$150的辅助校正鞋子(Orthotics).还说计算机工程师钱够,显然也是对IT人士有偏见.回头看看公司的福利或者保险公司能不能报销这个处方.

    上传美景.

    From

    Port Renfrew 一家饭馆的外面.
    ..
    From 2009_Oct

    Tide pool.
    ..
    From 2009_Oct

    典型加拿大西海岸风光
    ..
    From 2009_Oct

    欢德福卡海峡 出海口, 外面就是太平洋了.
    ..
    From 2009_Oct

    使鄙人脚痛的朱丽叶.

    Wednesday, September 30, 2009

    2009 Commit and Oracle-L后面的骨干Tim Gorman

    在亚马逊"老巢"参加两天的DBA内部技术交流会.

    Keynote由Oracle-L后面的骨干Tim Gorman开讲.Tim的主题是如何协调后台的System Admin和前台的UI/Application developer.

    可能国内已经有同行知晓Tim的名气,早上一起在亚马逊登记,然后等候入场,基本是尴尬冷场.

    Tim引用了一个案例,是说数据仓库开发人员不清楚BitMap索引是如何工作的,一个fact表,五个位图索引,使用SQL MERGE加载数据,强制使用并行处理. Tim用分布事物来比喻并行处理,结果BitMap索引是锁上加锁,处理时间漫长无比.

    那么解决方案是什么呢? 鄙人马上脱口而出, exchange partition,
    Tim做了补充, union all源数据和目标数据,使用SQL Anylitic function Row_Number()排重(Dedup),然后INSERT进中间表,最终交换表分区.

    这个处理设计和我们正在重建的库存系统的数据加载策略基本吻合. 只是我们的需求更加复杂一些,需要保留同一分区(书商)里面没有匹配的数据,set qty=0.

    最后,更新问题跟踪系统,给developer留个台阶, 备注是这样的: "DBA的责任,已经解决."

    会后我们想谈甚欢,希望以后从他那里接一些分包合同.

    Tuesday, September 29, 2009

    基本数据库存取 Basic data access

    学习了Tom巡回演讲中的一节, 使用索引:

    下面两种引用简单程序逻辑的比喻,非常贴切,这也是鄙人面试时,经常问到的一个题目.

    a) say out loud - full scans are not evil
    b) say out loud - indexes are not all goodness
    c) goto (a) until you actually believe what you are saying out loud.

    参考: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:743251200346166176


    Mythology – why isn’t it using my index
    Loop
    Say indexes are not all goodness
    Say full scans are not evil
    Exit when (you really believe it)
    End loop

    参考: Indexing.ppt , 下载: http://asktom.oracle.com/pls/asktom/f?p=100:8:1413269270550111::NO

    Thursday, September 24, 2009

    为什么不能买日货 why beat rb

    两国相争, 最后拼得是经济.

    鄙人语文差, 下面这篇文章, 正好代表了我的大部分想法, 转贴过来.
    原文: http://www.360doc.com/content/070907/13/36627_725823.html


    春秋战国时期,中国产生了许多思想家,其数量之多,是古希腊、古罗马、
    欧洲文艺复兴时期的总和所望尘莫及,他们的思想光辉,至今还在历史的长河中闪耀。

    诸子百家中,有一子叫“韩非子”,有一家叫“法家”,这个法家思想的集大成者,
    说话结巴子的韩非子,说了三句话却是力贯古今:
    “上古竞于德,中古逐于智,当今争于力”。“当今争于力”成了相对真理,
    被证明了二千二百多年。现今的国家关系,仍旧是争于力,只要国力超强,爱打谁就打谁,
    现实世界, 并无公理可言。国家关系,只认实力,有几个人跟你讲道理,讲交情。

    纪念二战胜利刚过,就以二战为例,二战的胜利,也是争于力,
    拼的是经济,拼的是国力。

    美军在欧洲战场上,无战争艺术可讲,只是“饱和轰炸,一线平推”而已。
    一次德军奇袭了美军的一个机场,把三百多架飞机消灭在地面上,
    不出三天,德国人发现,机场上又出现了四百多架崭新的飞机,
    所有的德国将军都明白,这个仗不用打了。
    即便再多出几个像隆美尔、古德里安、曼斯坦因这样最杰出的将领也无济于事。

    美军在太平洋战场也是一样,以硫磺岛战役为例,美军对日军
    的比例是:空军35:1、海军26:1、陆军5:1,登陆作战前,
    照例对硫磺岛进行了两个多月的饱和轰炸,硫磺岛被犁了多少遍,
    美国人恐怕连自己都搞不清。此种打法,美国人如何能不胜。

    就单兵的素质而言,德、日的士兵高于美、英、前苏联、中国。

    就将领的水平而言,德、日的统帅不逊于同盟国。

    德国的古德里安,在波兰、俄罗斯、包括日本还在崇尚骑兵、
    特别是波兰,真诚地崇尚骑兵的时候,就提出了装甲集群、
    大纵深突击的战争理论,在这个理论的推演下,德国的闪电战、
    德国的坦克部队横扫了欧洲。

    日本的山本五十六,首先提出了海军航空兵的理论。珍珠港一战,
    把美国海军赶回了西太平洋,他的海军制空权的理论,已经管用了六十多年。
    现今的远洋海军,是由航母、巡洋舰、驱逐舰、
    潜艇等构成的航母战斗群,这是美国海军的典型配置。

    但是,士兵的骁勇和将领的优秀,并不能挽救轴心国失败的命运,
    因为,到最后,拼的是经济,拼的是国力,是争于力。
    二战后期,美英年产十万架飞机,主要是美国生产的。美国一家,
    其生产能力,已超出德、意、日生产能力的总和。

    这是二战史上的争于力,当今世界的现实状况是,那个近邻
    日本,世界第二大经济强国日本,2002年,人均gdp就高达36000
    美元。这还不算日本的海外资产,2002年,日本的海外纯资产已
    高达16277亿美元,相当于德国、法国、意大利对外纯债权额总和的六倍。

    可怕的是,日本的政府、媒体、学者共同编造了一个弥天大谎,
    明明日本经济在强劲发展,却说成日本的经济衰退了十年,
    运用谎言重复一百遍就是真理的办法,把满世界的人骗得信以为真、
    晕头转向。中国是“韬晦之计”的故乡,其韬晦之计却被日本人用得炉火纯青。

    可怕的是,日本人在制造一个弥天大谎的同时,尽量夸大中国
    经济的发展,大造“中国威胁论”的舆论,让欧美一起来围堵中国,
    这一点上,日本人的阴谋也得逞了。日本是“中国威胁论” 的策源地和故乡。

    日本人这两招,目的一个,让世界各国把矛头对准中国,
    把中国人置于四面受兵的境地,欧美各国,一再打压人民币升值,
    在长时间的高压之下,中国政府不得不于今年升值人民币。
    而国内,人民币却大幅贬值,仅举一个参照物,去年
    一元钱人民币买半公斤大米,今年要一元六毛五分钱才能买到五百克。
    按照经济学理论,每年通货膨胀在百分之二,是正常的,
    对经济发展有利。到百分之四,就证明有了问题,
    对经济发展不利。到了百分之六,就非常的糟糕......
    日本人笑了,而中国的老百姓却是里外受损、两头吃亏。

    日本学者,还在继续造谣,说下一个十年,日本经济还将继续衰退,
    日本上下,心领神会,连说谎造谣都众口一词。

    日本人万众一心欺压别国,韩国人同仇敌忾对抗别国欺诈。

    世界上许多民族,都有优点和长处,包括日本民族也不例外,
    都有值得我们学习的地方,不重视这一点,只知仇恨,就是愚昧,
    那只是1900年义和团的水平,“师夷以制夷”,学习外国人是
    为了图强,是为了“人不敢侮”。为什么中国人不能学习异民族所长,
    也来个万众一心、同仇敌忾???

    中国威胁谁了?笔者不是学历史的,可是笔者清楚得很,自一八四零年鸦片战争以来,
    别人少欺负一点中国人就很不错了,六十多年前那一场战争,
    中国弄到差一点亡国灭种的地步。直到现在为止,中国人还处于五、四运动时期“外抗强权,
    内惩国贼” 的阶段,正在“抵御外侮”,还没有做到“人不敢侮”。别人
    一不高兴,精确制导的炸弹把你的大使馆炸个底朝天,然后说一声误会就完事了。
    就好比在市中心广场,一个人甩了你几个大嘴巴,朝你脸上啐了几下口水,踹了你几脚,
    然后再说一声对不起、 误会,就完事了。
    尽管全市的人都知道,你也只能擦擦吐到脸上的口水,把打掉的牙齿往肚里咽,
    捂着腮帮子回家,你还能怎么着,除非你准备拼死一战。一百五十五年了,
    笔者只知道中国人受尽屈辱,不过是忙着抵御外侮,威胁别人的事,
    影子气都没有、门都没有。日本人居然能大造“中国威胁论”的谣言,
    真亏日本人想得出来,日本人做事也过于极端了,对中国人也过于阴狠、过于毒辣了。

    从中日关系来看,自建国以来,中日关系现处于最紧张的
    时期,就在17日中国的神六顺利返回,举国欢庆的时候,
    就选在这一天,小泉再次参拜靖国神社,这是今年第二次参拜,
    这是特意向中国人挑衅,或者说警告,你中国人不要高兴,
    我日本横下心来要和你中国为敌到底。

    中国有九亿农民,其中至少有五亿生活在联合国划定的贫困线以下,
    我们的人均产值还很低,中国人节衣缩食,弄几个载人飞船上天,自己花自己的血汗钱,
    自己给自己开一下心,自己给自己提提精神,有什么不可以?
    就好比一户贫苦家庭,过春节的时候,买几个炮仗放放,有什么不可以?
    你日本人有的是钱,可以天天买炮仗放。你日本人为什么要如此的仇恨?
    你日本人的心理为什么要如此的阴暗潮湿??

    五四运动时期,国人抵制日货,前段时期,一些城市抵制日货,
    早在十几年之前,著名作家张贤亮提出抵制日货。日货非抵制不可,
    日本人欺人太甚。购买一件日货,就是增加一分日本人的国力。
    如果中国人像韩国人一样,万众一心不买日货,
    日本人就不会象现在这样嚣张,中国也就多一点国家安全。

    我们写文章时,一般会引用名人名言,以增加说服力。
    今天笔者还要引用一个普通姑娘淼逸冰的话:“让中国人抵制日货成为习惯”。
    韩国人抵制日货已经成为习惯,为什么中国人抵制日货不能成为习惯???

    作为一个清醒的领导人朱鎔基,在当上海市委书记的时候,
    其时日本轿车在中国大行其道,其他省、市政府大买日本车,
    朱鎔基就明确规定,上海市直机关一律不得购买外国轿车。

    在当了总理以后,一次大会上呼吁代表,买一点国货带回去。

    为什么不能买日货?因为:“中国在加入wto以后,要遵守共同的游戏规则,
    政府无法再用关税壁垒的办法,阻挡外国商品的入侵。”
    这个时候,就更需要全体中国人一致的自觉行动, 像韩国人一样一致的自觉行动。

    为什么不能买日货?因为:“日本人将有毒、有害、过时的商品、残次的商品卖往中国。”
    据政府的《国际金融报》十月十四日第一版载,日本人将有毒致癌的食品保鲜膜倾销中国市场,
    已占中国市场的百分之八十。此种保鲜膜,日本国内早已禁止使用,
    国际上早已禁止生产。难道国内连冰箱里用的保鲜膜都不能生产了?
    难道国人连国产的保鲜膜都不能相信了?这样的例子,无法一一列举。
    日人可恨、可气,国人可悲、可叹。

    为什么不能买日货?因为:“日本人有他的心理特点。”
    他在中国赚的钱越多,就越是嘲笑你中国人,鄙视你中国人,仇恨你中国人。
    中国的原当权者不遵从国际惯例,不考虑中国人的生命财产损失和老百姓的生活,
    不取得中国人民的同意,大喊不要日本人的战争赔款,那可是一笔天文数字的战争赔款。
    结果怎么样,非但日本人没有一俩感激的意思,而是相反,中日关系越来越紧张,
    五十年来日本人哪一天忘记了欺侮中国,
    小泉哪一天不是一天二十六个小时在盘算着如何和中国人过不去,就是典型例证。

    为什么不能买日货 ?因为:“安不忘危”。和平时期万众一心抵制日货,
    形成国人的坚定信念和爱国氛围,战争时期才能少有汉奸。
    为了减轻将来中国人可能蒙受的苦难,必须现在就着手铲除滋生汉奸的土壤。
    再说了,中国还没有那么“安”,反而给人的感觉是虎狼环视。
    为什么中国内奸的数量世界第一?
    不能不深思,不把这一层说破,有害无益。不把这一层说破,就是讳疾忌医。
    “知耻近乎勇”,国人焉能不知耻?二战期间,前苏联就没有那么多的俄奸,
    俄国也有投降的个别将军,就无法组织起俄国的“和平军”,这是为什么?
    这一点,也值得国人深思。

    为什么不能买日货?
    因为:“平头百姓、有识之士,反击日人攻势,奔走呼号,
    抵制日货,雪心头之耻、胸中之恨,别无它途。

    为什么不能买日货?因为:“日本人对中国政府每一次成功
    的破坏,所造成的经济损失,归根到底是由基层的群众来承担。”
    那些贪官污吏,动辄收贿贪污几百万、几千万,他们的奢靡生活,
    不论何时都不会受到影响,而明显受到影响的,只会是最广大的平民阶层。
    贪官污吏不会知道,也根本不需要知道,一年之内大米会
    以每市斤百分之六十五的通货膨胀率增长。
    所以,首先要求抵制日货的,不可能是官吏阶层,只能是平民阶层、也只会是平民 阶层。
    而且,由于教育、文化等等方面的原因,也只是平民阶层中的一部分清醒者
    和属于他们的知识分子。这不是平民阶层一个阶层的悲哀,而是一个民族的悲哀。

    为什么不能买日货?因为:“当今争于力”。那个会打仗的
    秃子林彪,倾向于中日还有一战,万一有了战事,
    你今天手底下买进一件日本商品,为日本人增加一分国力,
    你明天头顶上就多出一枚日本炸弹,而炸弹带来的,只能是尸体和废墟。
    没准,落在你头顶上的那枚日本品牌的炸弹,恰好是用你购买日本品牌的商品,
    进而产生的利润生产的。

    为什么不能买日货? 因为:“日货、日货, 日本倭寇之祸。”

    为什么不能买日货?因为:“我们的身后, 三千五百万冤魂在哭诉。”

    Tuesday, September 22, 2009

    Agile 敏捷软件开发学习心得

    上周六在维多利亚IT Club聆听了GuoLei两个小时关于Agile Software Development 的精彩演讲.
    这是维多利亚IT Club挂牌以来不多见的高品质技术交流.
    GuoLei关于Agile Software Design的演讲很成功,内容丰富,观众积极发言,反响热烈. 鄙人也有不小的收获.
    没来的同行一定会后悔的, 读完此文,您一定更后悔, 鄙人就不会后悔.

    这里谈一些鄙人的心得体会.

    . 设计和制造(manufacture)
    GuoLei举了一个宝马制造汽车的例子, 造一辆新汽车, 制造过程占了整个流程的很大比重, 超过50%.
    而软件开发99.9%的时间是在设计, 包括传统的需求分析,设计,编码,测试, 而制造(build)过程在一瞬间就完成了.
    所以鄙人鄙视那些号称软件工人的家伙. 作为软件开发人员,要把自己当作设计师来看待,才能生产出优秀的软件.
    也就是High Available and Scalable application system.

    . Communication over documentation
    代码一定要清晰可读, 多行代码也没有关系, 忌讳使用一个高深的表达式,上午写的,到了下午,自己都看不懂了,窘迫.
    写在代码中间的备注是没有多少人看的,而且很可能已经过期了,说的完全不是代码要做的事.
    尽可能面对面交流, Email/电话 均不提倡. 80%的沟通是通过表情和肢体语言来完成的.比如,当你解释完一个处理模型以后,观众回答听懂了,可是难以掩盖他们木然的表情,依然处在疑惑当中,而打电话时,你是看不到对方表情的.

    . 积累和完善测试案例, TDD(Test Driven Design)
    一开始,不需要覆盖100%的测试案例; 而是使用测试案例帮助设计原型,逐步完善我们的设计方案.
    开发一个新功能,就累积一个新的测试案例,
    发现一个新的bug,就累积一个新的测试案例,逐渐完善测试案例库的涵盖程度.

    . 左脑和右脑
    左脑负责常规约束活动,
    右脑具有创造力,
    也就是为什么工作累了以后,会卡在一个貌似棘手的问题,苦苦找不到解决方案,然后走开喝杯水,上个厕所,散散步,抽根烟,立马就有了解决问题的眉目,好点子不断. 因此,每隔一小时,出去散散步,使用一下右脑,发挥创造力. 即对健康有利,又能提高工作效率,我们出去散步吧.

    . 人是关键
    再好的软件开发流程没有人的积极参与是不行的,而且软件行业人与人之间的差别太大,好的杰出的程序员的开发效率常常高出普通程序员的十倍以上. 点背不能怪社会,只能怪自己天赋不够, 嘻嘻.

    参考: 如何穿越团队协作的五重障碍
    http://hi.baidu.com/sunguangran/blog/item/2ab0e5cce64d121900e9286f.html
    信任缺失
    “第一重机能障碍是团队成员间的信任缺失。这实质上源于他们不愿在团体中轻易受到攻击的心态。团队成员如果不对其失误和弱点真正地开诚布公,就不可能打下信任的基础。”
    惧怕冲突
    承诺不足
    逃避担责
    漠视结果

    未完待续...

    Friday, September 18, 2009

    918国耻日警钟与反省

    cnoug.netaskdba.net 竟然看不到一篇纪念国耻日的贴, 那么鄙人就转摘一篇吧.

    送给那些继续支持日本经济建设的同胞, 醒醒吧.

    引自: http://www.victoriabbs.com/bbs/viewthread.php?tid=19255&pid=99346&page=1&extra=page%3D1#pid99346

    回顾中日历史,与其说是一衣带水,倒不如说是一衣带血倒更为贴切。自龙翔三年(公元663年唐高宗时代),日本占领朝鲜锦江口始,中日间就拉开了兵戈相见的序幕(至于那个携大量珍贵文物东渡的汉奸和尚鉴真,不明白历史书上为什么还要对他大加褒扬),明太祖洪武年,肆虐达七十八年之久。万历年,丰臣秀吉出兵二十一万,攻占朝鲜,明大将李如松出兵援朝,在付出较大牺牲后一举击败日本。然而。从那时起,日本的战略家们就已经开始处心积虑地研究和制订灭亡中国的计划。到了近代,甲午战争的惨败彻底暴露了老大帝国的颓弱本质,倭寇的帝国梦,就是那时开始于中华民族的血泊与白骨之中的。

      56年前的8月6日和8月9日,曾经不可一世的日本在屡受挫败后,遭到的真正的天谴。上帝说:伸冤在我,我必报应。果然,那动人心魄的一瞬间的闪光与冲天而起的蘑菇云,让日本人第一次感到了死亡的恐惧。但今天,当废墟再一次成为繁华的大都市的时候,我们看到的是:今天的日本人,爪牙更锋利,气焰更嚣张,而记忆却更差了。在一部叫《漂流街》的电影里,一个爱打乒乓球的中国黑帮老大,曾对日本人说过这样一段话:从前,一个岛上生活着一群猿猴,后来有中国人去教他们写字,猿猴们学会了,但却不懂得字的含义,不懂得什么叫诚实,什么叫善良,什么叫认罪......(大意)

      日本一直流行这这样一种调子,中国并没有战胜日本。的确,面对"8.15",中国的确不是那么理直气壮。有一篇介绍苏军攻打柏林的文章写到,"巨大的仇恨使苏军进攻柏林时没有溶入丝毫的怜悯,他们动用了所有可以拉到柏林的重武器,而根本不考虑平民的伤亡"。苏军也曾经拒绝一支杀害过卓娅的德军投降,而坚持把他们全部消灭。壮哉!这才是真正的大国之魂!而我们呢,做为战胜国却从未有过一兵一卒踏上过日本的领土,与量浴血奋战的国民党高级将领们,却作为内战的牺牲品与昔日的敌人同处牢狱。据我所知,全国各地的纪念内战的纪念馆要远比抗日的纪念馆数量多,规模也大得多。政府对日本宽厚,一来只是目光短浅的只考虑短期的国际形式,二来无非因为日本自78年以来给中国的两兆多日元的贷款(不用还的吗?)。可有谁想过,与这些低三下四争来的贷款相比,马关条约赔出去的二万万两白银价值几许?仅仅8年抗战中中国600多亿美元的财产损失价值几许?永难重生的文物古迹,自然资源价值几许?而千年来无数在对日战争中牺牲的中国军民的冤魂,一个拥有12亿人口的东方大国的民族尊严又价值几许?!

      总是有人对日本报有幻想,"军国主义是一小部分,广大日本人民对中国是友好的"的声音不时响起,奴才的腔调,自上而发。看过日本兵出征前在街上请路人给他们的吉祥物上缝一针以祈求平安吉祥的资料片吗?看过那些身穿和服的年轻女子,在疯狂地叫喊着反华的口号的资料片吗?看看吧,你可以知道"广大日本人民"的真实嘴脸。中国的一艘考察船去钓岛附近探了一下.随之而来的是日本外交部的警告:未经日本政府允许不得进入日本领海。日本青年纷纷要求与中国一战。日本人对中国的敌意,是全民族的,是发自骨子里的。今天小泉的种种行径,每个中国人都看在眼里,不需冗言。小泉,不仅仅代表他自己,他是两亿日本人一票一票选出来的!日本人聪明、勇敢、坚忍、团结,但他们更变态、畸形、极端、怪异(这些贬义词并非凭空捏造,如果你领略过那些深受日本人喜爱的病态的艺术,你就会感受到,日本人性最深处的丑陋与邪恶),这样一群有着人的思维的高级禽兽,要远比头脑简单,只是知道嗜血的豺狼可怕的多。

      中华民族,不是狭隘的种族,在她的怀抱中,56个民族能够亲密无间,和睦相处;中国人,更不是狭隘的民族主义者,我们在全世界有这数不清的不同语言,不同肤色的朋友。但唯一的例外,就是太平洋上的四个小岛,那里生活着地球上最凶残与可怕的动物,中华民族永远的心腹之患。中日世仇,不共戴天!每一个中国人永远都不应该忘记日本曾经对我们做过什么!对于一个应该在地球上消失的种群,对于一个人人可以诛之的国家,对于一个极端变态的民族,我们永远也不要再对他们抱有丝毫幻想。抗战期间的一首小诗,叫做《假如我们不去打仗》:假如我们不去打仗/那么敌人杀死了我们/还要用刺刀指着我们的骨头说/看哪,这是奴隶!

      中日之间,没有任何友谊可言,有的只有连绵千年的仇恨!先辈的英灵,每天都在半空中凝视我们这些至今依然无所作为的不肖的子孙,他们焦虑,他们失望......但我们忍耐终将会有尽头,厉兵秣马,做好准备吧,犯强汉者,虽远必诛!浑浊的小泉,永远也别想再一次兴风作浪!"巨浪"和"东风"就是我们的怒吼,我们期待着,铭刻着中国制造的蘑菇云再次生起,在东京,在京都,在大版,在每一个孳生着量艿巢穴。中华民族的千年梦魇,永远沉入太平洋底,累劫不复超生!也许很快,也许还要等很久,但血债必用血来还!大直若屈,大巧若拙,大辩若讷。

    "巨大的仇恨使苏军进攻柏林时没有溶入丝毫的怜悯,他们动用了所有可以拉到柏林的重武器,而根本不考虑平民的伤亡"。苏军也曾经拒绝一支杀害过卓娅的德军投降,而坚持把他们全部消灭。壮哉!这才是真正的大国之魂!

    Thursday, September 17, 2009

    维多利亚IT club topic: Agile software development

    本周主题: 敏捷软件开发 (Agile software development).

    时间: Sept 19th 2:30pm, that is 3rd Saturday 2:30pm every month

    地点: EBC church second floor meeting room.
    Address: 2121 Cedar Hill Cross Rd.

    主讲人: GuoLei(Lawrence), 此人来自油都 卡尔加里. Java 开发经验丰富, 搬到维多利亚后,一周内找到了合适的新工作. 然而最牛的是已经走了两次West Coast Trail, 鄙人深表敬仰, 希望五年内有机会走一趟.

    会后,有 GengLi 组织的高尔夫球活动,有兴趣的带上球杆.


    另外, 九一八国耻日到了, 作为国民,自己敲个警钟,反省一下.


    多谢,
    木匠

    Tuesday, August 18, 2009

    生活琐事3则 trifles

    上周末去Parksville的一个私 人capming site露营了,有水有电,设施齐全,就是太过于拥挤,无隐私可言;鄙人还是喜欢在国家公园/省立公园的密林从中露营. 带着朱丽叶狂奔了两个瀑布,周六Little qualicum fall,周日是English man fall.

    刚才跟一伙LAMP(Linux,Apache,MySQL,PHP/Perl/Python)人员开了个会,这伙人个个打扮的像艺术家,感觉他们并非都是Geek, 大多技术粗糙,开发的软件也是稀里糊涂,东拼西凑.

    --
    最近有一个骗局在维多利亚出现了, 号称Advance air supply company, 打着调查空气质量的幌子, 然后送你一个抽奖的卡片,随后两三天,就打电话说你中奖了,然后就要去你家送奖品,比如三天旅馆住宿,后面的骗局还不知道怎么发展,大家留意了,有危险, 就赶紧911报警.

    趁早给大伙提个醒, 谨防受骗! 鄙人因为爱占小便宜,差点上当.

    http://www.chinasmile.net/forums/showthread.php?t=420621

    ...

    Calgary这里有一家类似的Breathe E-Z Home...送奖品的后招 - 据说是,和奖品一起带一台超级吸尘器(有改善空气质量之特殊功效)到你家,如果你开门给他们进来了,就别指望他们把吸尘器带走.他们会极力吹嘘该吸尘器之奇效(据用过的人说确实不错),该吸尘器售价大概是
    $600,会给你免费试用多久,然后骗你签一份免费试用的合约.拿到你的签名后,他们会单方面把合同的一些条款改掉.不久后,你就等着收他们的上千元的欠单了.

    Tuesday, July 07, 2009

    奇怪的Strange PL/SQL complier bug编译臭虫

    今天终于完成了数据上载的智能修改, 就是说只修改数据有变化的列.

    比如我们的库存表, 有50个列, 52% 的UPDATE仅修改"价格/price"一列.

    可是遇到了一个极其古怪的臭虫, 如下所示, 一个简单的Loop循环, 漏掉了End Loop后面的分号";", 程序居然通过了编译,而且运行时也没有报错, 就是 End Loop 后面的语句被当成注释一样给跳过了. 这样的错误太难debug了, 幸好我充分的运用了code instrument技术, 几乎每一行代码都跟了一句debug (类似log4j), 很快找到了错误所在.
    ...

    run_bulk_update;

    FOR i in 1 .. lt_top_pattern.Count
    Loop
    run_bulk_update_tophit(p_hit_cols => lt_top_pattern(i));
    End Loop ;

    run_bulk_insert;
    save_col_upd_pattern;
    ...

    数据库版本是11.1.0.7.0, SunOS 5.10

    Friday, July 03, 2009

    可以少开会吗 Meetings are indispensable?

    鄙人非常讨厌开会, 不过开会的时间是一个很好的打瞌睡休息时间.

    除非你啥都不想干, 就去开会吧.

    "Meetings are indispensable when you don't want to do anything."
    -- John Kenneth Galbraith

    Meetings (usually) suck. The traditional way of doing business includes company meetings throughout the day, taking an hour or more usually. This can eat up half of your day or more. Add to that individual meetings at lunch, or having drinks, or just a one-on-one in the office and you're meeting more than you re producing.

    If you've sat through a lot of meetings, like I have, you know they're almost always useless. Sure, sometimes they're good, but most of the time they're boring, full of chit-chat or useless information, and really can be accomplished through a simple email or phone call. They're a waste of everyone's time, and worse yet, most people know it. And nothing changes.

    有很多情况可以不用开会, 使用有效的替代方案:

    Instead, learn to accomplish the tasks of a meeting through an email, a quick phone call, a quick and focused IM, an online group chat if necessary. Collaborate through online tools, such as those mentioned above. Keep meetings to a bare minimum. Sure, you still need to socialize with people, and have actual conversations, but boring and useless meetings aren't the best way to do that. If you control your company or division, do yourself and your company a favor by eliminating most of your meetings.

    那么啥时候需要开会呢?

    Only meeting after 3 round trip emails and the goal is still not clear.

    以上摘自公司内部Email.

    Wednesday, June 17, 2009

    Cowichan River Tube Trip 漂流

    一年一度的温哥华岛自然水域漂流又要开始啦! 欢迎留言报名. 跟我的http://twitter.com/mujiang也行.
    在这里,您可以接受加拿大成人仪式, 品尝杂草(weed), 根据个人喜好选择,不存在任何强迫. 嘻嘻.

    上甘岭河(Cowichan River)是我平生见到的最好玩的漂流, 水质纯天然,清澈,水量充足,安全,偶然有一些激流(一共两处),有惊无险,赶紧靠岸就行了,胆大的可以冒进. 去年鄙人躲了,今年一定要尝试一下激流速降.

    Cowichan River Tube Trip

    The Date

    June 28th 2009

    The Float

    Skutz Falls to Marie Canyon - 2hr ride, not including optional time spent beached

    Equipment needed

    1. Tube - If you don't have one, we can buy them at the local tire shop in Duncan for $20 or Zellers in Tillicum Mall has These for $24 (BESTEST TUBE EVEEER!!!!)
    2. Beverages - What ever you feel like drinking (NO GLASS BOTTLES ALLOWED)
    3. Cooler(s) - Communal, if anybody has a big cooler that would be great
    4. Cooler Tube - Gets blown up around the cooler to keep it a float and safe (also acts as an emergency spare)
    5. River Shoes - I use a old pair of runners, some sort of footware is a must(IMO)
    6. Rope - Or bungy to tie tubes to the trucks
    7. Sunscreen!!
    8. What ever else you might want to bring

    The Time Line

    • 9 AM - Meet at ABE
    • 9:30 AM - Leave for Duncan
    • 10:15 AM - Buy Tires and Snacks if wanted
    • 10:30 AM - Buy Beverages and head off
    • 11:00ish AM - Start Tube ride
    • Enter time warp time can not be quantified

    The Tubers

    1. Doug - Have Car will drive
    2. Megan - Has Car if needed
    3. Charlie - Will go if I can find someone take care of my puppy and my shin wound recovered.