More on Continuation

我在前一篇文章中用构造二叉树的 iterator 的例子来介绍了一下 Continuation 。Jack 在评论中向我提了两个问题: many people know about the CPS transformation, and callcc as a means to get hold of the implicit continuation (”the rest of the computation”), but we often have a hard time using continuations: there’s a large gap between [...]

Linux World 2007 @ ZJU

今天是 Linux World 2007 @ ZJU 系列活动的第二场,嗯,我也作为主讲人之一。今天的主题是 Emacs 和 Vim ,三个主讲人,step 和我讲 Emacs 、Rhythm 讲 Vim 。我本来是准备了两套资料,如果气氛还好就讲“Emacs 生存指南”;如果场面不够活跃的话我就退出精心准备的秘密武器了——各种各样关于 Emacs 的趣闻。 最后还是选择了后者,虽然还是有些紧张,不过我想这次讲座有进步,比上次好了。至少场下都笑了,我的目的就达到了,因为 Emacs 的基础知识的话,step 在前面都讲得差不多了。总之大概还是比较成功的一次讲座了:上次 MSTC 的 [...]

Continuation

Continuation 是什么?简而言之,就是代码执行状态,利用它可以把当前的执行状态保存起来,以供以后调用。Scheme 应当是最早支持完整的 Continuation 的语言了,事实上从理论上来说,任何支持 Closure 的语言都能手工实现 Continuation ,不过许多语言还是提供了现成的 Continuation 的支持,例如 Ruby 就有一个类似于 Scheme 的 call/cc(call-with-current-continuation) 的函数 callcc (因为“/”在 Ruby 里面不能作为变量名,所以最多只能做到这么像了 ;) )用于支持 [...]

修改参数造成的问题

这次也是做 Numerical Analysis 的作业出现的问题了。按照惯例,是学生提供一个函数,让 OJ 的 main 函数来调用,得到结果。这次是迭代取得矩阵最大特征值的题目,那个被调用的函数中传递进来一个二维数组 a 用来表示矩阵。

2007 冬季毅行

毅行是 ZJU 的传统项目了,沿山路从玉泉校区出发走到之江校区。以前参加过两次,第一次是加入国防社团的队伍,记得好像是暴走了,到得还挺早的;第二次是我们 cc98 Linux 天地版自己组织了三个队伍,因为天气原因临时改道,所以后面走得比较轻松;这次是加入了 MSTC 的老字号“MSTC 休闲观光队”。

Google Reader 终于有推荐功能了

Google Reader 终于有推荐功能了,那么多数据,也终于开始挖掘了。点那个“Discover”按钮,就能够看到推荐的种子,不像以前那样分类列表排出来,这个是按照你自己的爱好来做推荐的,感觉还不错。 :)

smart-snippet update: skip field with the same name

Consider the following snippet for TeX: \begin{$${env}} $. \end{$${env}} You may want to fill env and go directly to $.. But pressing TAB will bring you to line 3, and then line 2 -- where you want to go. Here the problem is when you've filled a field, what's your next action by pressing a TAB? If [...]

org-mode 中打开链接

最近在准备在下次 Linux World 2007 @ ZJU 讲座的 Presentation ,其中有一个 video ,想在 org-mode 里面直接打开。org-mode 处理链接的能力还是比较强的,按 C-c C-o 打开链接 如果是文件内部链接的话,它会直接跳到那里。 如果是普通文本文件,会直接用 Emacs 新开一个 buffer 打开。 其他各种类型的文件都会用合适的程序打开。例如我在 Debian 里装了 xloadimage ,它会用这个程序来打开图片。 不过当我打开 video 的时候它选择了 gmplayer ,而不是 mplayer 。我自己不太喜欢 [...]

Emacs Timeline

我曾经在我的 wiki 上帖过一个 Emacs 的 Timeline ,最近收集资料的时候想找新版本的 Timeline ,正好找到了画这个 Timeline 的作者:Jamie Zawinski ,他画的 Timeline 已经有更新了,把最新发布的 Emacs 22 也包含在了里面。我把他转帖过来了:

smart-snippet.el update: properly undoing in a snippet

A user of smart-snippet reported a bug to me today. The behavior of undoing in a snippet is confusing. In fact I've noticed this bug a long time ago, even before I write smart-snippet.el -- it's a bug if snippet.el . But I never try to fix it, I thought it might be impossible or at least difficult [...]

关于抢 IP

忘记从什么时候开始,蓝田的 ip 严重不够用了,如果是晚上再开电脑的话,基本上就申请不到 ip 了,争夺非常惨烈。有时候申请不到 ip ,也很郁闷地想“抢”一个 ip 来用用,可惜我不知道方法。最近突然去图书馆借了那本《计算机网络,自顶向下方法和 Internet 特色》来看了看,大致上明白了其中的过程。

Emacs 生存指南

Emacs 生存指南pluskid2007 年 11 月 作为一个历史悠久的程序,网上有不少相关资料,总结一下,大致可以分为一下几类: 电子书:例如 O’ Reilly的《Learning GNU Emacs》以及 Sams系列的《Sams Teach Yourself Emacs in 24 Hours》等,从头至尾系统地讲解了 Emacs 的方方面面,非常详细。 文档:Emacs 自带了有交叉索引的文档,其中还包括 Elisp 介绍以及详细文档等,在 Emacs 里查阅非常方便。 Blog 文章:多是介绍一些特性或者技巧之类的,比较零散。 [...]

纪念 cc98 威望彩蛋关闭

今天去 cc98 Linux 天地版,看到阿杆发的一个帖子,说起 quark 泄露了威望彩蛋的事情。去的时候已经有四五页的帖子了,基本上就是技术组的几个人和 Linux 版上的一些人在争吵,吵着似乎有些跑题了,都在谈论态度,甚至有人身攻击的倾向,及其不和谐啊。也许是我老了,我不太明白大家为什么发这么大的火,不过这次的事情我自己也有份,所以也连忙去劝解。

售后服务的感想

今天在 Bill Clementson 的 Blog 上看到一篇关于苹果公司售后服务的文章。他三年前买了一个 Mac Book ,最近屏幕上出现了一个细条,他拿去修理,那边的人告诉他屏幕需要更换,可是暂时缺货,他便准备先凑活着用。第二天那边打电话来告诉他可能 LCD 显示屏段时间内还到不了货,他这个问题无法及时得到解决,因此他可以用他的旧的 Mac Book 来换一个全新的 Mac Book Pro 。CPU 是从 1.67 GHz PPC 到 2.4 GHz Intel Core 2 Duo ,内存是从 1 GB 到 2 GB ,硬盘是从 100 GB 到 160 GB [...]

Memory Barrier

今天在 freecity 的 DistributedSys 版看到在讨论 memory consistency 的问题,潜水的时候看到 shifan 给的两篇文章,其中一篇 barrier 中有一个例子,就是在没有 barrier 的情况下顺序乱掉了,对这个东西一直一知半解,所以也决定实践一把,就照着类似地写了一个程序: #include #include #define ITERATIONS 500000000 typedef volatile unsigned int T; T var1 = 0; DWORD WINAPI writer(T *pvar2) { while (1) { [...]