博客
使用 python 对 txt 格式的小说进行处理
vim 的确是神器,可惜 sed 与 vim 不完全通用。这篇文章受《 用 vim 对 txt 格式的小说重新排版》的启发,在此致谢! 经常下载 txt 的电子书,格式却不合心意,只好自己再处理。首要的就是处理段内换行。 原来的打算是定制一个 vim 模式,到时候处理小说时进入该模式,再使用各种快捷键。以此避免 txt 快捷键对日常编程的干扰。后来发现,vim 不像 emacs,可以定制自己的模式。(可能可以定制专用的 vimrc 解决,未经尝试) 于是转向脚本寻求解决办法。sed 与 awk …
vim 的确是神器,可惜 sed 与 vim 不完全通用。这篇文章受《 用 vim 对 txt 格式的小说重新排版》的启发,在此致谢! 经常下载 txt 的电子书,格式却不合心意,只好自己再处理。首要的就是处理段内换行。 原来的打算是定制一个 vim 模式,到时候处理小说时进入该模式,再使用各种快捷键。以此避免 txt 快捷键对日常编程的干扰。后来发现,vim 不像 emacs,可以定制自己的模式。(可能可以定制专用的 vimrc 解决,未经尝试) 于是转向脚本寻求解决办法。sed 与 awk …
RLE 游程长度编码
昨天看心情好,就花了两个小时写了个 RLE 的 demo,可是 p7zip 帮我删了。。。晚上再写,用 gcc rle.c -o rle.c 脑抽啊我 今天不死心,再写了一个!【RLE 压缩 】 RLE 是基于这样一种思路:如果整个文件由 A 构成,那么我们只需要用 A 次数去表示该文件就可以了。 为了表示序列开始,需要一个标识符,我选择了 0xff。这样,每个序列就表示为 0xff 字符 次数。 当单个字符出现次数少于 3 的时候,压缩就得不偿失,因此对小于 3 个字符的不处理而直接输出。 详 …
昨天看心情好,就花了两个小时写了个 RLE 的 demo,可是 p7zip 帮我删了。。。晚上再写,用 gcc rle.c -o rle.c 脑抽啊我 今天不死心,再写了一个!【RLE 压缩 】 RLE 是基于这样一种思路:如果整个文件由 A 构成,那么我们只需要用 A 次数去表示该文件就可以了。 为了表示序列开始,需要一个标识符,我选择了 0xff。这样,每个序列就表示为 0xff 字符 次数。 当单个字符出现次数少于 3 的时候,压缩就得不偿失,因此对小于 3 个字符的不处理而直接输出。 详 …
SICP 与函数式编程
马马虎虎地看完了第四章跟第五章,终于可以为 SICP 这本书画上一个句号。 似乎 GCD 跟 fibonacci 这两个程序在每门语言里都会被实现一遍。这应该是涉及到递归的定义吧,对于函数式编程来说,递归是深刻而基础的,循环可以没有,递归不可或缺。特别是 fibonacci 的双递归,一方面考验了编程使用者的技巧,另一方面考验了这门编程语言的实现。(参见 维基百科 ) 其中印象比较深刻的,是将函数作为参数和返回值。而且在 scheme 的语法中,显得非常自然。C 中也有函数指针,相对地就显得复杂 …
马马虎虎地看完了第四章跟第五章,终于可以为 SICP 这本书画上一个句号。 似乎 GCD 跟 fibonacci 这两个程序在每门语言里都会被实现一遍。这应该是涉及到递归的定义吧,对于函数式编程来说,递归是深刻而基础的,循环可以没有,递归不可或缺。特别是 fibonacci 的双递归,一方面考验了编程使用者的技巧,另一方面考验了这门编程语言的实现。(参见 维基百科 ) 其中印象比较深刻的,是将函数作为参数和返回值。而且在 scheme 的语法中,显得非常自然。C 中也有函数指针,相对地就显得复杂 …
视频数据编解码技术
我真的很难专心持续做一件事情呢,最近因为课程需要写了篇文章应付,博诸君一笑 ** 视频编码与文件格式的常见误区 ** 常见的视频编码 MPEG2 MPEG-2 是 MPEG 工作组于 1994 年发布的视频和音频压缩国际标准。MPEG-2 通常用来为广播信号提供视频和音频编码,包括卫星电视、有线电视等。MPEG-2 经过少量修改后,也成为 DVD 产品的核心技术。MPEG-2 的系统描述部分(第 1 部分)定义了传输流,它用来一套在非可靠介质上传输数字视频信号和音频信号的机制,主要用在广播电视领 …
我真的很难专心持续做一件事情呢,最近因为课程需要写了篇文章应付,博诸君一笑 ** 视频编码与文件格式的常见误区 ** 常见的视频编码 MPEG2 MPEG-2 是 MPEG 工作组于 1994 年发布的视频和音频压缩国际标准。MPEG-2 通常用来为广播信号提供视频和音频编码,包括卫星电视、有线电视等。MPEG-2 经过少量修改后,也成为 DVD 产品的核心技术。MPEG-2 的系统描述部分(第 1 部分)定义了传输流,它用来一套在非可靠介质上传输数字视频信号和音频信号的机制,主要用在广播电视领 …
C 程序设计语言答案 chapter3
第三章答案 主要围绕 itoa 做文章,加深对整数类型的理解和字符串数组的操作。 第三章貌似是一个转折点,前面的练习更加像一些玩具,后面的会更有挑战性。
第三章答案 主要围绕 itoa 做文章,加深对整数类型的理解和字符串数组的操作。 第三章貌似是一个转折点,前面的练习更加像一些玩具,后面的会更有挑战性。
C 程序设计语言答案 chapter2
时不时练习一下还是蛮过瘾的,不过后面的习题应该会挺有难度吧,期待 ing 第二章答案
时不时练习一下还是蛮过瘾的,不过后面的习题应该会挺有难度吧,期待 ing 第二章答案
C 程序设计语言答案 chapter1
最近面试屡屡受挫,搞得颇为狼狈。断断续续地看完了 K&R 的 C Bible,刚把第一章的习题完成了。不得不说,这本薄薄的小书习题很有质量。对于指针的运用很有启发,给了我很多的灵感。看完很想说:原来 C 语言还可以这样用! 习题都是自己做的,若有错漏,还请不吝赐教。 ch1
最近面试屡屡受挫,搞得颇为狼狈。断断续续地看完了 K&R 的 C Bible,刚把第一章的习题完成了。不得不说,这本薄薄的小书习题很有质量。对于指针的运用很有启发,给了我很多的灵感。看完很想说:原来 C 语言还可以这样用! 习题都是自己做的,若有错漏,还请不吝赐教。 ch1
ubuntu 下 svn 上传到 googlecode
在 Google code 上也混迹了一段时间,提交 patch 和 issue 都试过了,可惜一直没找到哥们给个 commitor 当当。今天特地去挖了个坑,试试 owner 的滋味。 在 source 下的 checkout 里,可以很清晰地看到需要填写的命令。可是 ubuntu 的 svn 有点诡异,以 ownership checkout 一个 project,居然也不需要输入密码,搞了我很长时间。 更纠结的还在后头,svn add 添加完文件,svn commit 进行提交,发现首先要 …
在 Google code 上也混迹了一段时间,提交 patch 和 issue 都试过了,可惜一直没找到哥们给个 commitor 当当。今天特地去挖了个坑,试试 owner 的滋味。 在 source 下的 checkout 里,可以很清晰地看到需要填写的命令。可是 ubuntu 的 svn 有点诡异,以 ownership checkout 一个 project,居然也不需要输入密码,搞了我很长时间。 更纠结的还在后头,svn add 添加完文件,svn commit 进行提交,发现首先要 …
操作系统逻辑地址与物理地址的转换
逻辑地址 / 页面大小 = 页号 逻辑地址 mod 页面大小 = 页内偏移 通过页号查找页表得到对应的物理区块 物理地址 = 物理区块 x 页大小 + 页内偏移 页号也可以通过位映射的方法实现,例如页表只有 4 项,则只需逻辑地址的前两位就可以确定页号。 参考: http://goo.gl/iGYn
逻辑地址 / 页面大小 = 页号 逻辑地址 mod 页面大小 = 页内偏移 通过页号查找页表得到对应的物理区块 物理地址 = 物理区块 x 页大小 + 页内偏移 页号也可以通过位映射的方法实现,例如页表只有 4 项,则只需逻辑地址的前两位就可以确定页号。 参考: http://goo.gl/iGYn
入手台电 K6
最近入手了电纸书,折腾了好久,感觉有点浪费时间阿,这时间和钱拿去买书读书该多好 期间遇到一个问题,6 寸屏幕的电纸书看 pdf 相当痛苦,幸好新固件有 pdf 重排。但换行依然不知所谓不明就里不能人道于是需要自己处理下,网上流行一个 wps 处理法 ,大意就是将 txt 文本粘贴进 wps 的 6 寸模板里,然后另存为 pdf。这样可以设置自己喜爱的字体,的确是不错的选择。此外还有通过虚拟打印机打印成 pdf 的。 txt 源不是那么容易找的,万一找回来的已经是 pdf,怎么办呢?可以通过 …
最近入手了电纸书,折腾了好久,感觉有点浪费时间阿,这时间和钱拿去买书读书该多好 期间遇到一个问题,6 寸屏幕的电纸书看 pdf 相当痛苦,幸好新固件有 pdf 重排。但换行依然不知所谓不明就里不能人道于是需要自己处理下,网上流行一个 wps 处理法 ,大意就是将 txt 文本粘贴进 wps 的 6 寸模板里,然后另存为 pdf。这样可以设置自己喜爱的字体,的确是不错的选择。此外还有通过虚拟打印机打印成 pdf 的。 txt 源不是那么容易找的,万一找回来的已经是 pdf,怎么办呢?可以通过 …
archlinux 安装 quick-init 导致根目录可读的修复
不得不说,Arch Linux 真的非常快!搭积木式的构建方式可以给我一种掌控感。后来听说 quick-init 可以 4 秒启动,禁不住去试试,结果。。。失败了,只好卸载之,结果根文件系统变成只读,无法上网。。。 经过一轮 google,锁定在 /etc/inittab 和 /etc/rc.conf 文件上,首先把这两个文件恢复原样。/etc 中可以看到 inittab.pacsave 或 inittab.original 的备份文件,恢复即可。 若重启依然无法解决,通常是因为把 …
不得不说,Arch Linux 真的非常快!搭积木式的构建方式可以给我一种掌控感。后来听说 quick-init 可以 4 秒启动,禁不住去试试,结果。。。失败了,只好卸载之,结果根文件系统变成只读,无法上网。。。 经过一轮 google,锁定在 /etc/inittab 和 /etc/rc.conf 文件上,首先把这两个文件恢复原样。/etc 中可以看到 inittab.pacsave 或 inittab.original 的备份文件,恢复即可。 若重启依然无法解决,通常是因为把 …
virtualbox 安装 gentoo
一直想尝试一下 fvwm,又不想搞坏现在的 ubuntu,顺便就搞个 gentoo 玩玩。 基本的安装顺序照官方的 guidebook 就可以了,但配置内核的时候要注意如下选项: Processor type and features ---> [*] Tickless System (Dynamic Ticks) [ ] High Resolution Timer Support [ ] Symmetric multi-processing support Subarchitecture …
一直想尝试一下 fvwm,又不想搞坏现在的 ubuntu,顺便就搞个 gentoo 玩玩。 基本的安装顺序照官方的 guidebook 就可以了,但配置内核的时候要注意如下选项: Processor type and features ---> [*] Tickless System (Dynamic Ticks) [ ] High Resolution Timer Support [ ] Symmetric multi-processing support Subarchitecture …