用網頁來看網絡學堂的公告很費時間,就打算像 rss2email
那樣,把消息製作成郵件。 用 Ruby 的 mechanize
來和網站交互,讀取“課程公告”和“課程文件”中的消息, 把鏈接
sha1 後判斷是否生成過提示郵件,沒有則跟蹤鏈接,用
w3m 輸出成純文本, 生成的郵件用 sendmail
投遞。
我的xmonad配置
缺點
- 依賴的模塊較多,升級 ghc 或被 xmonad/xmonad-contrib 依賴的包後需要按照拓撲序更新整個被 xmonad 依賴的樹。 如果平時不大升級的就不用在意這一點。
- 沒有 systray 等其他 desktop environment 集成的組件,這方面 tiling window manager 世界中的 Awesome 可謂是佼佼者, 其他 wm 都需要手動配置很多組件,Xmonad 也不例外。
優點
- Xmonad 用 Haskell 配置,因為這一點註定了當配置復雜到一定程度後,會遠遠勝過 那些自定義配置語言的 wm。
- 得到 monad transformer 精髓的 layout transformer 使得復合 layout 變得非常容易, 可以輕易定製出在其他 wm 中不可能實現的 layout。
Haskell實現的Splay樹
三週的軍訓總算挺過去了,這裏的網絡條件比想象中要糟糕不少。 其實有很多要說,還是等到“十一長假”回家了再慢慢說吧。
廢話不多說了,這是一個用 Haskell 實現的
Top-down Splay tree:
1 | module SplayTree ( |
脫離chroot的枷鎖
2015年8月更新
《The Linux Programming Interface》的Chapter 18 Directories and Links提到chroot jail有幾個注意點:
chroot()不改變工作目錄。因此通常在調用chroot()之後會緊跟chdir("/"),把工作目錄設定到新的root;否則仍可使用工作目錄訪問jail外的文件。只是之後訪問jail外的文件不可以用絕對路徑了,因爲root目錄還在jail裏。- 可以使用jail外文件的文件描述符脫離jail,使用
fchdir()即可改變工作目錄到jail外。如果是特權進程的話(精確地,指擁有CAP_SYS_CHROOT權限),還可以在fchdir()後使用chroot(".")以把root目錄設置到jail外。倘若多chdir("..")幾次,可以回到原先的root目錄。 - Unix domain socket提供了進程間傳遞文件描述符的方法。限定在chroot
jail內的進程可以從外部獲取文件描述符,之後即可
fchdir()使工作目錄脫離jail。
下面的例子展示如何使用jail外的文件描述符脫離jail:
1 |
|
用udev自動掛載usb設備
前幾天看了 udev 的介紹,今天正好
#ubuntu-cn@freenode
裏有人問,就把這個老大難問題解決掉了。
代碼如下:
KERNEL!="sd[b-z]?", GOTO="automount_exit"
ACTION=="add", SUBSYSTEM=="block", RUN+="/bin/mkdir /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}", RUN+="/bin/mount -o uid=1000,user,codepage=936,utf8 $root/%k /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}"
ACTION=="remove", SUBSYSTEM=="block", RUN+="/bin/umount /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}", RUN+="/bin/rmdir /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}"
LABEL="automount_exit"
保存爲 /etc/udev/rules.d/ 下的某個文件。
自動獲取SSH密碼並登錄
給別人打廣告
tusooa 的腳本,主要用 Bash 和 Perl 寫的,用了類似 GoboLinux 的組織方式,大家可以去看看。圍觀地址:[[https://github.com/tusooa/tusooa]] 。
用rss2email閱讀feeds
很久沒用rss的閱讀器了,以前曾用過 emacs 的 newsticker ,不支持HTML。也用過Google Reader,打開速度太慢,而且對Pentadactyl不友好。
把feeds轉成郵件來閱讀
我的想法是找一款工具,把feeds轉換成郵件,由本地的procmail處理(歸類),然後再用mutt閱讀。