Category Archives: Linux

入了一个 BlackBerry 8900

前两个一个小姨子让帮忙买一个黑莓9800,也不知道小孩怎么想的,告诉她这个难用,还断网,但就是不听,说要买一个用的人少的。。。 顺道,就弄了一个 8900 自己用。之前那个 g1 现在很不给力,速度慢,费电。用上了 89 还是挺不错的,又有点 650 的感觉了,就是软件少了点。 linux 下面有个 barry 可以简单管理一下 bb,不过很有限。可以用 bjavaloader 装 cod 倒是不错,想加一个 service book 发现不行,很郁闷,不过能装软件就不错了。 尝试过在 virtualbox 里面使用,需要 disable usb 2.0。不过后来给 bb 弄了一个 sd 卡之后,发现 vbox 里面不认了,设置里面禁掉卡也不行,也不知道怎么回事。

perl 里面的信号处理

perl 里面的信号处理很简单,就是给 %SIG 这个 hash 赋值就好了。前几天遇到个问题,处理 SIG{CHLD} 的时候,我本来只起一个 child 进程,可是发现这个信号会被触发多次,开始弄不明白,后来偶然想到是不是 system,exec 之类的函数弄出来的,搜了下果然。 perl 里面调用外部命令是会 fork 一个子进程的,所以也会触发那个信号,想避免可以设置局部变量,例如 $SIG{CHLD} = sub { print "main\n"; };   ….. { local $SIG{CHLD} = undef; # 注意调用外部命令的时候,如果 IGNORE 就捕捉不了结果了 `mv xxx yyy`; system(xxxxx); }   ….. 使用 {} 来构造局部变量的方法有时候会让问题变的非常简单。 另外,信号触发的时候,会把 sleep 中断,这个在 sleep 的 doc 里面说的很明白。如果还是想 sleep 到足够的时间,可以用下面的方法。 my $timeLeft [...]

又安装了一次 oracle

好久没有弄 oracle 了,今天有机会又折腾了一天 oracle 的安装,本来觉得是挺简单的事情,没想到也折腾了挺长时间的,我觉得可能主要是因为使用的系统比较新,而 oracle 是 10g 有比较老的缘故。 1 配置 x11forward 我这安装了 xauth 和 libXtst,然后使用 ssh -Y user@host 连接的。使用 -X 好像从来没成功过,也不知道怎么回事,懒得研究了。 2 运行安装程序 解压什么的就没什么好说的了,主要是运行的时候他会检测是不是他支持的发行版,可以使用 -ignoreSysPrereqs,跳过系统检测。 然后其他正常,就是到最后运行 dbca 的时候,会 hung 卡在那,等多久都完成不了。这一步做的操作是会给你 create database,建 init 文件等,没这个的话 oracle 是不可用的。如果你知道手动操作这些后续步骤也可以不理会这个。 dbca 卡住后,可以点那个取消,然后再开一个 term, ps 找到 dbca 然后 kill 掉,前面那个界面应该就会有反应了,就可以继续往下走了。到最后 exit 了事。 然后就是单独启动 dbca 来完成后面的工作。执行 dbca 命令(需要你提前配置好 path),会启动一个窗口,要注意的是,在这时候能看到一个关于字体的错误,据说这个错误就是上面 huang [...]

自动连接 ssh 并输入密码

这年头不翻墙就看不到真像了,前几天整了个 ssh 代理,就研究了下自动登录。 ssh 自动登录首选就是使用 key 了,可对方不干,那就只能使用密码了。自动输入密码可以用 expect。查这个的时候发现了一个 expect-lite,发现也挺有意思的,他把写 expect 脚本简单化了,比如想 send xxx,那就用 >xxxx 就行了,想 expect yyy 那就

chrome 的几个字体配置

随着各种 ext 的开发,chrome 目前的可用性已经很高了。阻碍我使用的最大一个问题,主要是字体。在 firefox 里面我喜欢自己配置中文英文字体。英文喜欢使用等宽,比如 consolas,Monaco, dejavu sans mono 之类。比较喜欢 monaco,可是目前能下载到的字体好像有点问题,有些字号没有。 前几天看到 ghost 在 twitter 上说到 chrome,就又动了试试看的念头。后来总算整好了。 chrome 本身自己有个字体设置的地方,在 tools -> options -> Under the Hood 里面,可以设置字体,在这里设置的字体感觉好像比平时理解的要小一点。比如我设置的 15 号才感觉好像看着舒服了点。另外,我这里设置的是英文,中文会根据 fontconfig 配置的来显示,我使用的是 WenQuanYi Zen Hei。 这么设置之后,在很多页面应该已经可以了。不过可能你在 google 的页面里面,还有 extension 的页面里面,还是会看到讨厌的字体。这是因为在设置了使用 css 使用的字体后,chrome 好像会优先使用 css 的设置。google 的页面和 extension 的页面使用的是 Arial 字体。在 term 使用 fc-match arial 可以看到实际使用的字体。 [...]

emacs 的列编辑

列编辑我觉得是一个编辑器不能缺少的东西。在 vim 里面使用 C-v 就能进入列编辑,然后我通常用到的,也就是 d (删除) 和 I (插入)。在 emacs 里面一直没怎么用上这个,总感觉是操作很麻烦。最近操作了几次,发现也没那么难,呵呵。 emacs manual 里面关于列编辑的页面。emacs 里面那个默认的列编辑不会出来像 vim 里面那样的矩形选区(不过有别的方法好像可以做到),所以当你选择的时候,还是按行来选择的,你只需要关心选择的起始点和结束点之间的那个矩形就好了,你的操作只会在里面起作用。 对应到 vim 的 d,emacs 里面的应该是 C-x r d 或 C-x r k 了吧,对应到 I,应该是 C-x r t string 了吧,不过 emacs 里面这个是替换选择的东西为 string,你要是选个空的,应该就算是插入了吧。还有个 C-x r y 复制,我觉得会这几个应该就基本可以了吧。。

使用 org-mode 来做自己的 job tracker

用 emacs 的应该都知道 org-mode 这个大杀器,一直以来都想在工作里面用上他,可总是习惯不了。 这几天尝试把 org-mode 打造成了我的一个 job tracker,用来记录自己的 todo 和完成情况。 ;; ;; org-mode ;;   ;; (setq org-agenda-files ‘("~/org")) (setq org-agenda-files (file-expand-wildcards "~/org/*.org")) ;; 把 ~/org/*.org 都加入到 agenda 里面,使用 C-c a a 看 agenda 的时候,会从这些文件里面读 (add-to-list ‘auto-mode-alist ‘("\\.org$" . org-mode)) (define-key global-map "\C-cl" ‘org-store-link) (define-key global-map "\C-ca" ‘org-agenda) (setq org-log-done t) ;; 变到 [...]

使用 grep sort 等工具的时候要注意 LANG 的设置

发现在使用 sort 或 grep 等工具的时候,LANG 会影响到速度。 1.5G 的文件,grep -Ei ‘keyword’ file, LANG=C 的时候执行时间是 22 秒,LANG=en_US.UTF-8 的时候,执行时间是 3分53秒,最后结果是一样的。 这还不是最恐怖的,恐怖的是下面的 $ cat a a b C d E   $ LANG=en_US.UTF-8 egrep ‘[a-z]‘ a a b C d E   $ LANG=C egrep ‘[a-z]‘ a a b d 以后用这些工具还是小心一点吧。。。。。

无聊又写一个用来发邮件的 pm..

继使用 perl 发中文标题邮件,和中文附件邮件后,又把他们整合了一下写了一个 pm 干这个事。 其实发带附件的邮件应该是有现成的 pm 干这个事的,比如 MIME::Lite 之类,没特殊需求还是用那个吧,这个纯属无聊写的。 文件前面有使用方法。。 package SendMail;   use strict; use warnings; use Data::Dumper; use Encode; use MIME::Base64;   =head1 Examples use SendMail;   my $sm = SendMail->new( { To => ‘you@foo.com, other@bar.com’, Subject => ‘just a test 中文’, });   — or —   my $sm = SendMail->new( [...]

使用 perl 发带附件的邮件

继 上篇 使用 perl 发带中文标题的邮件后,又研究了下发带附件的。 基本差别不大,主要是那个 Content-type 要变一下。那个 boundary 可以自己随便写,和后面的统一就行了。 my $title = encode_base64("标题", ""); my $body = encode_base64("邮件正文"); my $attach = encode_base64("附件内容"); my $filename = encode(’MIME-B’, decode(’utf8′, "文件中文.txt"))   open(MAIL, ‘|/usr/sbin/sendmail -t’);   print MAIL "From: test\@abs.com\r\n"; print MAIL "To: test\@abs.com\r\n"; print MAIL "Subject: =?UTF-8?B?$title?=\r\n"; print MAIL "MIME-Version: 1.0\r\n"; # print MAIL "Content-type: text/plain; [...]