六月 30, 2009

xiao qiang

两天时间,很快地看了一遍《小强升职记》,感触很深。

每次看到此类好书,总是忍不住责问一句:“为什么学校不教这样的东西呢?!”还有就是感慨一番,只有在全民拥有出版权利的时代,才可能看到这样的书籍,那些专家教授是指望不上了。

看完此书,审视自己的工作习惯,仍然属于拿到活埋头就干的愣头青型。没有分析、没有分解、没有计划,就像一只没头苍蝇。

分析了一下自己不做分析、不做分解以及不做计划的深层次心理原因,是因为我认为做这些事根本就是浪费时间、毫无用处。我尝试过,没用!因为我不知道该怎么做,没人教,也无处学。同时,我进入编程这一行,正是瀑布式开发模型由神坛跌入人间的时候,对它的批评不绝于耳,造成我在心理上对分析计划一类的工作十分反感、厌恶。

最后分享一下书中提到的一个方法,叫时间日志,就是每天记录自己从几点几分到几点几分干了什么,一周之后拿出来看一下。小强的总结之一是:上网聊天以及和同事聊天是这五天的主要内容。:-)

这个和记账有点类似,不记的时候根本不知道钱都花到哪里去了,就知道自己是月光。记了一个月之后一看,被自己吓了一跳,我这都是在干什么呀?!

六月 29, 2009

Michael Jackson

最近发生的事情比较多,对我造成了很大的震动,于是打算改变blog的风格,不再局限于技术的乐趣,准备增加一些提问的乐趣。

开放性的问题,没有标准答案,甚至我自己也不会回答。

今天就从Michael Jackson开始。

我订阅的blog以技术类为主,所以看到的多是这样的标题:

甚至

突然,我很好奇,“上一次是谁?”

或者,还有谁,能够制造如此之大的轰动。

Michael Jackson仅仅是个rock star?!仅仅是个天皇巨星吗?!在一个满大街都是天皇巨星的年代,一定有很多人不喜欢这样的称呼。不信,你问问自己,在你所在的那个国家,有没有这样一个艺人,当他离开的时候,你会感到很失落,仿佛自己的灵魂也被带走了一部分;你会告诉自己,一个时代终结了。

Michael Jackson有不少负面新闻,“漂白”便是其中之一。所以,你可以无法避免地读到类似如下内容的文章

我很想知道,如果你心目中的那个重量级人物,也传出这样那样的负面新闻,你会有怎样一种情绪?以及,当事件的真实性得到证实或否定的时候,你又是如何面对自己当初的那份情绪的。

六月 25, 2009

Ping Tunnel

Ping Tunnel项目首页的副标题是For those times when everything else is blocked。至少还有ping,对吗?!

也许明天,连PING都是一种奢望!

六月 22, 2009

Delayed incremental occur with anything

occurisearch-forward-regexp相比的优势是能够看到所有的匹配结果,不足是不能随着输入动态更新匹配结果。配合使用anything.el,就可以两全其美。

(defun wl-anything-delayed-occur-candidates ()
  (setq anything-occur-buf (get-buffer-create "*Anything Occur*"))
  (with-current-buffer anything-occur-buf
    (erase-buffer)
    (let ((count (occur-engine anything-pattern
                               (list anything-c-source-occur-current-buffer)
                               anything-occur-buf
                               list-matching-lines-default-context-lines
                               (if (and case-fold-search search-upper-case)
                                   (isearch-no-upper-case-p anything-pattern t)
                                 case-fold-search)
                               list-matching-lines-buffer-name-face
                               nil list-matching-lines-face
                               (not (eq occur-excluded-properties t)))))
      (when (> count 0)
        (let ((lines (split-string (buffer-string) "\n" t)))
          (cdr lines))))))

(defvar wl-anything-c-source-delayed-occur
  '((name . "Occur")
    (init . (lambda ()
              (setq anything-c-source-occur-current-buffer
                    (current-buffer))))
    (candidates . wl-anything-delayed-occur-candidates)
    (action . (("Goto line" .
                (lambda (candidate)
                  (goto-line (string-to-number candidate)
                             anything-c-source-occur-current-buffer)))))
    (requires-pattern . 3)
    (volatile)
    (delayed)))

(defun wl-search ()
  (interactive)
  (anything 'wl-anything-c-source-delayed-occur nil nil nil nil "*Anything Occur*"))

六月 18, 2009

Query replace regexp from anything

query-replace-regexp让人最尴尬的时刻便是输入了半天结果什么都没做,因为实际上正则表达式写的有点问题,什么都没有匹配上。anything-query-replace-regexp很好的解决了这个问题,它会随着你输入正则表达式而动态显示匹配结果。不如就用它取代query-replace-regexp吧。

(global-set-key (kbd "M-%") 'anything-query-replace-regexp)

六月 15, 2009

Enhance yank with anything

配合最近的anything-config.el和下面的配置,可以让yank变得更强大,只需一次M-y,就可以列出kill-ring里面的所有内容,并随意选择其中任何一个。

(global-set-key (kbd "M-y")
                '(lambda ()
                   (interactive)
                   (let ((anything-enable-digit-shortcuts nil))
                     (anything-show-kill-ring))))

六月 10, 2009

Incremental bbdb search

最近的anything-config.el包含多个新的anything source,其中一个就是anything-c-source-bbdb,通过使用如下函数,我们可以实现搜索结果随着输入动态变化。

(defun wl-bbdb ()
  (interactive)
  (if anything-c-source-bbdb
      (anything '(anything-c-source-bbdb))
    (bbdb)))

如果没有anything-c-source-bbdb,我们则使用原装搜索功能。

六月 04, 2009

org-mode publishing

在主观愿望与客观条件的双重压迫下,我开始尝试org-mode publishing作为内容发布的一种方式,目前仍处于探索中。源代码在http://www.wanglianghome.org/svn/org/,发布的内容参见http://www.wanglianghome.org/org/。不可否认,org有点多,但我没想到更好的。页面很丑,我又缺乏美化的专业知识,也只能慢慢来了。

由于org-mode的发布功能很强大,makefile就写得比较简单。没有选择直接发布到远程服务器是因为网络速度限制,对实现频繁发布、预览有困难,因此首先选择发布到本地,检查无误之后,再一并同步到远程服务器。由于使用了rsync,可以将网络流量进一步减少。

org-publish这个函数的说明和实现都很简单,试了好久才明白怎么用,具体参见http://www.wanglianghome.org/svn/org/trunk/publish.el

另外就是同步到远程服务器每次都要输入密码很麻烦,我选择重用SSH连接的方式,避免了密码输入。