编写Wireshark协议解析器插件(一)

容易忘事,把解决的问题记下来。只是草稿。

参考资料

wireshark是开源软件,可以在版权许可下进行二次开发。有三种方式为其添加协议解析(protocol dissection)功能:

  • 内置解析器
  • 动态链接库形式的插件解析器
  • Lua或Python语言的插件解析器

Continue reading

Knuth老爷子的一段话

Seibel: 很多人都赞同你所说的,自己写代码更有乐趣。但除了乐趣之外——

Knuth: 不仅仅是乐趣而已。数学家的工作是给出证明,但在你求解数学问题时,几乎找不到某个定理的假设和你求解问题所需的假设恰好一模一样。通常来说,你已经得到了一个类似于书上定理的东西,你要做的就是看看它的证明,然后说,“嗯,为了证明我手头现有的假设,我要这样改动一下这个证明。”所以说,虽然数学书里总是塞满了定理,但你永远找不到严丝合缝的那个。你想看见的还是那个需要改动的证明,因为正好找到你想要的定理的概率只有百分之一。我认为这和软件的情况恰好吻合。

Seibel: Many people will agree with you that, yes, it’s more fun to write the code yourself. But other than the fun—

Knuth: It’s not only fun. The job of a mathematician is to make proofs but almost never, when you’re solving a mathematical problem, do you find a theorem for which the hypotheses are exactly what you need for the problem you’re solving. Almost always you’ve got something that’s sort of like the theorem that’s in the book. So what you do is you look at the proof of that theorem and you say, “Oh, here’s how I have to change that proof in order to prove the hypothesis that I really have.” So mathematical books are packed with theorems, but you never plug in exactly the theorem—you want to see that proof because it’s one time in a hundred when you’ll find just the theorem that you wanted. I think it’s exactly the same with software.

选自:Peter Seibel. Coders at Work : Reflections on the Craft of Programming. APress, 2009。中译本将由人民邮电出版社图灵公司翻译出版。

正好解了自己一段疑惑。

 

推荐几本书

  • Principles of Computer System Design : An Introduction
    MIT6.033 ”Computer Systems Engineering”的Lecture Notes结集出版而成。不抽象、不具体,对CS中的各种principle和idea讲得恰到好处。这本书第一卷在网上购买,国内也有影印版。第二卷作者将其available on-line了。特别推荐这本书和这门课。
  • Binary Hacks,O’Reilly
    对开发中的二进制文件进行byte级别的hack,由一篇篇tips构成,侧重于操作。今天刚刚翻到这本书,觉得和正在读的《程序员的自我修养——链接、装载与库》一起看不错。这本书有中译本
  • Pragmatic Bookshelf
    这是个出版公司,我觉得他们的书都挺有意思的。刚刚看完《高效程序员的45个习惯:敏捷开发修炼之道》,正准备开始翻他们的《版本控制之道》、Ship It! A Practical Guide toSuccessful Software Projects
  • The Elements of Style
    这本书已经有92年的历史,所以必然是与计算机无关的。事实上,这是一本非常优秀的关于英文写作的小册子。它将一些构句的基本原则以rules的形式列举出来,并且通过例子加以对照、解释、说明。它只有不到50页,阅读起来并不费时间。我曾经打算翻译这本书,但发现作为一本英语文法的书,还是保持原汁原味比较好。至于从哪里获取……我记得著作权一般死后只保留50年吧,你们懂的。

 

利用GoogleCL,实现Vim编辑Google Docs文档(及其他Google服务的命令行方式)

一、为什么要这么做?

Google Docs文档保存在云端,具有比本地更高的安全性和可用性,也便于共享与协作。但它采用基于浏览器的所见即所得编辑器,编辑过程中鼠标操作较为频繁。因此可以采用本文的方法,实现使用Vim创建和编辑Google Docs文档。

Continue reading

05.20-06.16新书观察

我觉得自己还是务实一点的好。因此在本期,对于大家所熟知的书我就不废话了;也有一些领域我并不了解,因此只是将我认为重要的新书列举出来而不评价(可以放心的是,谭浩强的《C语言程序设计》这个月新出了第四版,这种书是绝对不会出现在我的列表中的)。

总之,我将自己的工作定位为列举,而好坏还是希望大家自己判断。我认为主要的依据有:

  • 个人的经验
  • 书的目录、前言
  • amazon、豆瓣、china-pub的书评(amazon的评论是相当有价值的,china-pub的评论是相当严格甚至过分的)
  • 该书的历史低位、作者/译者的情况

Continue reading