木匠的微型博客 Charlie Twitter

    follow me on Twitter

    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个星期,(薪水全额照发,资本主义好呀!)
    直到四月底,恢复"训练",现在完全恢复,生龙活虎,球技日渐纯熟,嘻嘻.

    Saturday, October 28, 2006

    黄金溪 土著捕杀三文鱼

    --
    咱虽然球技平平 仍然坚持每周一至两场比赛
    (和大名鼎鼎FireFox公司每周三来一次友谊比赛,如果你在使用Mozilla Firefox)
    加拿大国家队不行, 足球活动却普及的像中国的乒乓球

    Tuesday, October 24, 2006

    GTD 研究 摸索 心得

    First choice: todo.txt + todo.sh 面向Geek生活 初级原始材料 一切从简 幸福生活
    2nd 补充(plus): MonkeyGTD
    说明:Wiki工具,特点是只有一个HTML文件,便于携带,出差时候很方便。而且我初步的使用是非常方便,缺点是缺少对时间进程的安排及管理; 作时间任务安排,力不从心.
    Monkey里同一个ToDo可以属于不同项目,Tag系统好处就在于此,适合编写各种文档,段落模块相互关联,组织灵活,阅读快捷顺畅, 比如 data process design specification, benchmark, data modeling ...

    准备近期试用一下Hiveminder,
    似乎结合了flat text file的简易(易保存 易携带 易移植/兼容) 和 Web Application 的强大功能.
    特点是界面相当友好
    Braindump方便快捷的将你所要做的工作的记录下来,完成GTD中的第一步“搜集”(InBox),
    对于每个工作任务(task),可以用标签(label)来分类,添加说明,设置起始时间和最后期限,最重要的,可以设置工作项目之间的关系,比如哪个项目必须在哪个项目完成之后才可以进行。对于属于同一个项目中的多个工作,还可以专门建立一个组来管理.

    曾试用过的GTD工具 (和后台frame技术),
    http://www.tasktoy.com (Zoap on Python)
    http://voo2do.com (AJAX)
    Tracks (Rube on Rail, 日本人发明的 抵触 丢弃)

    Todo, 打算自己用Oracle APEX(HtmlDB)开发一个,自己设计, 因为我是十多年的Oracle DBA,最近研读 Data Modeling Essentials

    参考: xqchina 发表的 GTD工具心得一

    GTD,Getting Things Done的缩写。
    << Getting Things Done-The Art of Stress-Free Productivity >>

    搜集记录所有你在操心的事情。
    定义出可以付诸实施的行动及其结果和具体的实施步骤。
    根据你需要获取的方式和时间,按照合适的分类,以流水线的方式组织整理备忘录和相关信息。
    对你的承诺从目的、远景、目标、关注的范围、项目和行动几个方面保持及时和合理的回顾评估。

    通过这个系统来记录每件工作来减轻焦虑和提高效率,以此进入一个良性循环。在无压力或者压力尽量少的状态下完成工作

    Monday, October 23, 2006

    秋末十月捉螃蟹 和 勤劳致富

    维多利亚的华人传说 十月以后就捞不到螃蟹了.
    上周六我们去做了一次尝试 斩获颇丰
    五条Long Spinned Bullhead, 三只红蟹, 一只大个公的温哥华青蟹,
    等晚上回家上传一些照片.

    顺便读了一篇博客,后悔十年白干了, 赶紧亡羊补牢, 从现在做起.

    什么是最简单的致富方式


    找一份薪水不错的工作。
    合理避税。
    将任何挣来的钱都存20%。
    拿出一部分存款以谨慎保守的方式投资基金。注意分担风险。
    将投资基金的收益继续投资基金。
    绝不要动用投资基金的这部分钱。
    这么做上十年。

    然后你就进入社会前5%了。
    说明了一个真理,勤劳节俭是最简单的致富方式。

    Tuesday, October 17, 2006

    基于 TiddlyWiki 的 GTD 工具

    我也是对 GTDTiddlyWiki 有些失望.
    终于找到了
    一个更好用的基于 TiddlyWiki 的GTD工具 : MonkeyGTD

    Sunday, October 15, 2006

    中国城市惊现“弹弓队” 专射日产车

    今天看到一则新闻 令人痛快:

    http://www.chinadian.ca/viewarticle.php?id=12713

    中国有个别城市出现“弹弓队”,专门在夜深人静时,用裹有钢珠的弹弓射击停在路边小区的日产车挡风玻璃,有的甚至在破裂的挡风玻璃上贴上“谁让你买日本车”!因挡风玻璃价格比较昂贵,车主苦不堪言。何况不知道什么时候又被击裂,运气最差的车主一个月已换了三块玻璃,如割肉般痛楚!

    ...
    六:police对查这种事积极性也不是很高,甚至抱有幸灾乐祸的思想。

    七:对一个城市日本车的震撼力非常强,很多车主已在低价转让日车。

    八:由于一个城市的人都在议论讨论此事,竟无形中传播了爱国主义思想,这是“弹弓队”所想不到的。

    九:波及一个城市的其他日货