git 使用笔记 (1)

记录一下实际使用过程中用到的命令和结果,不分解过程,也比较零散。详细的分析可以参考这本书:《Pro Git》

本地操作

要对某个目录进行版本控制,可以在该目录下执行命令(假设工作目录是 git-test,里面只有一个文件 a.txt):

git init

之后会看到提示:

Initialized empty Git repository in /path/to/git-test/.git/

在 git-test 目录下生成一个目录 .git,里面就是 git-test 的版本信息。git 只会在根目录下建立一个 .git 目录包含所有的信息,而不像 svn 一下在各个子目录下都建一个 .svn 目录。

建立了目录信息,但是 git 不会主动把目录下的所有文件或子目录都纳入版本控制中,必须手动添加要 git 进行版本控制的内容。如果要将 a.txt 加入版本控制,执行下面的命令:

git add a.txt

阅读全文…

programming in lua (1)

《programming in lua》第二版第 1-2 章。

运行环境

这里使用的 lua 版本是 5.1.4,操作系统是 debian 6.0,

到 lua 的官网下载源码包,因为是 ANSI C 写成的解析器,所以在各个平台上编译都很方便。编译之后会在源码目录里的 src 下生成两个可执行文件:lua 和 luac,其中 lua 用来解析脚本,luac 用来把脚本编译成二进制文件。在源码包里也带有一些例子,在 test 目录下。例如可以用下面的命令来运行 test 下的例子(假设当前目录为解压后的源码根目录):

./src/lua test/hello.lua

或者使用 luac 把脚本转换成二进制文件:

./src/luac test/hello.lua

默认的输出文件是 luac.out。接着可以使用 lua 来运行这个二进制文件:…

阅读全文…

kvm 的使用和配置

(2020.02.04 更新) 好多参数在 qemu 4.2.0 都失效了。直接装个管理工具(例如 virt-manager)在图形界面操作就好了,忘掉这些命令行参数吧……


之前用的是低端本本,32 位的 u 还不支持 vt,虚拟机用的是 virtualbox,虽然挺好用,但是每次升级内核都得重新编译一遍模块,有时还不一定能编译过,所以尽管版本升到 4.0,一直在用的都是 1.6.6 版,虽然简陋点,但是写写文档用用网银还是能满足的。

买了新本第一时间就把 kvm 装上了。kvm 的全称是 kernel-based virtual machine,从 2.6.20 开始集成到内核中。不过 kvm 需要 cpu 的 vt 技术支持,图形性能也不如 virtualbox 和 vmware 的好,但是 cpu 和内存的占用个人感觉要比前两者好。

刚装的时候用的是深度的精简版 xp,结果风扇狂转,cpu 占用率 …

阅读全文…

xpdf 配置笔记

先说一下系统环境是 debian 6.0.2,xpdf 版本是 3.0.2。

为神马要强调一下环境呢?因为以前用 kpdf 有乱码的时候可以装 xpdf-chinese-simplified(kpdf 是基于 xpdf 的,大概是 debian 4.0 的时候这个包还在),但是现在搜了一下已经没了,然后从网上下了一个 deb,安装的时候说要 xpdf-common 这个包,一搜又没有了(直接到源网站上可以找到,是 debian5 的版本,但是用 aptitude search 搜不到,应该是在 6 中被移除了)。

把 pdf 的背景颜色改为浅绿色(#cce8cf),这样看的时间长了眼睛不容易累,但是一直都没找到 evince 的修改 pdf 背景颜色的选项,想装回 kpdf 又找不到(kde4 的 pdf 阅读器已经改为 okular 了,功能强大,依赖的包也更多,装个看 pdf …

阅读全文…

字符串匹配之 KMP 算法

某天在群里看到 井大侠 提起传说中的“看毛片”算法,在网上搜到一篇好文章(见参考资料 [1]),发现从有限状态自动机的角度来理解可能会更容易一些。

简单的逐个字符比较

最简单的匹配算法是将两个字符串第一个字符对齐,然后开始逐字符比较。当在某个位置发现不匹配时,把模式串向右移动一个字符,再从模式串的第一个字符开始与主串对应位置的字符开始比较。例如要从字符串 T 中查找模式串 P,比较过程如下:

                        1                   2
pos 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
T   A B C Z 

阅读全文…

gdb 自定义命令

平常不怎么用 gdb,一般也就是找一下内存访问错误的地方然后加 printf 语句定位。这两天重写红黑树,发现新写的和原来写的输出不一致,但又不知道哪个是错的,在打印日志无果的情况下,决定试试单步调试。很多时候选择打印日志而不是单步调试是因为觉得调试有点慢,一步步走着走着自己就晕了……

不说废话了,先说一下自定义命令的方法。在家目录下建立 .gdbinit 文件,里面写上要定义的命令,gdb 启动的时候会读取这个文件里的命令,这样在调试过程中就可以使用这些自定义命令了。定义命令的方式为:

define mycmd
...
end

还可以为这条自定义的命令加上注释,这样当使用“help mycmd”的时候就会显示这些注释:

document mycmd
comments here ...
end

如果需要传递参数,可以使用 $arg0,$arg1, …,$arg9 等。例如:

define print_int
p $arg0
end

这样如果在 gdb 中使用“print_int a”时,就会打印整型 a 的值。…

阅读全文…

在本机搭建 wordpress 的一些问题

这里主要是记录一下在本地搭 blog 过程中遇到的一些问题。

这个 blog 使用的是的 wordpress 3.4.x 汉化版,插件有 google xml sitemap,wp-pagenumbers(翻页插件),wp-syntax(代码高亮)。

导入导出最好使用 cpanel 中的备份功能,如果使用 wordpress自带的导入导出功能(wordpress_importer),再次导入的时候反斜杠会丢掉!

安装apache,php和mysql

安装主题

把主题解压到 $WP_ROOT/wp-content/themes/主题名/ 下即可在“外观-主题”中找到。有时用 ftp 上传会出现错误。

修改固定链接

默认的链接名“?p=xxx”很不爽,也不利于搜索引擎检索。可以在“设置-固定链接”中修改成自己想要的格式,这个功能需要 apache 的 mod_rewrite 模块。

这里要提一下的是在本地搭建的时候可能还没有 .htaccess 文件。文件的位置应该是 wordpress 的根目录,也就是和 wp-config.php 同一层。把 .htaccess 文件修改权限为 777,然后在控制版中的“设置-固定链接”修改,保存文件,为防止误改,最后再把权限改回 644。…

阅读全文…