Kanru’s 探險日誌

這裡應該會放一些我每日遊覽的站台及一些心得,就當作是我的學習筆記吧^^。

Archive for September, 2008

Awesome 3.0 released

without comments

Awesome 3.0 釋出了!

可以在 http://awesome.naquadah.org/download/ 下載,搭配 xcb-util 3.0 服用

用 debian sid+experimental 的,等一會兒就會有了 :)

Written by Kanru Chen

September 18th, 2008 at 10:33 pm

Posted in 爬網探險

Tagged with

X-Server 1.5.0 very sluggish

without comments

最近升到 xorg 1.5.0,某些操作 (terminal 快速更新) 會使 xserver 佔用非常多 cpu,看來是這個問題

Working on it … right now it looks like:

  • XShm pixmaps got accidentally reenabled in the course of Adam’s changes

  • Someone (maybe GTK, having tracked it down yet) is taking advantage
    of that by creating a shared pixmap and using it as the source for a composite operation.

  • That is not handled well in EXA and triggers migration of the destination back to system memory. (*)

– Owen

(*) One of the many cases where we’d be better off creating temporaries in video memory to avoid migration.

測測..

Written by Kanru Chen

September 18th, 2008 at 8:56 am

Posted in Programming, 爬網探險

Tagged with ,

Emesene & SQL Optimization

with 2 comments

最近都是用 emeseneMSN,不過他的啟動速度實在是非常慢,啟動的時候硬碟燈狂閃,判斷應該是在讀取聯絡人的資料快取。先用 python profiler 跑過一次,結果果然是 Logger.py 裡面從 sqlite 撈資料的函式在慢。

大小約 17MB 的 db,每個 query 竟然都要一秒以上,難怪 emesene 啟動要這麼久了。就來幫 emesene 最佳化一下 SQL 吧。

以底下這個 query 為例:


    select e.stamp, ue.data 
    from event e, user_event ue, user u
    where e.id = ue.id_event and
    u.id = ue.id_user and
    e.name = "status-changed" and
    u.account = "%s"
    order by e.stamp desc
    limit 1

結果是


1221129396.22343|NLN
CPU Time: user 1.173822 sys 0.023997

用 explain query plan 看看


    0|1|TABLE user_event AS ue
    1|0|TABLE event AS e USING PRIMARY KEY
    2|2|TABLE user AS u USING PRIMARY KEY

應該是先把 user_event 與 event, user 三個 table join 在一起,最後再檢查 e.name 與 u.account。

來看看三個 table 的大小

  • user_event: 180801 row
  • event: 192968 row
  • user: 196 row

這樣 join 起來是多大的 table 呀

先試試改寫 from clause 裡的順序


    select e.stamp, ue.data 
    from user u, event e, user_event ue
    where e.id = ue.id_event and
    u.id = ue.id_user and
    e.name = "status-changed" and
    u.account = "%s"
    order by e.stamp desc
    limit 1

結果是


    1221129396.22343|NLN
    CPU Time: user 0.485926 sys 0.008998

很好,時間少了一半,explain query plan 顯示


    0|2|TABLE user_event AS ue
    1|0|TABLE user AS u USING PRIMARY KEY
    2|1|TABLE event AS e USING PRIMARY KEY

如果幫 user_event 建個 index 呢?


    create index ueiduser on user_event(id_user);

再 query 一次


    1221129396.22343|NLN
    CPU Time: user 0.017997 sys 0.004999

快了非常多吧!explain query plan 顯示:


    0|0|TABLE user AS u
    1|1|TABLE user_event AS ue WITH INDEX ueiduser
    2|2|TABLE event AS e USING PRIMARY KEY

這是因為 sqlite 會以 from clause 的第一個當作 outer loop,所以我把數量最小的 user 移到前面,再適當的建立 index,使得 query 的速度快了 100 倍…

參考

Patch 在此

Emesene svn trunk 已經收錄最新 patch :)

Written by Kanru Chen

September 17th, 2008 at 10:27 pm

ConTeXt 學習筆記, Using MkIV

with 4 comments

ctxnotes

以下是在 CTeX 論壇看到的對 ConTeXt 的評論,我覺得描述的十分貼切

我的理解,ConTeXt 秉承 Plain TeX 的思路和语法,是用于专门的“排版”的软件;而 LaTeX 则比较复杂,其结构化有时往往是加了许多限制,用于“写文档”的软件。 也就是说,期刊理应用 LaTeX 而不是 ConTeXt,因为前者的标准、结构性特征。而如果是排版书籍或个人化的东西,或许 ConTeXt 更适合。 CTeX — milksea

一年前(時間過的好快!)稍稍研究了 ConTeXt 與 LuaTeX 的搭配,如今 ConTeXt MkIV 已經比當時更加的成熟,要使用多國語言簡單得多了。Li Yanrui 整理了一份 ConTeXt 的學習筆記,裡面包括了 TeX 與 ConTeXt 的簡介、ConTeXt MkIV 的安裝、ConTeXt 的文檔架構與基本命令,想要一窺究竟 ConTeXt 是在做甚麼,可以參考看看。

以下檔案是使用 2008/9/10 的 ConTeXt Minimals 加上一點小修改後編譯,使用的字型是 cwTeX 明體、cwTeX 粗黑體、cwTeX 楷書。

若要嘗試編譯此檔案者需注意

  1. ConTeXt 需修改以符合台灣地區標點符號擺放特性,詳細的 patch 整理之後會提交上去。
  2. LuaTeX 目前還是 beta,編譯時可能會遇到各種困難,尤其是容易發生記憶體不足的情況,建議記憶體有 1G 以上才可嘗試。

原始文件為 Li Yanrui 整理,我只是轉譯為繁體版本。原始版本可以在 http://code.google.com/p/ctxnotes/ 取得。

PS.

不知為什麼這個版本編出來的 PDF 檔案大小特大… 足足有 3 MiB 多

Written by Kanru Chen

September 16th, 2008 at 10:07 pm

Posted in General

Tagged with , , ,

兩個 LaTeX 文件翻譯

with 2 comments

不是我翻的 :-)

lshort

lshort 是名為 short 的一篇不太簡短的 LaTeX 介紹,原本是英文的內容由 CTeX 論壇的朋友翻譯成中文,內容包含了 LaTeX 文檔的基本結構、數學模式、各式符號、環境、註腳的插入、圖形的插入以及如何自行定義 LaTeX 命令都有提到。

lnotes

lnotes 是 Alpha Huang 寫的 LaTeX 筆記,紀錄了作者學習 LaTeX 時的心得以及常用資料,內容涵蓋了 LaTeX 的介紹、文檔的基本結構、數學模式、一般圖形的引用、利用 METAPOST, PSTricks, PGF 直接繪圖、表格以及超連結、加入參考文獻等,算是對 LaTeX 的一般應用做了很全面的介紹。還有一章專門講解字體的使用,雖然目前 XeLaTeX 與 LuaTeX 已經大大簡化使用系統字體的難度,這章還是有很好的參考價值,因為仍有許多文件是使用原始的 LaTeX。

這兩份文件原本都是簡體的,我做的只是把它們轉成繁體並修正一些名詞的差異。是用程式轉了再手工修改,但仍難免會有遺漏,若有發現語句不通順的地方請各位不吝指教,可以在此回覆或是 email 給我 :)

弄這些東西原本是希望可以放到 TeXLive 2008 裡一起發佈的,不過 2008 已經出了,就隨緣吧 :)

這兩份文件都是用 XeLaTeX 搭配 XeCJK 中文環境編譯而成,使用 cwTeX 明體、cwTeX 楷書、cwTeX 圓體、cwTeX 粗黑體、AR PL UMing TW 字型。

這兩個文件的原始版本可以分別在 http://www.ctan.org/tex-archive/info/lnotes/http://www.ctan.org/tex-archive/info/lshort/ 找到。

Written by Kanru Chen

September 15th, 2008 at 10:58 pm

Posted in General

Tagged with , , , ,

What’s NEW in next libchewing release?

without comments

自從上次 libchewing 釋出以來已經過了兩年多了,大家都各自忙自己的事,也許是酷音已經呈現某種穩定的狀態,因此更新的十分緩慢。秉持著有比沒有好的理念,決定把目前的更動整理整理釋出新版,希望可以帶給大家更好用的酷音並帶動新的創意激發,吸引新血的加入 :)

新版的 libchewing 加入了新的鍵盤格式以及更好用的符號快捷選單,修正了一些嚴重的錯誤。因為 API 以及資料結構的改變,這次釋出不是二進位相容的,使用 libchewing 的程式可能需要適當的修改並重新編譯。

歡迎下載測試

libchewing-0.3.0.901.tar.gz (0.3.1-rc1) md5: 29612220ef1fd00a325a89f6162934ce

scim-chewing-0.3.1.901.tar.gz (0.3.2-rc1) md5: 0910d0d0575d2f2f84403fdb8d622ac7

New Features

  • New keyboard layout DACHEN_CP26.
  • Add key ‘`’ to open symbol table.
  • Erase candidate and reset its length when ‘Esc’ key is handled.
  • Closes candidate window when user pressed ‘Up’ key.
  • Doing select at the end of edit buffer works on the last phrase (interval).
  • Improved reminding message text.
  • Sync with libchewingdata project.
  • A new HanYu-PinYin mapping table
  • More robust behaver when IM crashes.
  • Allow ‘#’ comment and blank line in tsi.src. ? Type symbols easily for PinYin input.

Bug Fixes

  • Fix chewing switch between Full/Half mode and cursor moves one space in gedit.
  • Fix when list available phrases to choice, user’s own phrases are not included.
  • Release PgUp/PgDn key event to running applications.
  • Fix portability issues on FreeBSD.
  • Fix incorrect initialization.
  • Fix pinyin key order, put “shun” before “shuo”.
  • Fix various potenital boffer overflow bugs.
  • Fix various memory leaks.

New/Removed APIs

  • chewing_set_PinYinMethod to support multiple PinYin methods.
  • chewing_handle_CtrlOption was removed.

Internal Structure Changes

  • New structure SymbolEntry.
  • Rename selectAreaLen to candPerPage.
  • Added bEasySymbolInput.

Written by Kanru Chen

September 14th, 2008 at 10:09 pm

Posted in Chewing

Tagged with

Chinese Typing Practice

without comments

輸入法練習用,自己還沒玩過 @@

Chinese Typing Practice

Chinese Typing Practice

http://github.com/kanru/chinese-type-practice

Written by Kanru Chen

September 9th, 2008 at 7:38 pm

Posted in 未分類

omploader

without comments

在某 IRC channel 知道的站:omploader,類似於 nopaste 服務,但是不限制於只能上傳文字,基本上甚麼都可以上傳,檔案大小有 2^25 byte 限制,約 32 MiB。站上以圖片為大宗,速度快,非常適合用來即時分享桌面截圖。還有好用的 firefox-extension,可以即時從瀏覽器上傳有趣的圖片或是網頁。

這個以 ruby 完成的網站,整個站的 source code 包括 firefox-extension 都可以從 svn 得到。

Written by Kanru Chen

September 2nd, 2008 at 10:43 am

Posted in 小工具, 爬網探險

Tagged with

scrot (SCReen shOT)

without comments

scrot 是個非常好用的 command line 抓圖工具,單純的執行 scrot 就會得到一個類似 2008-09-01-224817_1280×768_scrot.png 這樣的檔案,包含全螢幕的 screenshot

使用 -s 參數就可以用滑鼠選擇抓取範圍,使用 -m 參數可以把多螢幕的桌面抓在一張圖裡,使用 -d 可以自訂倒數時間,除了這些,還有許多好用的功能,還可以自訂檔名的格式

還在用 gimp 抓圖嗎?快試試 scrot!

使用 Debian 者可 apt-get install scrot

Written by Kanru Chen

September 1st, 2008 at 10:53 pm

Posted in 小工具, 爬網探險

Tagged with ,

video-intel 2.5 & EXA

without comments

video-intel 自從 2.2 版就預設使用 EXA 加速,而這個新一代的加速引擎卻因為在文字的顯示上非常緩慢,掩蓋了 EXA 本身的優良特性,Debian BTS 上也怨聲載道。video-intel 2.5 Carl Worth 終於解決了這個問題,原來是因為使用過小的 buffer,導致每次 driver 都要等待上一次 composite operation 結束才能重新使用 buffer,在加大 buffer 之後,EXA 的 text rendering 速度甚至超過了 XAA!

全面轉換至 EXA,引入 GEM,video-intel 的效能只會越來越好 :-)

Written by Kanru Chen

September 1st, 2008 at 6:06 pm

Posted in Debian, Linux, Programming

Tagged with , ,