Le's profileSomething like a home pa...PhotosBlogListsMore Tools Help

Blog


    September 30

    AIGLX + beryl 终于跑起来了

    比XGL还要顺畅
    哦yeah!
    September 29

    tor+privoxy光荣的完成了他们的历史使命

    被我从default运行级别里给踢出去了

    还是screen

    C-o会和vim里的命令冲突的
    所以现在用\\
    escape \\\\
    意思是\是命令键,相当于之前的C-a,要打反斜线\就打两个\\
    同理 escape ^Oo 意思是C-o是命令键,C-o o就相当于C-o

    看来我应该放弃AIGLX的努力了

    https://help.ubuntu.com/community/CompositeManager/AIGLX

    Information about unsupported hardware

    • The open-source ATI driver (radeon) uses software rendering for alpha (transparency). This makes Compiz unusably slow on a Radeon 9200 (one of the fastest cards supported). No word from ATI on when their proprietary driver (which has proper 3d acceleration) will support AIGLX.

    想让screen更像个桌面么?

    需要有个好的screenrc
    screen的默认配置的最大问题是ctrl-A和bash里回到行首的快捷键冲突,导致后者不能使用。非常烦人!
    下面这个screenrc重定义了这个快捷键
    而且加上了一个更漂亮的caption,有日期时间主机名等
    现在terminal是否有tab功能对我来说已经无所谓了
    哈哈
    # ~/.screenrc
    # use visual bell
    vbell on
    # replace ctrl-A by ctrl-O
    escape ^Oo
    # set a big scrolling buffer
    defscrollback 5000
    # Set the caption on the bottom line
    caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"

    September 23

    黑客攻击百度

    http://www.donews.com/Content/200609/ec486cf0e1874cb1beb5db7b120027df.shtm
    不知道syn flooding还有反射式拒绝服务攻击这个称呼
    居然还用功力
    还用了六成
    太没有技术含量了
    丢黑客的脸啊

    一个python脚本,把一个目录下所有文件转成utf8编码

    chardet package is in gentoo-china-overlay
    layman -a gentoo-china
    I have already filed a chardet's bug, requesting it to be added to portage
    However, no response yet

    #! /usr/bin/python
    import sys,chardet,shutil,os,tempfile

    def convert(fname):
            fp = open(fname)
            text = fp.read()
            encoding = chardet.detect(text)['encoding']
            rate = chardet.detect(text)['confidence']
            if rate > 0.9 and not encoding == 'utf-8':
                    tmp,tmpname=tempfile.mkstemp()
                    os.write(tmp, unicode(text,encoding).encode('utf-8'))
                    shutil.move(tmpname, fname)

    if __name__=="__main__":
            dir = sys.argv[1]
            for f in os.listdir(dir):
                    pathname = os.path.join(dir, f)
                    convert(pathname)
    September 22

    头走了

    从今晚开始到下周三
    公寓里可以任我肆虐了
    上楼去睡大床
    哦哈哈
    September 20

    gdb里调试信号处理函数

    要执行handle signum nostop
    这样在收到信号的时候gdb就不会暂停执行
    对于SIGINT,还需要
    handle SIGINT pass
    这样SIGINT信号就不会被gdb所截住,而是发给正在debug中的程序

    September 17

    公司的邮箱收不到LKML的信了

    其实有段时间了,不过最近Gentoo的事忙的比较多
    一直没有查到底是什么原因

    如我所料,LKML的FAQ里果然有这个问题
    http://www.kernel.org/pub/linux/docs/lkml/

    PS:最近老发现自己打的字和自己要说不一样,不知道怎么了
    September 16

    今儿好累

    今天顺道去了劳动公园
    看到了那个闻名已久的足球
    不过没带相机
    也就没走到跟前仔细看

    之前走错了路
    误打误撞的
    到环卫公园转了转
    里面有个时传祥的塑像

    PS: 其实这是一首诗
    派别为废话派,亦称口水派
    著名诗人赵丽华有不少此类作品


    September 13

    set breakpoint pending on

    这个命令最好执行一下
    否则即使你手工enable了某个断点
    gdb还是有可能不吱拉声的给你disable了
    因为默认是set breakpoint pending auto的
    查看当前状态用
    show breakpoint pending
    September 12

    用gdb调试C++程序时打印变量的值

    如果这个值是本地变量,那么没有任何的问题。gud-tooltip-mode也能正确显示。
    不过如果是类里的成员,有的时候就麻烦了。
    据我目前的观察,有的时候gdb可以正确的找到当前类的继承关系,可以直接使用this来访问相关信息:
    p *this: 打印出当前类里所有的成员的值
    p this->member: 打印出当前类里的某个成员的值
    ptype this: 打印出当前类里所有的成员(原型)
    whatis this: 打印出当前类的类型
    如果set print object on的话,whatis this可以显示出当前类的真正类型,也就是衍生类的类型。

    如果都能这样,那就太爽了。

    可是有时候不是这样。不过我还没弄明白为什么会导致这种区别。
    不过有个补救的方法。就是cast。
    但是语法上有个地方要注意:
    You must type
      (gdb) print ('Foo::Bar') x   instead of  (gdb) print (Foo::Bar) x
    or
      (gdb) print ('Foo::Bar' *) y instead of  (gdb) print (Foo::Bar *) y
    所以下面这样是可以的
     p (('namespace::Class') *this)->a.b.c
     p ('namespace::Class') *this
    September 10

    Tor + Privoxy

    有了这俩东西,管你什么GFWGFW,哦哈哈!
    http://gentoo-wiki.com/HOWTO_Anonymity_with_Tor_and_Privoxy

    我的emacs完美了

    我再也没有别的什么要求了,就是它现在这个样子了

    装的是emacs-23
    使用 emacs --enable-font-backend -fn "Dejavu Sans Mono-12" 来启动
    配置文件是
    (create-fontset-from-fontset-spec
     "-misc-dejavu sans mono-medium-r-*-*-16-*-*-*-*-*-fontset-global"
    )
    (set-fontset-font
    "fontset-default" nil
    "-*-simsun-*-*-*-*-16-*-*-*-*-*-iso10646-1" nil 'prepend)
    (set-fontset-font
    "fontset-global" 'kana
    "-*-simsun-*-*-*-*-16-*-*-*-*-*-iso10646-1" nil 'prepend)
    (set-fontset-font
    "fontset-global" 'han
    "-*-simsun-*-*-*-*-16-*-*-*-*-*-iso10646-1" nil 'prepend)
    (set-fontset-font
    "fontset-global" 'cjk-misc
    "-*-simsun-*-*-*-*-16-*-*-*-*-*-iso10646-1" nil 'prepend)

    ;(set-default-font "fontset-global")
    ;(setq default-frame-alist (append '((font . "fontset-global")) default-frame-alist))

    (add-to-list 'after-make-frame-functions
       (lambda (new-frame) (select-frame new-frame)
                           (set-default-font "fontset-global")))
    注意有两行注释掉了,如果不用font-backend的话,那两行恐怕是需要的

    本来这样的话,中文字会很诡异的找ar pl zenkai来显示,非常之ugly
    我是用M-x describe-char查到的
    后来一气之下删除了arphicfonts
    结果就乖乖的找simsun了
    哦哈哈

    September 09

    Emacs + Gdb

    早有耳闻这两者是不错的搭配
    真正试验了一把之后发现
    那岂止是不错,那是相当的不错!
    绝配啊

    Linux的程序员一定要试一下
    否则终生遗憾

    两个提示:
    一个是在~/.emacs里定义变量gdb-many-windows:(defvar gdb-many-windows t)
    再一个是启用gub-tooltip-mode,这样鼠标指向源代码里的变量时,emacs就能以tooltip提示框的形式显示变量的地址和值。再也不用p和x了。

    简直是太方便了,太方便了!
    September 08

    gdb in emacs, gdbtui and inputrc

    In readline, C-j functions like "enter" key.
    However, I defined C-j as menu-complete in my ~/.inputrc.
    So, in gdbtui and when using gdb in emacs, enter key don't function as
    usual, instead it performs menu-complete. As a consequence, i can't
    use gdbtui and gdb in emacs.
    I solved the problem myself.
    I just thought that this problem should have something to do with
    readline library.
    Maybe my readline is too new? This is my first suspicion.
    Then I suddenly remembered that I had redefined some key-binding in my
    ~/.inputrc.
    Thus, the problem solved.

    reference:
    http://tiswww.tis.case.edu/~chet/readline/rltop.html