2006年07月
书签(2006-07-27)
Greg Luck's WebLog: How We Solved our Garbage Collection Pausing Problem
Tags: fun gc j2ee java performance programming tuning
Haskell's overlooked object system
Tags: cs haskell object oo programming system
Monads in Ruby, Part 1: Introduction - Moonbase
Tags: functional monads programming ruby
An Overview of the Singularity Project
Tags: automated microkernel os programming sing# singularity spec# system verification
Kent Beck: Ease At Work (Part 1 of 7)阅读全文>
发表于 @ 2006年07月28日 10:35:00|评论(loading...)|编辑
书签(2006-07-26)
* Understanding Monads Via Python List Comprehensions
Tags: comprehension haskell list monads programming python
* A Technical History of Apple's Operating Systems: Introduction
Tags: history macos os programming system
阅读全文>
发表于 @ 2006年07月27日 10:45:00|评论(loading...)|编辑
书签(2006-07-25)
Building Common Lisp Applications
Tags: common lisp performance programming tuning
Event-Based Programming without Inversion of Control (PDF)
Tags: actor concurrent event model programming scala
GC FAQ
Tags: collection garbage gc programming
阅读全文>
发表于 @ 2006年07月26日 10:12:00|评论(loading...)|编辑
书签( 2006-07-24)
Sztywny Blog - Stiff asks, great programmers answer
Tags: fun great interview programmers programming
Donald Knuth, The Art of Computer Programming, Volumn 4
Tags: algorithm combinatorial combinatorics cs generation programming taocp
Ruby Monitor-Functions - Or Meta-Meta-Programming in Ruby
Tags: meta programming ruby
Speculative Threading: Creating New Methods of Thread-Level Parallelization
Tags: programming speculative threading
Myths, Lies, and Truths阅读全文>
发表于 @ 2006年07月25日 10:13:00|评论(loading...)|编辑
书签( 2006-07-24)
Sztywny Blog - Stiff asks, great programmers answer
Tags: fun great interview programmers programming
Donald Knuth, The Art of Computer Programming, Volumn 4
Tags: algorithm combinatorial combinatorics cs generation programming taocp
Ruby Monitor-Functions - Or Meta-Meta-Programming in Ruby
Tags: meta programming ruby
Speculative Threading: Creating New Methods of Thread-Level Parallelization
Tags: programming speculative threading
Myths, Lies, and Truths阅读全文>
发表于 @ 2006年07月25日 10:09:00|评论(loading...)|编辑
书签( 2006-07-24)
Sztywny Blog - Stiff asks, great programmers answer
Tags: fun great interview programmers programming
Donald Knuth, The Art of Computer Programming, Volumn 4
Tags: algorithm combinatorial combinatorics cs generation programming taocp
Ruby Monitor-Functions - Or Meta-Meta-Programming in Ruby
Tags: meta programming ruby
Speculative Threading: Creating New Methods of Thread-Level Parallelization
Tags: programming speculative threading
Myths, Lies, and Truths阅读全文>
发表于 @ 2006年07月25日 10:08:00|评论(loading...)|编辑
书签, 2006-07-23
刚才开会时百无聊赖,就写了一段脚本,把我当天放在del.icio.us上的书签抓下来,再转换成如下的列表。写的时候才发现Ruby的openuri不让我跳过SSL Certificate的验证(或着支持但我没找到?),而del.icio.us偏偏没有有效的SSL证书。一怒之下,直接用net/https了。当然,其实也就是15行和20行的区别。无所谓怒不怒了。 嗯,什么时候CSDN提供blog API呢? “每日链接”一类的帖子根本就不需要我们动手嘛。
svn lessons programming software development
Tags: development lessons programming software svn
Inside the Linux scheduler
Tags: linux os programming scheduler
Functional Programming HOWTO
Tags: functional programming
Graphical Mod阅读全文>
发表于 @ 2006年07月25日 03:48:00|评论(loading...)|编辑
刚才在这里看到一则新闻 ,顺便链接duki的小品文。感想其实很简单:
新闻里的老大也忒天真了,居然接受公司为了挽留他开出的条件(counteroffer)。可惜我想说的道理已经被Gamasutra说得透彻,我就摘些要点吧(强烈推荐原文):
绝不要接受counteroffer!
接受Counteroffer的人里,86%都在6个月内离开公司。
除非你是御赐高手高手高高手,公司不可能离不开你。李一男尚且能被任正飞欢送,何况你我?
你的老板开出counteroffer,与其说要诚心挽留你,不如说是借此控制节奏,扭转局面,变你主动为他主动。当他挽留你时,寻找替代人选的工作多半已经开始了。
推论:公司开出counteroffer不是突然发现了你的价值。你当是结婚啊,失去时才知道珍惜?
Counteroffer除了多给几千块钱,还能多出什么?仔细想想,你真的是为了几千块钱的原因离开公司的么?那点钱能买来每周40小时以上的快乐?
你接受了counteroffer, 你的公司和当初给你offer的公司都会认为你不够忠诚,容易被收买。有了这个形象,还用指望被提拔么?还用指阅读全文>
发表于 @ 2006年07月14日 14:20:00|评论(loading...)|编辑
从海龟网看到的。 实在精彩,抄在下面,聊作备份。
转贴者按: 中国近代名人的一些言行, 编的很有趣, 好多事现在无法查证了, 看了笑笑.
朵渔 编
“五四”前后,黄侃和胡适同在北京大学任教。黄竭力反对胡适所提倡的白话文运动。有一次,黄侃对胡适说:“你口口声声要推广白话文,却未必出于真心。”胡适不解其意,问其故。黄侃答道:“如果你身体力行的话,名字就不应叫胡适,应该叫‘往哪里去’才对。”胡适听后一时语塞。
谭鑫培的戏风靡北京,各大学多有谭迷。一天课间休息,教师们闲话谭的《秦琼卖马》时,胡适插话:“京剧太落伍,用一根鞭子就算是马,用两把旗子就算是车,应该用真车真马才对……”在场者都静听高论,无人说话。只有黄侃立身而起,道:“适之,适之,那要唱武松打虎怎么办?”
20世纪20年代上海泥城桥开了一间叫“四而楼”的酒馆,很多人都不明白“四而”的意思,就去请教当时任上海公学校长的胡适。胡也是百思不得其解,挨不住脸面,只好亲自前往四而楼小酌,寻机向主人探问究竟。主人说,楼名取自《三字经》的“一而十,十而百,百而千,千而万”,只不过图个一本万利的彩阅读全文>
发表于 @ 2006年07月14日 00:54:00|评论(loading...)|编辑
Why's Lucky Stiff 上看来的。俺只是搬运工。能读原文的老大们不用往下看了。
嗯,假如一个类里有个实例方法。我们希望这个方法只运行一次。”切,我还以为是抢鸡蛋呢“,熟读铁撬书的老大们开始嗤之以鼻,”不就是第391页里Tadayoshi Funaba的once么?就连上一篇《吃了大力丸的Ruby》也有类似的实现”:
01: def once(*ids)
02: for id in ids
03: module_eval Your trial period has ended.
11: t.run_me
12: #=> (trial):3:in `run_me': NO MORE. (Exception)
注意03行。在方法run_me()里,我们重新定义了run_me()。因为定义函数也是动态执行,当run_me()第一次运行时,03行被执行,导致新的run_me()被定义。接着04行被执行,打印出"Your trial period has ended"。函数run_me()执行完毕后,新定义取代老定义,再执行就得到第12行的阅读全文>
发表于 @ 2006年07月13日 14:12:00|评论(loading...)|编辑
前有Why The Lucky Stiff的杰作Try Ruby,现在又有了Jason Orendorff的Try Scheme。有兴趣的可以去玩玩儿(IE下很慢。FireFox下还行)。Jason说SICP是有史以来最佳编程书籍之一,深合我心。 阅读全文>
发表于 @ 2006年07月07日 23:11:00|评论(loading...)|编辑
嗯,我们的功能测试代码常有个小小的需求:当测试代码里的某一个函数抛出异常,系统自动弹出一个调试窗口。调试窗口应该已经包含异常抛出时的上下文信息,以便测试员进行调试。"靠,还以为什么新鲜玩意儿,原来不过是Ruby On Rails玩儿得不爱的breakpoint!“,看贴的老大们开始不屑地评论。呵呵,老大们的话自然不会错,的确是RoR里常用的 breakpoint。但在俺讨论新东西前,先让小的稍稍介绍一下这个牛X的breakpoint。比如说下面这段代码:
02: class T303: def test_104: a = 005: 1/a06: end07: 08: def test_209: p 'test_2'10: end11: 12: end13: 14: t = T3.new15: begin16: t.test_117: rescue18: breakpoint19: end20: t.test_2因为test_1用零除,第18行会被执行,导致如下的irb窗口被弹出。弹出的irb已经包含了执行中断时的所用信息阅读全文>
发表于 @ 2006年07月07日 14:24:00|评论(loading...)|编辑
老有人问“负暄”的意思是什么。 解释前先说“负暄琐话”的来历。《负暄琐话》是张中行老先生的一本小册子,回忆他当年在北大读书时的趣闻轶事。10多年前读过,至今齿颊留香。《负暄琐话》里关于北大红楼的描述,对当年学界风云人物种种风范的记录,都让我无限神往。八卦水平,无过于此。当初写blog的动机也就是随意八卦一些技术和有关CS的人和事。前辈风存。于是东施效颦,取《负暄琐话》为名。“暄”是太阳的意思。“负暄”就是晒太阳。“负暄琐话”就是在太阳下聊8卦。现在室外19度,正是我最爱的温度。阳光热烈而不刺眼,透过窗外不知名的大树和咖啡店的落地窗斑斑点点地洒落到我的身上,随风轻动。店里正在放我喜欢的老歌《卡撒布兰卡》。在如此惬意的环境下写blog,“负暄琐话”真是贴切的写照。
阅读全文>
发表于 @ 2006年07月02日 01:12:00|评论(loading...)|编辑
SilkPerformer的库函数难以使用。BDL的库函数彷佛由虐待狂精心设计,专门用于折磨人的神经,污染人的双眼。SilkPerformer的函数库的特色是WYGINWYG--所得非所猜。如果哪位老大心理强健,觉得WebFormValueSet()设计得还行,不妨再欣赏一下另外一个函数。比如说,搜索字串。简单?呵呵,Segue的天才程序员们可不这样想。这个函数的signature就足以让每个正常人得心绞痛。
StrSearchDelimited(
out sTarget: string,
in nMaxTarget: number,
in sSource: string,
in sLeftVal: string allownull,
in nLVOccurrence : number,
in sRightVal : string allownull,
in nRVOccurrence : number,
in nFlags: number ): boolean;
Segue难道不知道这阅读全文>
发表于 @ 2006年07月02日 00:37:00|评论(loading...)|编辑
以前写过一些文章痛批当下流行测试软件的自动化功能。比如Segue的SilkPerformer(现在是Borland的了),Mercury Interactive的Quick Test Professional(QTP),和Segue的SilkTeset。最近CSDN上诸多老大推荐这些工具。俺觉得有必要旧话重提。毕竟我们有更好的选择。所以改写了一下那些文章,在这里帖出来。今天先聊SilkPerformer。以前这篇文章谈到对Web应用的测试自动化工具的要求,而这里我们可以看看SilkPerformer是怎么与那些要求背道而驰的。
SilkPerformer的脚本语言叫BDL,Benchmarking Definition Language。这个语言就像一帮30年前的业余程序员设计的玩具,毫无章法。每次用BDL写测试代码,我都一边奇怪自己上辈子造了什么孽,以至于横遭BDL凌虐,一边想找块豆腐撞死,还一边感叹祥林嫂其实没那么可怜。当时我和同事一致抱怨,测试不是人啊?凭什么用那么下作的编程语言?
用SilkPerformer在线帮助的话来说,BDL是一款用于负载测试的动态语言。我就不明白,阅读全文>
发表于 @ 2006年07月01日 13:53:00|评论(loading...)|编辑