Adam's

adam@debian:~$ cat /dev/random

RedHat招聘Kernel测试人员

with 13 comments

最近组里缺人, 急招两名内核测试工程师, 职位描述如下. 有兴趣的可以给我发简历, 联系方式见About.

5Y+R5Yiw5bel5L2c6YKu566x5pu05aW9OiB4aWFsaUByZWRoYXQuY29tLiDor7fkuI3opoHlo7DlvKAsIOiwouiwoiA6KQo=

1, Senior Quality Engineer – Kernel(Network)
这个职位主要是网络方面的测试, 需要对网络很熟悉, 比如各种协议和网络编程. 较急, 达不到Senior的程度也可以.

2, Quality Engineer – Kernel(General)
这个职位要求对Linux很熟悉, 对内核稍熟悉, 熟练使用C和Bash编程. 有文件系统方面的经验更好.

RedHat的办公地点在北京中关村, 工作环境相当不错, 很放松很自由很舒服, 具体可以参见我之前的博客描述. 欢迎对内核知识和测试感兴趣的朋友提交简历.

PS: 亦有内核开发, C, Java, 虚拟化, 云计算等相关职位, 有兴趣也可以联系我, 详情见红帽北京职位列表.

Written by adam8157

October 22nd, 2011 at 3:16 pm

Posted in Blah

Tagged with

用Vundle管理Vim插件

with 5 comments

一直以来, 管理Vim插件对我来说都是个困扰, 安装, 更新和卸载, 一个比一个麻烦. 我也尝试过很多插件管理工具, 但是都不如意, 直至遇到了Vundle.

Vundle利用git, 插件的git repo以及vim-scripts维护的GitHub repo, 自动安装, 更新和卸载插件. 它把这些繁杂的工作变得简单, 甚至, 成为一种享受.

Vundle的安装同样方便, 只需要执行:

git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

然后将下列代码加入vimrc中即可.
(插件名字由git repo决定, 可以在http://vim-scripts.org/vim/scripts.html页面中查找)

set nocompatible    " be iMproved
filetype off    " required!

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'

" vim-scripts repos
Bundle 'vim-plugin-foo'
Bundle 'vim-plugin-bar'

filetype plugin indent on    " required!

然后, 安装插件:

:BundleInstall

更新插件:

:BundleInstall!

卸载不在列表中的插件:

:BundleClean

就是这么简单, 方便. Enjoy it!

Written by adam8157

December 26th, 2011 at 10:11 pm

Posted in Tips

Tagged with , ,

Kindle Touch一键换字体

with 6 comments

今天忍不住把Kindle Touch的字体给换了, 效果如图:

顺手搞了个一键替换或还原字体的越狱包, 参考了别人的方案(ref 4), 感兴趣的朋友可以点此下载.

warn:
1, 后果自负
2, 只适用于5.03之前的固件版本
3, 用的软链接方式, 不要删除fonts文件夹
4, 字体为文泉驿微米黑, 加粗显示的时候不很舒服, 不喜欢的请自己改

ref:
1, http://yifan.lu/
2, http://irising.me/2011/12/12591/
3, http://irising.me/2011/12/12600/
4, http://www.duokan.com/forum/thread-51409-1-1.html

Written by adam8157

December 19th, 2011 at 8:57 pm

Posted in Blah,Tips

Tagged with ,

在中科大关于Vim的演讲

with 7 comments

上周末受朋友邀请, 去中科大讲了下Vim相关的东西. 感谢熊老师和USTC LUG的各位同学的安排和组织.

Slides改自林佑安的VIM Hacks, 遵循Creative Commons 3.0协议, 可从此处下载.

PS: roylez关于ZSH的Slides在此: http://roylez.heroku.com/2011/12/12/ustc-zsh-speech.html

Written by adam8157

December 13th, 2011 at 3:36 pm

Posted in Blah,Linux

Tagged with , ,

关于子密钥

without comments

子密钥, 和主密钥绑定的密钥对. 它不麻烦, 很有用. 而且, 你已经在用了.

按照默认规则生成一个新密钥对, 在GnuPG控制台下list, 会有类似这样的输出:

pub  4096R/12345FOO  created: 2001-01-01  expires: never       usage: SC
                     trust: ultimate      validity: ultimate
sub  4096R/54321BAR  created: 2001-01-01  expires: never       usage: E

可以看到, 新生成的密钥包含一个主密钥, 作用是签名, 而且还包含一个子密钥, 作用是加密.

使用子密钥的好处在于能够更换签名或者加密密钥, 而不破坏主密钥的关系网络和Key ID. 除了默认生成的用来加密的子密钥外, 你还可以添加更多的子密钥, 用来签名或者用来加密. 它们的公钥会随着主密钥的公钥发布, 方便其他人验证或者加密.

ref:
1, http://www.gnupg.org/gph/en/manual.html
2, http://wiki.debian.org/subkeys

Written by adam8157

November 27th, 2011 at 11:11 pm

Posted in Tips

Tagged with

Upgraded my PGP key

with 3 comments

For security reasons, upgraded my PGP/GPG key to 4096-bit RSA.

Key ID: 2F39D84D
Key fingerprint: BB13 C3CE A321 09A1 B93C BF49 2365 E976 2F39 D84D

ref: https://lkml.org/lkml/2011/9/30/421

Written by adam8157

November 9th, 2011 at 9:18 pm

Posted in Blah

Tagged with

Remove the www subdomain

without comments

The www subdomain is redundant and meaningless.

为了保持链接兼容, 我把使用www的链接301永久重定向到了主域名.

域名A记录指向IP, 再创建一个CNAME把www指向A记录, 然后在.htaccess中添加如下规则即可.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

PS: 各位交换了友情链接的朋友可以顺手改下, 虽然不改也没什么影响 :)

ref: http://no-www.org/

Written by adam8157

October 30th, 2011 at 4:25 pm

Posted in Blah

Tagged with

让mutt提醒遗忘附件

without comments

最近也不知道是工作忙还是心不在焉, 发邮件经常漏掉附件. 尤其有时候是发给其它时区的同事和朋友, 一来一回就耽误一整天, 很影响效率.

这种事情想来也好处理, 把mutt的sendmail指向一个脚本. 先检测下正文中有没有出现Attach之类的词, 出现了而且没有附件的时候就提醒添加. 直到符合条件或者通过zenity等方式略过检查才发出去.

mutt中就下面这么一句. 但注意: 如果record, 没发送成功也会存一份, 用my_hdr Bcc:实现record就可以避免.

set sendmail="pre-sendmail"

我的配置和脚本还是放在这里, 基本上是抄的MuttWiki, 稍微做了些改进.

其实本来是想通过mutt的send2-hook, 然后exec <pipe-message>实现的, 但是交互性太差, 还是用脚本灵活些. 于是为了实现这个功能我顺便放弃了mutt内置的imap和smtp, 转而使用offlineimap和msmtp. 也好, 本地存储更快, 又能离线浏览. Happy accident!

PS: 另外介绍一个mutt小技巧, 标记所有邮件为已读:

macro index \cr "<tag-pattern>.\n<tag-prefix><clear-flag>N<untag-pattern>.\n"

Written by adam8157

October 22nd, 2011 at 2:21 pm

Posted in Linux,Tips

Tagged with ,

Linux下的VDSO

with 6 comments

VDSO(Virtual Dynamically-linked Shared Object)是个很有意思的东西, 它将内核态的调用映射到用户态的地址空间中, 使得调用开销更小, 路径更好.

开销更小比较容易理解, 那么路径更好指的是什么呢? 拿x86下的系统调用举例, 传统的int 0×80有点慢, Intel和AMD分别实现了sysenter, sysexit和syscall, sysret, 即所谓的快速系统调用指令, 使用它们更快, 但是也带来了兼容性的问题. 于是Linux实现了vsyscall, 程序统一调用vsyscall, 具体的选择由内核来决定. 而vsyscall的实现就在VDSO中.

Linux(kernel 2.6 or upper)环境下执行ldd /bin/sh, 会发现有个名字叫linux-vdso.so.1(老点的版本是linux-gate.so.1)的动态文件, 而系统中却找不到它, 它就是VDSO. 例如:

$ ldd /bin/sh
        linux-vdso.so.1 =>  (0x00007fff2f9ff000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f28d5b36000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f28d5eca000)

linux-gate.so.1的地址是0xffffe000. 较新的内核提供了进程随机地址化功能, linux-vdso.so.1的地址每次cat /proc/self/maps都会变化, 想把它从/proc/self/mem中dd出来反汇编玩儿的同学请先:

echo "0" > /proc/sys/kernel/randomize_va_space

不光是快速系统调用, glibc现在也提供了VDSO的支持, open(), read(), write(), gettimeofday()都可以直接用VDSO中的实现, 使得这些调用更快, glibc更兼容, 内核新特性在不影响glibc的情况下也可以更快的部署. 实在是Nice!

ref:
1, http://lwn.net/Articles/18414/
2, http://www.ibm.com/developerworks/cn/linux/kernel/l-k26ncpu/index.html

Written by adam8157

October 11th, 2011 at 11:47 pm

Posted in Linux

Tagged with

在IRC中输入彩色文字

with 8 comments

IRC中竟然还可以发送彩色文字, 真好玩儿. 像这样:

各个client有自己的文档, 大致通用, Irssi的在这里.

eexpress写了个脚本生成随机颜色, 但是用起来麻烦. 去Irssi官网上逛了逛, 发现还真有这样的插件, 只是不支持中文. 于是稍微改了下, 添加了UTF-8的支持, 上图就是修改之后的效果.

修改后的脚本已经发到了Irssi scripts维护邮箱, 应该很快就会更新, 等不及的直接去这里下载. 欢迎反馈.

Written by adam8157

September 16th, 2011 at 11:47 pm

Posted in Coding,Linux

Tagged with