fanfou.el

    我在emacswiki上找到了twitter.el,可是我不常用twitter, 但是经常泡在fanfou上.简单的改了一下,现在能用到饭否上来了!

    也就加了几句,让它能支持中文.

   没有在twitter.el的基础 上添加什么功能,只能:

  •   更新状态
  •   查看自己和好友的消息.

安装请看fanfou.el

不想每次都输入密码的话就把68, 74行的nil改成你的用户名和密码就好了!

下载: fanfou.el

Posted in script | 1 Comment

分析一个源代码,一个有效的方法

分析一个源代码,一个有效的方法是:  1、阅读源代码的说明文档,比如本例中的README, 作者写的非常的详细,仔细读过之后,在阅读程序的时候往往能够从README文件中找到相应的说明,从而简化了源程序的阅读工作。

  2、如果源代码有文档目录,一般为doc或者docs, 最好也在阅读源程序之前仔细阅读,因为这些文档同样起了很好的说明注释作用。

  3、从makefile文件入手,分析源代码的层次结构,找出哪个是主程序,哪些是函数包。这对于快速把握程序结构有很大帮助。

  4、从main函数入手,一步一步往下阅读,遇到可以猜测出意思来的简单的函数,可以跳过。但是一定要注意程序中使用的全局变量(如果是C程序),可以把关键的数据结构说明拷贝到一个文本编辑器中以便随时查找。

  5、分析函数包(针对C程序),要注意哪些是全局函数,哪些是内部使用的函数,注意extern关键字。对于变量,也需要同样注意。先分析清楚内部函数,再来分析外部函数,因为内部函数肯定是在外部函数中被调用的。

  6、需要说明的是数据结构的重要性:对于一个C程序来说,所有的函数都是在操作同一些数据,而由于没有较好的封装性,这些数据可能出现在程序的任何地方,被任何函数修改,所以一定要注意这些数据的定义和意义,也要注意是哪些函数在对它们进行操作,做了哪些改变。

  7、在阅读程序的同时,最好能够把程序存入到cvs之类的版本控制器中去,在需要的时候可以对源代码做一些修改试验,因为动手修改是比仅仅是阅 读要好得多的读程序的方法。在你修改运行程序的时候,可以从cvs中把原来的代码调出来与你改动的部分进行比较(diff命令), 可以看出一些源代码的优缺点并且能够实际的练习自己的编程技术。

  8、阅读程序的同时,要注意一些小工具的使用,能够提高速度,比如vi中的查找功能,模式匹配查找,做标记,还有grep,find这两个最强大最常用的文本搜索工具的使用。

  对于一个Unix/Linux下面以命令行方式运行的程序,有这么一些套路,大家可以在阅读程序的时候作为参考。

  1、在程序开头,往往都是分析命令行,根据命令行参数对一些变量或者数组,或者结构赋值,后面的程序就是根据这些变量来进行不同的操作。

  2、分析命令行之后,进行数据准备,往往是计数器清空,结构清零等等。

  3、在程序中间有一些预编译选项,可以在makefile中找到相应部分。

  4、注意程序中对于日志的处理,和调试选项打开的时候做的动作,这些对于调试程序有很大的帮助。

  5、注意多线程对数据的操作。(这在本例中没有涉及)

  结束语:

  当然,在这篇文章中,并没有阐述所有的阅读源代码的方法和技巧,也没有涉及任何辅助工具(除了简单的文本编辑器),也没有涉及面向对象程序的阅读方法。我想把这些留到以后再做讨论。也请大家可以就这些话题展开讨论。

可利用的工具:

1.gdb

2.vim,emacs,etags,global,grep,cscope

3.大胆的猜测作者的想法!

大的项目:

最近有做源码阅读的事情,觉得有些费尽,做了一些思考。
一个大项目的源代码,不要过份详细的阅读。大项目,其代码量基本上是可以吓死人的。过份的关注细节,常常会拘泥于细节,而忽略了整体框架。当你能够看清框架的时候,亦花费了太多的时间。
因 此,阅读一个大项目的源代码,其目的不在于欣赏代码细节,而在于迅速看清项目整体框架的大概面貌:都有那些模块,这些模块是干嘛的(不关心具体怎么干), 模块之间的通讯机制大概是怎样的,然后在考虑子模块,通常只要掌握两级子模块就够了。花上1,2天的时间掌握这一切,就达到了阅读大项目源码的目的。因为 一旦你掌握了框架,你就可以按照这个框架实现这个项目,虽然和原项目全然不同,但是完成的需求却是一样的。
在软件中,架构才是本质。
也许你指望详细阅读大项目源代码能看到高质量的代码,但是,大项目通常都是团队的劳动成果,每个人的不同水平造就了代码质量的高高低低,一个人在不同时间不同环境的代码质量也是不同的。要指望在大片源码面前找到高质量,简直是天方夜谭。
也 许你要从阅读源码中掌握某项技术细节,比如bsp,又或者换装,那么,最好的建议是查找相关的技术文档以及文档上所附带的sample code,这种sample code一般不会附带任何干扰,简洁得只是为了证明该技术而存在的。如果没有这些东西,而只能从大项目源码中找的话,你提前先了解了框架,能更快的查找和 定位到表达该技术的文件。但是通常都会比较不幸,因为你为了明白这一技术,通常要先理解混入其中的另一技术。
最后谈谈怎样才能阅读到高质量的源代 码。何谓高质量?是指算法出人一表(比如某种o(1)的排序法)?还是采用了极端深奥的语言特性将某实现完美表达(比如模板的灵活运用)?无论是哪种,最 好的来源是书,如《STL详解》,或者《inside XX》这样的东西。书的作者通常就是这些高质量代码的作者,他会带领你探索这些源码背后的真莫道不消魂相。

Posted in 未分类 | Leave a comment

进行有效编辑的七种习惯

进行有效编辑的七种习惯
Bram Moolenaar

如果你的很多时间是用来敲纯文本,写程序或HTML,那么有效地使用一个好的编
辑器能节省你不少时间。这篇文章里的指导和提示将有助于你更快工作,更少犯
错误。

文中采用开源文本编辑器Vim(Vi IMproved)说明有效编辑的思想,但这些思想也
适用于其他编辑器。择合适的编辑器只是有效编辑的第一步,对于哪个编辑器更
好的讨论将占很大地方,这里就不提了。如果你不知道该用哪个编辑器,或者对
现在所使用的不太满意,不妨试试Vim;你是不会失望的。

第一部分:编辑一个文件

快速定位

编辑中大部分时间是花费在阅读、查错和寻找应该进行编辑的地方上,而不是插
入新文字或进行修改。在文件中不断定位(navigate)是经常要做的,所以最好学
会如何快速地进行。

你常会搜寻文档中的一些文字。或者找出包含特定词或词组的行。你当然可以使
用搜寻命令 /pattern,不过还有更聪明的方法:

Continue reading

Posted in 佳软 | Leave a comment

icewm

一个很好用的x window窗口管理器!

帖一张我的截图:

icew-desktop.png

Posted in 未分类 | Leave a comment