Thursday, September 15, 2011

a quick look at programming history

看不见图就这个地址.

http://c179631.r31.cf0.rackcdn.com/Infographic_Programming_Rackspace_Final_Version.png


dnsmasq在arch下建立自己的dns本地缓存

~/myworksource/routerautorestart/Untitled.html  1 装好的arch+gnome shell配置的还可以了,就是firefox上网太慢。
 2 
 3 和win下使用ff根本无法相比,这个问题老早就接触过,在debian,ubuntu下都安装过dnsmasq 做本地dns缓存来解决。arch下是头一次。
 4 
 5 下面是方法:
 6 
 7 1,安装
 8 pacman -S dnsmasq
 9 
10 2,修改dns配置文件 /etc/dnsmasq.conf
11 在 listen-address= 后面添加 127.0.0.1
12 变成这样
13 listen-address=127.0.0.1
14 
15 3,不同于debian和ubuntu的一点就是现在arch使用了dhcpcd代替了dhclient,所以配置也就不一样了
16 arch dnsmaq wiki中提到了3中方法,我使用了第3种方法
17 在/etc/Networkmanager/dispatcher.d/中添加一个启动脚本myDNS
18 myDNS脚本内容如下
19 #!/bin/bash
20 #
21 # Override /etc/resolv.conf and tell
22 # NetworkManagerDispatcher to go pluck itself.
23 #
24 # scripts in the /etc/NetworkManager/dispatcher.d/ directory
25 # are called alphabetically and are passed two parameters:
26 # $1 is the interface name, and $2 is "up" or "down" as the
27 # case may be.
28 #
29 # Here, no matter what interface or state, override the
30 # created resolver config with my config.
31 #
32 #cp -f /etc/resolv.conf.myDNSoverride /etc/resolv.conf
33 # 不要改变我删除我原来的/etc/resolv.conf,在第一行添加nameserver 127.0.0.1
34 # Creates a copy of resolv.conf with "nameserver 127.0.0.1" as first line.
35 cat - /etc/resolv.conf <<<"nameserver 127.0.0.1"  > /etc/resolv.conf.new
36 cp -f /etc/resolv.conf.new /etc/resolv.conf
37 
38 3,修改/etc/rc.conf 使dnsmasq在开机就以DAEMONS运行
39 DAEMONS=(networkmanager dnsmasq ...)
40 
41 然后重新启动,察看你的域名解析时间是不是加快了
42 $dig google.com | grep Query

[转载]什么是有衬线字体与无衬线字体(serif vs sans serif)(附“黑体美化”)?

一直搞不明白serif和sans的区别,找到一篇文章,原文地址 http://forum.ubuntu.org.cn/viewtopic.php?t=88959
 
在西方國家的字母體系,分成兩大字族:serif 及 sans serif。其中 typewriter 打字機字體,雖然也是 sans serif,但由於他是等距字,所以另獨立出一個 Typewriter 字族出來。
serif 的意思是,在字的筆畫開始及結束的地方有額外的裝飾,而且筆畫的粗細會因直橫的不同而有不同。相反的,sans serif 就沒有這些額外裝飾,而且筆畫粗細大致上是差不多。
像 Times、Times New Roman 等都是屬於 serif 的字體,而 Arial、helvetica 則是屬於 sans serif 的字體。
serif 和 sans serif 的一般比較
serif 的字體較易辨識,也因此易讀性較高。反之 sans serif 則較醒目,但在走文閱讀的情況下,sans serif 容易造成字母辨識的困擾,常會有來回重讀及上下行錯亂的情形。
serif 強調了字母筆畫的開始及結束,因此較易前後連續性的辨識。
serif 強調一個 word,而非單一的字母,反之 sans serif 則較強調個別字母。
在很小字的場合,通常 sans serif 會較 serif 字體較為清晰。
適用於不同用途
通常文章的內文、正文使用的是易讀性較佳的 serif 字體,這可增加易讀性,而且長時間閱讀下因為會以 word 為單位來閱讀,較不容易疲倦。而標題、表格內用字則採用較醒目的 sans serif 字體,他需要顯著、醒目,但不必長時間盯著這些字來閱讀。
像 DM、海報類,為求醒目,他的短篇的段落也會採用 sans serif 字體。但在書籍、報章雜誌,正文有相當篇幅的情形下,應採用 serif 字體來減輕讀者閱讀上的負擔。
中文的情況
在中文的情形也是有相當於 serif 的字體,例如明(宋)體就是 serif 的,他通常是和 Times Roman 字族來搭配的。而黑體、圓體就相當於是 sans serif 的字體。
在中文直排的情況,比較不容易顯現 serif/sans serif 之間的差異性,但是在目前中文橫排相當的普遍的情形下,以上所述及的易讀性、醒目性也是適用於中文。
很常看到中文出版書籍、雜誌,內文使用了不易閱讀,但卻很醒目的黑體或圓體,這對讀者來說,在長期閱讀之下很容易就引起眼睛不舒服,似乎是應該盡量避免才是。


附件:
all.png

[转载] 终端软件的选择:rxvt-unicode

原文地址:http://forum.ubuntu.org.cn/viewtopic.php?t=66302&highlight=rxvt-unicode

为什么是rxvt-uicode

终端软件有很多,gnome有gnome terminal,kde有konsole,还有xfce-terminal,xterm,rxvt, aterm, eterm等等,这里我选择的是rxvt-unicode。主要因为我们所需要的终端,需要具有以下的特性:
  • 快速(rxvt-unicode基于rxvt,rxvt基于xterm,xterm的快速是毋庸置疑的);
  • 支持utf8,否则不能正确显示简体和繁体中文(从rxvt-unicode的名字就可以看出来了);
  • 易配置,更换系统时只需要保留配置文件就能恢复(rxvt-unicode配置可以写在~/.Xdefaults或者~/.Xresources中);
  • 支持透明,因为我们需要eyecandy来防止审美疲劳(rxvt-unicode不光支持伪透明,也可以做到真透明,不过我没有试过)。

符合上面条件的,以我所知,就只有rxvt-unicode(如果我错了请纠正我)。除了这些特性,rxvt-unicode还具有以下特性:
  • 可以以server/client模式启动,更加节省系统资源(urxvtcd);
  • 显示彩色man page。


rxvt-unicode的配置

代码:
Xft.dpi:96
!! RXVT-unicode setting
URxvt.geometry:             80x36+80+80
URxvt.background:           black
URxvt.foreground:           white
URxvt.scrollBar:            False
URxvt.scrollstyle:          next
! Use shift+pageup/down to scroll in screen
URxvt.secondaryScroll:  True
!set the artificial transparency of the v.t.
URxvt.inheritPixmap:        True
URxvt.tintColor:            grey
URxvt.shading:              500
URxvt.saveLines:            1500
URxvt.preeditType:          Root
URxvt.borderLess:           False
URxvt.title:                roylez's urxvt
!italicFont and boldItalicFont undefined
URxvt.font:-*-fixed-medium-r-*-*-15-*-*-*-*-*-*-*,\
xft:wenquanyi bitmap song:medium:pixelsize=15:antialias=False
URxvt.boldFont:-*-fixed-bold-r-*-*-15-*-*-*-*-*-*-*,\
xft:wenquanyi bitmap song:bold:pixelsize=15:antialias=False
!URxvt.font:xft:terminus:medium:size=13:antialias=false,\
!xft:wenquanyi bitmap song:medium:pixelsize=13:antialias=False

!redefine color to use tango theme in vim
!Black
URxvt.color0:           #000000
URxvt.color8:           #555753
!Red
URxvt.color1:           #CC0000
URxvt.color9:           #EF2929
!Green
URxvt.color2:           #4E9A06
URxvt.color10:          #8AE234
!Yellow
URxvt.color3:           #C4A000
URxvt.color11:          #FCE94F
!Blue
URxvt.color4:           #3465A4
URxvt.color12:          #729FCF
!Magenta
URxvt.color5:           #75507B
URxvt.color13:          #AD7FA8
!Cyan
URxvt.color6:           #06989A
URxvt.color14:          #34E2E2
!White
URxvt.color7:           #D3D7CF
URxvt.color15:          #EEEEEC


这个配置中有几个地方需要说明一下。

1 字体配置。

字体使用了fixed和文泉驿的组合,两个都是点阵字体。使用点阵字体的好处首先是快,然后就是够sharp。Truetype字体在大字号确实比较好看,但是在终端显示方面,效果明显不如点阵来得美观。

可 惜的是,适合中文的点阵字体实在不多。有个unifont ,不过我没有尝试过。文泉驿是个不错的选择,简体繁体都不错,可惜没有楷体和斜体,所以我没有定义Urxvt.italicFont。但是文泉驿的英文字 型不适合终端显示,扩展ascii的字符部分尤其差,所以一定要搭配一个合适的英文字型。这里我用的是misc-fixed,如果你愿意用更小的字型,你 可以尝试terminus。

图片

2 颜色配置。

可以看出,我把rxvt里面的颜色重新定义了,定义成了tango风格配色,在vim中搭配tango.vim,可以达到很好的效果。tango.vim可以在这里下载。这是我对tango.vim进行了小小修改之后的效果。

图片

Shell配置


shell的选择

我的选择是zsh,因为它的补全功能很贴心,而且我特别喜欢它的walters提示符。如果用bash,bash_completion是一定要装的。

定义更多的ls颜色

大家也许注意到了,ls有颜色显示,是因为有这样一个alias的存在的缘故
代码:
alias ls='ls --color=auto -X'


我喜欢把自己常用的文件种类都加上颜色,怎么做呢?首先,把默认的颜色配置输出为.lscolor
代码:
dircolors -p ~/.lscolor


然后,在.bashrc/.zshrc里面ls的alias前面加上这么一句,以后需要添加新的文件种类,编辑.lscolor就是了。
代码:
eval '`dircolors -b $HOME/.lscolor`'


有用的alias

在.bashrc或者.zshrc里面加入下列alias,可以实现彩色grep,df/du的时候用K/M显示大小,用del命令把文件删除到gnome回收站。用smth上newsmth.org,用hkday上hkday.net,而且发帖不会乱码。
代码:
alias grep='grep --color=always'
alias less='less -R'
alias df='df -Th'
alias du='du -h'
del() {mv -vi -- $* ~/.Trash}
alias smth='luit -encoding gbk -- telnet newsmth.org'
alias hkday='luit -encoding big5 -- telnet hkday.net'

图片

必不可少的screen


什么是screen

screen 这个名字老实说起得很有误导作用,它代表的是一个叫做gnu screen的软件。这个软件的主要作用说简单了,就是给你的终端添加tab的功能。也许你会问,为什么不用gnome- terminal/console/mlterm之类本身就有tab功能的终端呢?为什么不用fluxbox的标题栏tab功能呢?原因很简单,在ssh 或者telnet远程登录的时候,能够让你还能使用tab的,只有screen!
图片

screen的配置
代码:
# 这是配置那个tab bar
hardstatus alwayslastline
hardstatus string '%{=b}%{b}%-w%{.BW}%10>[%n %t]%{-}%+w%< %=%{G}%C%A, %Y-%m-%d'

termcapinfo xterm|rxvt ti@:te@

# screen里面的所有进程退出,screen就自动退出
autodetach on               # default: on

# 退出vim/nano之后自动刷新屏幕
altscreen on

# 启动等待,显示版本
msgwait 2
version
# 启动信息
startup_message off # default: on

# 启用beep报错
vbell off

# 默认的shell,不设置的话就是bash
shell zsh

##    Keybindings    ##

# F10改标题
bindkey -k k; title
# F11左边的tab
bindkey -k F1 prev
# F12右边的tab
bindkey -k F2 next


我没有给开新的tab(screen)一个快捷键,因为我觉得无论是敲screen还是ctrl+a
ctrl+c都不是很麻烦。

换个encoding上bbs

screen 可以动态更改encoding,比如想上繁体bbs,只需要依此敲入ctrl+a :encoding big5,然后telnet到你想要上的bbs就行啦。再次看出文泉驿的好处,繁体字都能显示^_^。当然,这样上bbs不如用luit的alias来得 方便。
图片

给特定程序绑个tab

如果你经常用mutt/irssi,或者上某个bbs,可以在screenrc里面加这样几句
代码:
bind 'm' screen -t email mutt
bind 'i' screen -t chat irssi
bind 's' screen -t smth luit -encoding gbk -- telnet newsmth.org


不过我更加倾向于直接在bashrc/zshrc里面用alias
代码:
alias mutt='screen -t email mutt'


代码:
_______________________
< 是不是应该给点掌声? >
-----------------------
        \   ^__^
          \ (oo)\_______
            (__)\          )\/\
                  ||----w |
                  ||        ||