Pages

Saturday, December 22, 2007

暫時回來了

暫時恢復 feed 囉∼

Friday, November 9, 2007

我的初音第一彈

初音隨手畫第一彈

Tuesday, November 6, 2007

C++0x 的新東西

在 PLNews 上看到有人整理了最近一次委員會討論的內容:

Sunday, September 30, 2007

Gimp 2.4.0 RC3

昨天把 gimp 2.4.0rc3 裝起來,相較於 Slackware 附的 2.2.17,新版改進的地方頗多,連只是簡單使用幾分鐘都能感受得到。

Monday, September 24, 2007

Using UTF-8 strings in listings

裝完 TeXLive 又開始試著把一些筆記轉成 TeX 文件。不過剛剛玩了一下,發現在 utf8 文稿中使用 listings 會爛掉,以前正常的文件現在也會出問題了,搞了一晚還搞不定。最後找到一封信有提到解決辦法,只要加上一行設定:

\lstset{extendedchars=false}

加上後果然正常多了。但後面還有一封信指出這樣子產生的 dvi 檔有問題,不過原發問者是在法文環境,而我目前還沒有遇到中文文件爛掉的情況,再玩一陣子看看吧。


This article was originally posted on this site.

Wednesday, September 19, 2007

TeXLive 2007

TeXLive 2007 抓下來已經是上個月的事了,可是因為一些雜事所以一直沒動手。今天剛好趁著颱風假把 iso 燒出來玩。安裝 TeXLive 事實上是很簡單的,但要注意的是,TeXLive 有分 DVD 和 VCD,如果不想安裝在硬碟,而是直接取用光碟內的檔案的話,只能下載 DVD iso。我目前是選擇不安裝到硬碟,好為我可憐的小容量硬碟多搾出一點空間。

Sunday, September 16, 2007

hg 筆記

因為我在考慮把一些 HOME 裡的設定檔 (甚至是系統的) 丟進 hg 控管,所以做了一個小實驗瞭解一下 hg 的能力

Saturday, September 8, 2007

加入水銀黨

前陣子一直覺得 cvs 和 svn 並不是真的那麼好用,因此在看了許多人的介紹後,我也決定加入水銀黨了 (誤...

Thursday, September 6, 2007

Using Vim as a syntax-highlight pager

最近在 Debug 程式時總覺得之前弄出來的 output highlighter 不太夠用,雖然可以很方便標出一些關鍵字,但規則一多就得串一大堆,效率不彰。不曉得腦筋怎麼轉的,突然想到 Vim 應該可以好好利用一下...

Wednesday, August 22, 2007

在 Big5 環境編輯 UTF-8 編碼的檔案

裝起 emacs 快一年了,這期間斷斷續續使用,一直只會基本操作。為了習慣操作方式,我甚至連 Visual Studio 的編輯器都改成 emacs-like key-binding,但在 linux console 時大部份時間還是回到熟悉的 vim 環境,其中一個原因就是找不到自動轉換編碼的設定...

Thursday, August 16, 2007

程式語言與リリカル

看到這個,我開始懷疑神秘的古代魔法其實也只是某種神奇的程式語言,記載在魔法書中;魔法師的修業,其實只是把自己的腦鍛鍊成 compiler 或 interpreter,在口念咒語的同時丟給人腦即時編譯,施展出神奇的魔法。

回到現實,看著眼前的螢幕笑了笑,編程員多半只會是宅宅的麻瓜,但我還是忍不住在我的 vim 裡輸入

リリカル‧マジカル....


This article was originally posted on this site.

Thursday, July 12, 2007

在 cygwin 使用 mrxvt

每次開 cygwin 總覺得很麻煩,沒辦法直接複製貼上,開 rxvt 又會留一個沒用的 cmd 視窗,試了一下午總算找到好方法。

Friday, July 6, 2007

自製的簡易 colordiff

之前發表的 highlighter 工具其實是受到 colordiff 的啟發。colordiff 是一個可以將 diff 的結果上色的 perl script,是相當方便的工具,但它就只認得 diff 出來的格式。為了用在其他地方才包了一個 hl 來用。這個更通用的工具當然也可以用來模仿 colordiff 的功能:

diff_output | hl '^+.*' '1;32' | hl '^-.*' '31'
或乾脆弄一個 alias
alias mycdiff="hl '^+.*' '1;32' | hl '^-.*' '31'"
也可以再串接下去處理更複雜的文字,不過效能上應該比不上 colordiff 本尊就是了


This article was originally posted on this site.

Wednesday, July 4, 2007

console output highlighter

我常常要在一堆 output 中找特定關鍵字,通常是透過 sed 來加上顏色,不過剛剛覺得一大串指令很煩,寫了個簡單的 script 包起來了

下載 highlighter

使用方式很簡單

some_program | hl <keyword> [<ansi color code>]
或是
hl <keyword> [<ansi color code>] < some_file
這邊的 ansi color code 只要填數字的部份,不用加上前面的 Esc[ 與最後的 m

多個關鍵字比較麻煩,目前只能多跑幾次

some_program | hl <keyword1> | hl <keyword2> [ | hl ...]


This article was originally posted on this site.

highlighter

output highlight filter


This article was originally posted on this site.

Wednesday, June 27, 2007

無限プチプチ

剛剛逛 Engadget 看到有趣的東西:無限氣泡墊

∞プチプチ (official site),這裡有幾篇 ,另外還找到幾可亂真,美味可口的 巧克力 氣泡墊

不過距離上市還有一段時間,暫時先玩玩線上版解饞吧!


This article was originally posted on this site.

Sunday, June 3, 2007

BlenderArt Magazine Issue 10 Released

BlenderArt Magazine 是自由的 3D 世界中少見的高品質讀物,每一期都會有一個主題,像是這一期的 Organics,並根據這個主題徵求相關的文章 (可能是建模或打光技巧等等)。偶爾也可以在裡面找到一些有趣的新工具,例如這一期有介紹到 ArbaroIvy Generator 這兩個跟植物建模有關的軟體,看起來應該可以幫忙省下一點時間。

不過最重要的是它可以免費下載,並附上範例檔,很適合自學者參考。不過雜誌內容並不是針對完全的初學者設計的 (內容不是 step by step 教學),可能還是需要熟悉一下基本操作後比較容易進入狀況。

Thursday, May 24, 2007

upgrade to slackware-current

最近幾個晚上都在嘗試手動將系統更新到 current,雖然沒看文件就硬上實在很勇敢,不過 slackware 的優點就是爛了要救回來也不難,它的套件管理系統有一個很棒的特性:upgrade 其實只是 replace,而且因為不做相依性檢查,所以只要一個指令就可以隨心所欲 upgrade 或 downgrade。就是因為這個特性,即使我已經同時使用 debian 將近四年,我還是離不開 slackware (再講下去會不會變成偽推廣文XD)。總之這幾天瞎搞一陣後,大部份問題都解決了。更新過程中最頭痛的三個項目:glibc、Xorg、與 kernel,在此記錄一下目前的情況...

Monday, May 21, 2007

mplayer 的 –enbale-debug 選項

之前因為想找出 ass 字幕爛掉的原因,得編譯一個 debug 版本的 mplayer。但只要一加入這個選項後編譯就會爛掉,會跑出如下的錯誤訊息:

can't find a register in class 'GENERAL_REGS' while reloading 'asm'
當時也沒仔細去找解法,直接用插入 printf 的方法來觀察一些變數,問題也順利解決了。不過昨天把 svn head 抓下來編譯後也是一樣,看來應該是老問題了,查了一下 maillist 發現有人問過,可以參考這幾封信: 解決方法是在 libavcodec/Makefile 的 CFLAGS 加入 -fomit-frame-pointer 參數就好。編譯完果然變得超級肥大...看起來是可以用 gdb 來跑了:
88M mplayer 6.9M mplayer-strip
這問題好像留了好幾年還找不到解決方法,不過在 FAQ 中是把問題推給 gcc,所以在 gcc 的 ml 上也發現有人問過類似的 ....


This article was originally posted on this site.

Saturday, May 5, 2007

AOC 210V 入手

最近因為換了一張工作桌,原本用了超過五年的 17 吋 CRT 就顯得有點笨重,所以花了一點時間研究最近的 LCD 行情,希望換一台比較不佔空間的 LCD....

Friday, May 4, 2007

header, footer

要在 LaTeX 文件中產生精美的 header 與 footer 可以透過 fancyhdr 這個 package 來達成。以下是一個簡單的範例:

\usepackage{fancyheadings} \pagestyle{fancy} \fancyheadoffset{0.3in} \fancyfootoffset{-2.0in} \renewcommand{\headrulewidth}{1.3pt} \renewcommand{\footrulewidth}{0.5pt} \lhead{\slshape \rightmark} \chead{} \rhead{\thepage} \lfoot{} \cfoot{\slshape \leftmark} \rfoot{}

另外還有一些特殊的功能請參考 fancyhdr.pdf


This article was originally posted on this site.

Thursday, April 26, 2007

迷上 BSD

最近投入朝思暮想的 BSD 的懷抱了。不過這個 BSD 不是小惡魔,而是日本衛星的數位節目 BS Digital, 也就是俗稱的小耳朵。自從裝好以後,每天就只想看這些高畫質的衛星節目。除了幾乎每天都有的古典樂節目,還有一些日本動畫和日劇,偶爾還會有一些外國風情的影片。雖然可以看的節目不多,不過已經多到看不完了。現在覺得電視少了政治新聞的謾罵聲,耳根子清靜許多,而且每天還有聽不完的音樂,人生變得超級美好∼終於可以不用再忍受充斥無腦節目國內頻道啦!


This article was originally posted on this site.

screenrc

看到 yungyuc 展示了他的 screenrc 配置,我也來分享一下我的畫面

設定如下:

hardstatus alwayslastline "%{= wk} %{by} %H %{wk} | %-Lw%{kw}◣%{= g}%n%f* %t%{wk}◤%{wk}%+Lw%< %= %{kw}◣%{= R} [%m/%d %c] %{-}"
我很喜歡這個設定,用了快兩年都沒換掉;原本也有加上 caption,不過後來覺得不想多浪費一行,所以就只留 hardstatus 囉。


This article was originally posted on this site.

Sunday, April 15, 2007

OSDC.tw 2007 結束了

沒參與去年度的 OSDC.tw,一直覺得很遺憾,所以今年聽到消息後就一直在留意,這次總算是去湊個熱鬧啦∼

Friday, April 13, 2007

cgdb - curses gdb

gdb 很強大,但是 list source 的部份感覺上並不是那麼好用;Insight 或 ddd 之類的程式雖然有提供 source list window,可惜我得了不用 CLI 就會死的病 (大誤),所以一邊拿自己的生命開玩笑,一邊還是繼續找尋 console 下的解決方案。之前有提到要找找 vim + gdb 的整合方式,找到幾個都很麻煩,我希望盡量不要動到系統本來的程式 (畢竟有些機器不是我的...)。後來從 jserv 的投影片看到 cgdb 這個好東西,馬上下載試試。

編譯後的程式非常小,執行後會將畫面切一半:上面是 source window,下面是 gdb concole。雖然不是直接跟 vim 整合,不過操作上已經是 vi-like 的 key binding,所以使用上還算是順利,只要先搞清楚 CGDB mode、GDB mode、TTY mode、與 file dialog mode 的切換方式就可以開始玩了。另外,在操作 source window 時也可以設定 shortcut 模式,直接下指令給 gdb,省卻在不同模式間切換的時間,相當貼心的設計。

cgdb 的設定檔放在 ~/.cgdb/cgdbrc,可以將設定放在這邊,我目前的設定如下:

set arrowstyle=highlight set autosourcereload set shortcut set tabstop=4 set winsplit=top_big hi Statement cterm=bold ctermfg=6 hi PreProc cterm=bold ctermfg=4 hi IncSearch ctermfg=2 hi LineHighlight cterm=bold ctermfg=3 ctermbg=4
不過設完 highlight 才發現一件事,cgdb 的 lexer 不是很完整,所以對於 "#" 後面有空格的 preprocessor directives 判斷會怪怪的。可以修改一下 clexer.l (放在 cgdb/tokenizer/src)
- #{L}+ { return(TOKENIZER_DIRECTIVE); } + #[ \t]*{L}+ { return(TOKENIZER_DIRECTIVE); }
這樣看起來會正常一點。

目前這個程式感覺上還很陽春,不曉得能不能整合 watch, register, call stack 等等資訊,應該會更方便一些。


This article was originally posted on this site.

Friday, March 16, 2007

shell buffer in vim

之前一直在想,如果可以在寫 python script 時同時開個視窗測試執行結果,應該會方便很多吧。在 emacs 中可以開個 shell buffer 直接使用,不過 vim 中好像沒有這樣的功能。雖然有 ":sh" 指令可以用,可是會把整個環境直接切換到 shell prompt 底下,沒辦法只出現在某一個 window。到官網找了一下,發現有兩個類似的 script:

vimsh 需要在編譯時加入 python support,雖然功能比較完整,不過在一些環境不太方便,所以後來選了 Bexec。安裝方式相當簡單,因為是 VimBall 的格式,只要用 vim 打開下載的 vba 檔,輸入 ":so %" 就可以了。

使用上相當簡單,因為它主要是根據 shebang 來動作,所以第一行一定要加上執行的程式名。接著在 normal mode 輸入 "\bx" 就會自動建立新的 window,並顯示執行後的輸出,內容修改後只要再輸入一次就可以直接更新。不過在有檔案的情形下,它會執行檔案內容,而不是 buffer 內容,記得存檔後再執行。在 visual mode 的話,會執行 buffer 中被選取的部份,測試部份程式碼時相當方便。

要關掉 output window 的話可以用 "\bc" 或 vim 的 window command 來關。不過我在測試的時候發現只要一關掉 output window,以後再開啟的 output window 都關不掉了。查了一下原始碼看不出個所以然,所以修改了一下,讓它只關掉 window,而不刪除 buffer。另外我也加了一個切換用的函式,所有修改如下:

@@ -404,13 +404,18 @@ " Close/Delete the output window/buffer. " function! BexecCloseOut() - silent! exec "bdelete! ".s:bexec_outbufname +" silent! exec "bdelete! ".s:bexec_outbufname + let l:outBuf = bufwinnr(s:bexec_outbufname) + exec l:outBuf . "wincmd w" + exec "wincmd c" endfunction

+let s:isRunBufOpen = 0 " " Wrapper function for visually selected text execution. " function! BexecVisual(...) range + let s:isRunBufOpen = 1 call <SID>BexecDo([a:firstline, a:lastline]) if g:bexec_rehighlight == 1 " Rehighlight selection @@ -422,5 +427,22 @@ " Wrapper function for normal buffer execution. " function! Bexec(...) + let s:isRunBufOpen = 1 call <SID>BexecDo() endfunction + + +" +" Toggle output buffer +" + +function! ToggleRunBuf() + if s:isRunBufOpen == 0 + call Bexec() + else + call BexecCloseOut() + let s:isRunBufOpen = 0 + endif +endfunction

最後只要在 .vimrc 中加上 key binding 就可以方便使用了:
nmap <silent> <unique> <F7> :call ToggleRunBuf() <CR> nmap <silent> <unique> <F8> :call Bexec() <CR> vmap <silent> <unique> <F8> :call BexecVisual() <CR>
除了 shebang 外,也可以根據 file type 來執行對應的 filter,只要修改 bexec.vim 中的 custom filter 定義就可以了。例如針對 html,我就設定了 "w3m -dump" 這個指令,以後就可以直接在 vim 中預覽最後的結果了。當然 txt2tags 文稿也可以,只要把 output 設為 stdout 就好了。比較可惜的是 filter 只能接檔名,不能接受 stdin 的資料,不然就可以串接很多個 filter 了。(是可以改,但很多程式不接受 stdin...想來想去沒找到好一點的改法)

有空再來試試 vim 和 debugger 的整合,在 vim 官網上有找到幾個 script,試用後再來報告。


This article was originally posted on this site.

Friday, March 2, 2007

Blogging with Emacs

原始碼測試

def abc(def):
    pass

換個語言

(defun abc  ()
  (def (ghi "abc")))

第三步測試

播測


This article was originally posted on this site.

Wednesday, February 7, 2007

Running Rainlendar2 on Linux

Rainlendar 是一個小巧的桌面行事曆程式,在 Rainlendar2 推出後,也出現了 Linux 版本;另外還分成免費的 lite 版與收費的 pro 版,同時也取消原始碼下載了 (但舊版原始碼還是可以在這裡找到)。

Sunday, February 4, 2007

大掃除

年關將近,這兩天家裡大掃除,系統也一起大掃除

前天花了點時間把 xfce 升級到 4.4,果然正常許多 (用了好久的 3.xbeta) 然後依造以前構想,把一些套件的原始碼、編譯用的script、和編譯好的套件重新整理一下 目前大概長這樣:

slach/  + script/   編譯用的命令稿  + source/   下載後的原始碼 (裡面依套件名稱建子目錄)   + mplayer/   + xfce/    :  + package/  打包好的套件  + slackware/ 來自官方更新套件 (升級完就可以清掉)

這樣弄起來感覺就像是 freebsd 或 gentoo 之類的系統了@@ 不過我不打算弄那麼完整,越完整的系統代表越少自由度....我只要方便編譯和管理就可以了

slackware 自從 11.0 後就沒什麼動作了,只出現兩個安全警告。所以最近的套件只好自己更新,也因此需要早點把這些東西整理好。依照原本的構想,還需要寫一些管理用的 script....這些等有空一點再來寫一寫吧

另外 gnome 也要找時間清掉,裝了以後只進去過一次,這種硬碟怪物就不需要了....


This article was originally posted on this site.

Thursday, January 4, 2007

Opera (web browser) 試用

因為某些很爛的原因,目前得透過某邪惡 proxy 連出區網,但 Firefox 一直無法連出區網,而我又不想用 IE...所以最近只好改用 Opera 搭配 w3m 作為主要的網頁瀏覽工具。(試過的四個瀏覽器中只有 Firefox 連不出去....)

還沒試過 Opera 之前一直使用 w3m + Firefox,從來沒想過要試試其他工具 (當然以前也用過 lynxlinks,但都被 w3m 取代了),試過之後才覺得人的習慣還真是可怕的東西,安於現況讓我錯過不少有趣的工具。雖然才用了三天,不過整體使用感覺還不錯,目前感受到比 Firefox 好的部份大概有這幾項:

  • 記憶體使用量
  • 下載管理 (不過續傳功能還沒成功過)
  • 網頁 encoding 判別 (相較之下 Firefox 非常笨...連 IE 都不如)
  • Panel 中的 note 功能還蠻實用的 (google notebook 暫時先不用了)
目前覺得比較差的部份 (有可能是設定有問題造成的):
  • redraw 非常慢 (scrolling 的時候特別明顯)
  • 字型設定不太方便
  • 網頁相容性 (像 Thinker 的 blog 就沒辦法看了)
  • 還不支援 Gmail 中的聊天功能 (這對我來說非常重要阿...)
除了 gmail chatting 以外其他都還能接受,比較可怕的是我無法登出 google notebook。明明在 gmail 已經登出了,但只要一連到 google notebook 首頁就會自動登入...刪掉 cookie 也沒用,只能連到其他服務再登出一次 (事實上 Opera 對 gnotebook 的支援很差,無法新增新的 note)。


This article was originally posted on this site.

Monday, January 1, 2007

歌詞加上 LaTeX 的斷行記號

自從幾年前改用 LaTeX 撰寫筆記後,我將大部份的文書編輯需求都慢慢移植過去,連歌詞的記錄也是用 LaTeX 產出精美的 PDF 文件。不過比較麻煩的是歌詞通常都是一段一段的,我不習慣通通串成一行,所以從網路上找到的歌詞都要手動加上斷行,不然產生出來的 PDF 內容會全部擠在一起。

其實也不是沒想過寫個程式來處理,不過我有時候會在 Windows 上作業,還要弄個跨平台的程式頗麻煩 (就算是 script 還是得裝 interpreter 阿...)。剛剛有點受不了了,就研究一下能不能直接在 vim 裡處理掉。

vim 雖然也有很強的文字處理功能,不過因為它的 regex 跟我不太熟 (我比較熟 perl 的...),所以一直不太想用它來處理文字。剛剛翻了一下 help 終於找到我要的東西了,我的需求很簡單:在每個段落中的最後一行除外,每一行的行尾都加上 \\,例如

line1 line2 line3

變成

line1\\ line2\\ line3

要用 vim 在行尾加個東西是不難,不過一直不知道怎麼在 vim 中做判斷,不過知道語法後就很容易了,我可以直接把 perl 的語法轉成 vim 的語法使用:

:%s/\(^[^\\]\+\)\n\([^\r]\)\@=/\1\\\\\r/

這個命令有略過開頭是 \ 的 LaTex 指令,如果不需要的話修改一下就可以了。

其實簡單一點的話也可以把歌詞丟進 verbatim 環境,不過有時候我需要在日文歌詞加上 ruby annotation,一丟進 verbatim 就破功了....(最主要還是為了日文歌詞,因為我幾乎只聽古典樂和 ACG 歌曲)


This article was originally posted on this site.