<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.7-beta2-9582" -->
<rss version="0.92">
<channel>
	<title>林光生活兩光過</title>
	<link>http://blog.yzlin.org</link>
	<description>人生就該悠閒地過，忠實地記錄下人生的軌跡</description>
	<lastBuildDate>Tue, 11 Nov 2008 00:14:06 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Screen + Unicode 補完計畫 (UAO)</title>
		<description>這篇其實很早就有草稿了，只是拖到最近才把它完成。

之前有談過如何設定 Gnu Screen 的方法，如果你常掛在 server 上，那應該對 Screen 這個好用的工具並不陌生。這篇主要是談怎麼 patch 它，來讓它支援 Unicode 補完計畫 (UAO)。

Unicode 補完計畫 (UAO) 對廣大的鄉民來說，可以說是再親切不過的了，BBS 電子佈告欄在台灣相當地盛行，但它底層僅僅支援 Big5，對於鄉民來說，看日文是件再正常不過的事了，但 Big5 畢竟是個急就章推出的編碼 (事實上，它也沒有一個既定的標準，唯一勉強可以稱得上標準的是 Big5-2003)，在當初的設計中並沒有加入日文假名等使用需求。所幸 Big5 有所謂的"使用者造字區"，提供給使用者自行定義新字，也有了後來的"倚天擴充字集"加入了包括日文假名等使用者特殊需求字。

然而，Windows 對於這塊由倚天自行定義的區域，在轉換成 Unicode 時也對應到了使用者造字區，而非它們各自對應到實際在 Unicode 的字，於是造成了 mapping 上的錯誤。UAO 便是為了解決這個問題而產生的，它做的事情只是將這段使用者造字區對應到 Unicode 正確的字。

上面說到的，是針對 Big5 &#60;-&#62; Unicode 的轉換發生在 Windows 的情況，可以利用安裝 UAO 來解決；但因為我的環境是 UTF-8，已經習慣用 Screen 提供的 Encoding Translation 功能來上 BBS 瀏覽文章了，但 ...</description>
		<link>http://blog.yzlin.org/2008/11/11/66/</link>
			</item>
	<item>
		<title>The Tips of Setting Workstation Environment</title>
		<description>這份投影片是之前在系計中內部分享的，整理了一下 share 出來，裡面有些嘴砲請自動略過 XD。有錯也請指正 :) </description>
		<link>http://blog.yzlin.org/2008/11/11/68/</link>
			</item>
	<item>
		<title>Colorize A 256-Color Mutt</title>
		<description>Mutt 是一個我很愛用的 Mail Client，除了平常在用的 GMail 外，其他幾乎都是由它包辦，其實之前就知道 Mutt 支援 256-Color，只是一直沒有時間好好調校，昨天趁著颱風天的下午，在 FreeBSD 上把 Mutt 的 256-Color 設定好了。

在預設的 Mutt color setting 中，單純使用常用的 16-Color 就是用 black, green, red, blue, ..., etc 這類的顏色詞來設定；但是在 256-Color 的環境下，必須使用 color0, color1, ..., color254, color255 來做設定，關於顏色的對照表，可以參考這邊。

這邊提供一下我的設定 (看是要放到 $HOME/.muttrc 或是另放一個檔案，再從 $HOME/.muttrc include 進去)：

color normal        ...</description>
		<link>http://blog.yzlin.org/2008/09/13/60/</link>
			</item>
	<item>
		<title>Zsh - autocomplete error</title>
		<description>最近開始在嘗試一套蠻強大的 shell - zsh，我用過的 shell 沒有很多，最常用的還是 tcsh &#38; sh，bash 以前有用過一陣子。試用了一陣子，覺得它真的蠻強的，可以把 prompt 的介面和 auto-complete 的功能弄得很炫。改天再發篇文寫一下自己的設定心得。

這篇主要是講一下之前遇到的一個問題，在 auto-complete 的設定下，會出現：

_alternative:69: command not found: _canonical_paths

雖然好像可以正常運作，但就是覺得怪怪的，後來 google 了一下，發現了別人的解法，原來是 $HOME/.zcompdump 爛掉，把它砍掉，讓 zsh 自動重建就行了。 </description>
		<link>http://blog.yzlin.org/2008/09/10/56/</link>
			</item>
	<item>
		<title>Make Your VIM &#038; Screen Environment Comfortable</title>
		<description>這份 slide 是之前在 Y 社內部 Intern Sharing 所準備的，算是小技巧大集合，分享出來給大家，希望會有幫助。

裡面提到的大多都是建立在「我所認為舒服的環境」的前提上所給的技巧和設定；每個人有每個人認為舒服的設定，這是很主觀的，所以純粹只是當參考。 </description>
		<link>http://blog.yzlin.org/2008/08/20/53/</link>
			</item>
	<item>
		<title>讓 pure-ftpd 支援 smbfs</title>
		<description>pure-ftpd 要能支援 smbfs 這些比較特殊的 File System，必須在 configure 的時候加入 "--without-sendfile" 這個參數，讓它不使用 sendfile 這個 System Call，在 FreeBSD ports 裡，只需要將預設的 Option "SENDFILE       Support for the sendfile syscall" 取消即可。下面是官方的說明：

--without-sendfile: on Linux, Solaris, HPUX and FreeBSD kernels, Pure-FTPd
tries to reduce the CPU/memory usage by using a special system call (sendfile)
. It works very well with ...</description>
		<link>http://blog.yzlin.org/2008/07/14/51/</link>
			</item>
	<item>
		<title>portconf new feature &#8220;.undef&#8221; 進 ports 了</title>
		<description>之前 po 的那篇幫 portconf 加新功能的，後來聽了 gslin 的建議送了 PR 給作者，剛剛收到 reply mail 通知已經 commit 了。

題外話，最近陸續送了好幾個 PR，也慢慢學習到 ports 的正確包法，對 FreeBSD 的 ports 機制也更了解了，能對 FreeBSD 做出貢獻真的很棒！

Update: 看了一下作者最後的作法，改成了只動到 portconf.sh，主要在下面這行：

echo ${_line#*:} &#124; sed -E 's/([A-Z0-9_]+)(=([^&#124;]+))?/\1=\3/g;s/!([A-Z0-9_]+)=([^&#124;]+)?/.undef \1/g;s/ *\&#124; */&#124;/g;s/ /%/g'

果然高明多了。 </description>
		<link>http://blog.yzlin.org/2008/07/11/47/</link>
			</item>
	<item>
		<title>portconf 中的 .undef 功能</title>
		<description>ports-mgmt/portconf 是個很棒的工具，它的用法就不多說了，google 一下都可以找到很多篇教學，這篇主要是幫 portconf 加入 .undef 的功能。

在 ports 中常常用到一個作法，就是利用 .ifdef 來判斷 WITHOUT_XXX 是否已定義，如果定義了，便加入 XXX 的設定，一個最常見的便是 WITHOUT_X11，對於那些不想裝 XWindow 的機器來說很有用，只需要在 ports.conf 加入：

*: WITHOUT_X11=yes    # WITHOUT_X11 也可

如此一來，所有的 ports 預設便會設定 WITHOUT_X11；但是對於某些套件來說，則必須去掉這個變數才能用到一些 library，最近遇到的例子是，我需要用到 textproc/wv，它 depend on x11-toolkits/gtk20，而 x11-toolkits/gtk20 depend on graphics/cairo，如果 cairo 設定 WITHOUT_X11 來編的話，gtk20 便會編不過出現：

gdkdrawable-x11.c:32:24: cairo-xlib.h: No such file or directory

所以 ...</description>
		<link>http://blog.yzlin.org/2008/07/04/44/</link>
			</item>
	<item>
		<title>Firefox 3 即將推出！快來衝人氣</title>
		<description>
Firefox 3 真是千呼萬喚始出來！終於要在後天 Release 正式版了，雖然我已經從 Beta 用到 RC3 了，不過這次要搞到創紀錄，身為 Firefox 的忠實用戶，一定要參加的，已經在用的，一起來共襄盛舉吧！不過記得要用下載安裝的，不要用自動更新的，不然不會記錄下來；還沒開始用的，相信我！這次不會再有惱人的"記憶體肥大症"，更高的執行效能，那...你還在等什麼？！ </description>
		<link>http://blog.yzlin.org/2008/06/16/42/</link>
			</item>
	<item>
		<title>portconf 處理 soft link 的問題</title>
		<description>ports-mgmt/portconf 是一個很好用的工具，可以設定一個 port.conf，內容大致上的形式是這樣：

editor/vim*: WITH_CSCOPE=yes &#124; WITH_EXUBERANT_CTAGS=yes

如此一來，portconf 便會在 /etc/make.conf 自動去 parse port.conf，然後將對應的參數加入，以上面的例子，如果我安裝 editor/vim or editor/vim-lite 都會自動加入 "WITH_CSCOPE=yes WITH_EXUBERANT_CTAGS=yes"，這樣我們便可以更方便地管理各種不同 ports 的安裝參數。

但是，原本的 portconf 只是單純地判斷是否在 /usr/ports 下執行 make 的，如果 /usr/ports 是使用 soft link 的方式，其 real path 卻是在其它地方，那麼 portconf 便不會運作，它判斷的程式碼是加在 /etc/make.conf：

.if !empty(.CURDIR:M/usr/ports*) &#38;&#38; exists(/usr/local/libexec/portconf)
_PORTCONF!=/usr/local/libexec/portconf
.for i in ${_PORTCONF:S/&#124;/ /g}
${i:S/%/ /g}
.endfor
.endif

從上面可以看到，它是利用 make 的 modifier 去比對，但是 modifier 其後接的 ...</description>
		<link>http://blog.yzlin.org/2008/05/25/36/</link>
			</item>
</channel>
</rss>
