<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="zh-tw"> 
<title>Silent Melody</title> 
<link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net" /> 
	 
	<modified>2008-12-02T16:58:00+08:00</modified> 
<tagline>&lt;p&gt;Money+Alcohol+Cigar+Fame+Girl=ROCK!!&lt;/p&gt;
</tagline> 
<generator url="http://www.lifetype.net/" version="1.2">LifeType</generator> 
 
<copyright>Copyright (c) labyrinth</copyright> 
  
 <entry> 
 <id>tag:blog.iwrock.net,2008-12-02:1248</id>
 <title>About FtpIdx Client</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1248" /> 
  
 <modified>2008-12-02T16:58:00+08:00</modified> 
 <issued>2008-12-02T16:58:00+08:00</issued> 
 <created>2008-12-02T16:58:00+08:00</created> 
 <summary type="text/plain"> 全世界 Ftp Client 軟體這麼多，為什麼還要自己寫呢？當然不是吃飽太閒 XD 我理想中的 FTP Client 要免費、跨平台、支援 UTF-8、支援 ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
OK Computer 
Tcl/Tk 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;全世界 Ftp Client 軟體這麼多，為什麼還要自己寫呢？當然不是吃飽太閒 XD 我理想中的 FTP Client 要免費、跨平台、支援 UTF-8、支援 SSL/TLS、可攜，目前符合的只有 FileZilla，但我一直無法忍受它複雜的介面，用慣FlashFXP 後看到 FileZilla 切割成這麼多的畫面實在是非常不習慣。在自己的站台改成 UTF-8 後發現 FlashFXP 對 UTF-8 支援沒這麼好，於是決定自己來寫一個。一開始很天真的以為 Ftp 就一個口令一個動作，寫起來應該很簡單，真的寫下去後才知道要相容各種 Ftp Server 有多麼複雜 orz (討厭看 RFC)&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/ftpidx1.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;既然要自己寫就先訂出一個標準，除了之前所要的功能外另外設立了幾個目標：&lt;/p&gt;&lt;p&gt;操作介面簡潔&lt;br /&gt;FileZiala預設分割成六個畫面，FlashFXP有四個，總覺得需要這麼多嗎? 第一個砍掉的畫面就是 Ftp 訊息，搞不懂為什麼大家都想要將它顯示出來，或許對於找錯誤很有用，但對於一般使用者只需提示他哪裡出問題就好，例如帳號錯誤。來又想說既然要乾淨就徹底一點，只留下一個畫面就好 (其實我比較偏好兩個畫面 XD)。&lt;/p&gt;&lt;p&gt;設定值少&lt;br /&gt;FlashFXP 光是連線種類的組合就有八種，相較之下 FlieZilla 顯得簡單許多。覺得以靠程式自動判斷的話就不需要使用者去設定，例如 SSL/TLS 連線，可以先試 SSL 不行的話再換成 TLS，不需讓使用者去勾選用哪一種。&lt;/p&gt;&lt;p&gt;支援搜尋&lt;br /&gt;現在硬碟越來越大越來越便宜，如果遇到像我這種習慣看哪顆硬碟有空間就將東西往那丟很少在分類的人來說，要找個檔案或確認檔案有沒有重複實在是很麻煩。FlashFxp 提供搜尋功能，但它是採用目錄一層層進去找的方式，遇到大站非常沒效率。以前學長寫過 FtpLocate 可以透過 web 介面搜尋檔案，建索引後找起來快多了，但對非公開的應用場合或是沒架 web server 的人來說還是不太方便。我的設計是在 Server 端另外跑支 FtpIdx Server 程式定時立索引和回應搜尋要求，這樣可以搭配任何的 Ftp Server，當 Client 也有支援這能時即可將搜尋介面整合在一起。(FtpIdx Server 部分另外再談)&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/ftpidxs.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;例如上圖為搜尋的結果，可以直接點選進入目錄或是加到下載佇列中，在操作上和瀏覽 Ftp 時相同，透過搜尋功能亦可輕易做到列出自從上次登入後 Ftp Server 上新增的檔案列表。 &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/ftpidxq.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;上圖為傳送佇列中的檔案，原本是想學 Mac下的 CyberDuck 那種華麗的畫面，不過用在 windows 上感覺就很怪，這部份有空再研究看看要怎樣顯示比較好。&lt;/p&gt;&lt;p&gt;目前開發到堪用的程度，要釋出還有得等，至少今年是沒時間繼續開發了，頂多偶爾修些小 bug。待寫的功能還一大堆，還有相容性得測，想到就沒力。 &lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-12-01:1247</id>
 <title>last month</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1247" /> 
  
 <modified>2008-12-01T21:49:41+08:00</modified> 
 <issued>2008-12-01T21:49:41+08:00</issued> 
 <created>2008-12-01T21:49:41+08:00</created> 
 <summary type="text/plain"> 上星期結束資格考，度過了年底第一關，接著還得寫程式、寫國科會計畫、寫 paper。好久沒拍照了，好久沒出去玩了，每天在電腦前12小時。聽了 GNR ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
Mad Man Moon 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;上星期結束資格考，度過了年底第一關，接著還得寫程式、寫國科會計畫、寫 paper。好久沒拍照了，好久沒出去玩了，每天在電腦前12小時。聽了 GNR 專輯，還是期待&lt;a href=&quot;http://www.books.com.tw/exep/cdfile.php?item=0020129448&quot; target=&quot;_blank&quot;&gt; LTK 新專輯&lt;/a&gt;比較實在。 &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/DSC_2896.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;So, carry on &lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-11-30:1246</id>
 <title>Tk - TkTreeCtrl &amp;amp; shellicon</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1246" /> 
  
 <modified>2008-11-30T15:19:12+08:00</modified> 
 <issued>2008-11-30T15:19:12+08:00</issued> 
 <created>2008-11-30T15:19:12+08:00</created> 
 <summary type="text/plain"> 我幾乎每個程式都會用到  TkTreeCtrl ，最常用來顯示條列式的 item，甚至還可以拿來做分頁功能的 tab。最近寫 ftp client 時想要顯示的 icon ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
Tcl/Tk 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;我幾乎每個程式都會用到 &lt;a href=&quot;http://tktreectrl.sourceforge.net/&quot; target=&quot;_blank&quot;&gt;TkTreeCtrl&lt;/a&gt;，最常用來顯示條列式的 item，甚至還可以拿來做分頁功能的 tab。最近寫 ftp client 時想要顯示的 icon 和本機上的一樣，TkTreeCtrl 有提供 shellicon 的 package，可藉由建立 shellicon 的 element 和指定 path 來顯示檔案的 icon。&lt;/p&gt;&lt;blockquote&gt;$tree element create elemImg shellicon -size small&lt;br /&gt;$tree item element configure $item name elemImg -path $path&lt;/blockquote&gt;不過 ftp 的檔案在 server 上無法指定 path，所以我就先在本地端建立不同副檔名的檔案，要顯示時再依據副檔名將 path 指定到對應的檔案。在 windows 中有個 assoc 的指令可以列出目前所有副檔名，可由此資訊建立所需的檔案&lt;br /&gt;&lt;blockquote&gt;C:\Documents and Settings\laby&amp;gt;assoc |more&lt;br /&gt;.264x2pass+DvD=264x2pass+DvD_auto_file&lt;br /&gt;.323=h323file&lt;br /&gt;.386=vxdfile&lt;br /&gt;.3g2=mplayerc.3g2&lt;br /&gt;.3gp=mplayerc.3gp&lt;br /&gt;&lt;/blockquote&gt;在第一次啟動程式時先預先建立好對應的檔案即可&lt;br /&gt;&lt;blockquote&gt;proc ::rc::create_mine_icon {mimeDir} {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file mkdir $mimeDir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; close [open [file join $mimeDir mime.unknow] w]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set assocList [exec cmd /c assoc]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach line $assocList {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; set ext [lindex [split $line &amp;quot;=&amp;quot;] 0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if { [string range $ext 0 0] eq &amp;quot;.&amp;quot; } {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch {close [open [file join $mimeDir mime$ext] w]}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;測試建立 840 個檔案只花了約 200ms。下圖上半為預設的 icon，下半為使用 shellicon 後的效果。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/shellicon.jpg&quot; border=&quot;0&quot; /&gt; &lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-11-23:1244</id>
 <title>Lifetype + APC</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1244" /> 
  
 <modified>2008-11-23T14:10:09+08:00</modified> 
 <issued>2008-11-23T14:10:09+08:00</issued> 
 <created>2008-11-23T14:10:09+08:00</created> 
 <summary type="text/plain">有人反應修改 lifetype template 後在 blog 上沒有改變，想說近期只有把  eAccelerator  換成  APC ，去 apc 管理介面看果然 template 都被 cache 住了，第一次用 apc ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
LifeType 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 有人反應修改 lifetype template 後在 blog 上沒有改變，想說近期只有把 &lt;a href=&quot;http://www.eaccelerator.net/&quot; target=&quot;_blank&quot;&gt;eAccelerator&lt;/a&gt; 換成 &lt;a href=&quot;http://tw.php.net/apc&quot; target=&quot;_blank&quot;&gt;APC&lt;/a&gt;，去 apc 管理介面看果然 template 都被 cache 住了，第一次用 apc 沒注意到這個問題，不過感覺上應該要知道 template 有改變過才是(?)，懶得研究 apc cache、lifetype/tmp、template 間的關係，直接用 google 找 apc lifetype template，很失望的看了幾頁都沒人遇到這問題，乾脆去看 APC 手冊比較快。其中有個 apc.filters&amp;nbsp; string，可以用 reg exp 設定哪些檔案不要 cache，直接在 php.ini 的 apc 部分加入&lt;br /&gt;&lt;blockquote&gt;apc.filters= .template.php&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;重開 apache，清 apc chahe 後果然就沒問題了~ 話說，裝了 APC 後感覺真的快很多。&lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-11-03:1235</id>
 <title>Tk - Tile</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1235" /> 
  
 <modified>2008-11-03T04:38:30+08:00</modified> 
 <issued>2008-11-03T04:38:30+08:00</issued> 
 <created>2008-11-03T04:38:30+08:00</created> 
 <summary type="text/plain"> 外表是很重要的，程式寫得再好，外觀醜的話還是沒人想用 XD 所以現在我也開始改用 Tile 來畫 gui 了。從 Tk 8.5 後就內建 Tile，常見的 widget ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
Tcl/Tk 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;外表是很重要的，程式寫得再好，外觀醜的話還是沒人想用 XD 所以現在我也開始改用 Tile 來畫 gui 了。從 Tk 8.5 後就內建 Tile，常見的 widget 都有提供，用 Tile 最大的好處是可以藉由更換 theme 得到與各平台風格相同的外觀，如 windows/linux/mac (可參考 wiki 上的 &lt;a href=&quot;http://wiki.tcl.tk/13636&quot; target=&quot;_blank&quot;&gt;Applications using Tile&lt;/a&gt;)，這樣就不會讓人一看就知道是用 tk 寫的程式 (原本真的蠻醜的)。雖然內建在 tk 8.5 中，但還有很多尚未定案的部份，也就是說還在開發中，這也使得文件有公開說明的部分非常少，有些較舊的文件中提到的語法也無法用了。觀念和用法可看 &lt;a href=&quot;http://www.tkdocs.com/tutorial/styles.html&quot; target=&quot;_blank&quot;&gt;TkDocs&lt;/a&gt; 上寫的，這是我目前找到最詳細的資料，這篇主要是記錄這陣子試出的心得，希望寫程式的宅男即使交不到漂亮女友至少可以寫出漂亮的程式 XD&lt;/p&gt;&lt;p&gt;Tile 目的是要跟各平台外觀相同，這也使得目前的自由度很低，無法任意組合出想要的 widget，看討論區也不知道開發團隊以後會不會往更自由的方向發展，現在只好先以現有的功能拼湊出想要的 widget。之前大都用 BWidge，換成 tile 後發現很多效果做不出來 orz 找了很多資料後目前總算可以擺脫 BWidge。(再嘆一次，&lt;a href=&quot;http://tktable.sourceforge.net/tile/doc/index.html&quot; target=&quot;_blank&quot;&gt;manual上的資料&lt;/a&gt;實在是太少了)  &lt;/p&gt;&lt;p&gt;以下是最近的心得，以後有新的再補充。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;圓角 flat button&lt;/strong&gt;&lt;br /&gt;我在 toolbar 上的 button 會用 -relief flat 但 ttk::buttion 沒提供這 option，manual 上也沒寫到怎麼做，google 許多資料後發現有不同的方法可以達成，不過最簡的方法是加上 -style Toolbutton 即可，原本用 BWidget 畫出來的是方的，現在用 tile 可以畫出圓角的了。&lt;/p&gt;&lt;blockquote&gt;ttk::button .b -style Toolbutton -image $imgs(btn_home)&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;圖示 entry&lt;/strong&gt;&lt;br /&gt;現在 entry 中沒圖示好像就遜掉了 XD，Tile 目前只能自建 image element&lt;/p&gt;&lt;blockquote&gt;ttk::style element create searchEntryIcon \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; image $imgs(e_search) -sticky {} -border 10 -width 20&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;再把它插入 entry中 &lt;/p&gt;&lt;blockquote&gt;ttk::style layout SearchEntry {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Entry.field -children {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; searchEntryIcon -side left&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Entry.padding -children {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Entry.textarea&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;以後指定 style 即可使用&lt;/p&gt;&lt;blockquote&gt;ttk::entry .e1 -style SearchEntry&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;效果像這樣&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/tile2.jpg&quot; border=&quot;0&quot; /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;ScrolledWindow&lt;/strong&gt;&lt;br /&gt;在用 treectrl 時常把 tree丟到 BWidget 的 ScrolledWindow 中，以下是用 Tile 做出來的 (還沒加上自動隱藏 scrollbar)&lt;/p&gt;&lt;blockquote&gt;package require treectrl&lt;br /&gt;set fmeMain [ttk::frame .fmeMain]&lt;br /&gt;set scv [ttk::scrollbar $fmeMain.scv -orient vertical ]&lt;br /&gt;set sch [ttk::scrollbar $fmeMain.sch -orient horizontal ]&lt;br /&gt;set t [treectrl $fmeMain.tree \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -usetheme 1 \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -relief groove \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -bd -0 \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -highlightthickness 0 \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -xscrollcommand [list $sch set] \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -yscrollcommand [list $scv set] &lt;br /&gt;]&lt;br /&gt;set columnID [$t column create -text test]&lt;br /&gt;$t element create elemBorder border -background white \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -filled yes -relief solid -thickness 1 &lt;br /&gt;$t element create elemText text&lt;br /&gt;$t style create style1&lt;br /&gt;$t style elements style1 {elemBorder elemText}&lt;br /&gt;$t style layout style1 elemBorder -union elemText -ipadx 4 -ipady 4&lt;br /&gt;$t style layout style1 elemText&lt;br /&gt;for {set i 1} {$i &amp;lt;= 30} {incr i} {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set itemID [$t item create]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $t item style set $itemID $columnID style1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $t item element configure $itemID $columnID elemText -text &amp;quot;Item $i&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $t item lastchild root $itemID&lt;br /&gt;}&lt;br /&gt;grid $t -row 0 -column 0 -sticky news&lt;br /&gt;grid $scv -column 1 -row 0&amp;nbsp;&amp;nbsp;&amp;nbsp; -sticky ns&lt;br /&gt;grid $sch -column 0 -row 1&amp;nbsp;&amp;nbsp;&amp;nbsp; -sticky ew&lt;br /&gt;grid columnconfigure $fmeMain 0 -weight 1&lt;br /&gt;grid rowconfigure $fmeMain 0 -weight 1&lt;br /&gt;$scv configure&amp;nbsp; -command [list $t yview]&lt;br /&gt;$sch configure&amp;nbsp; -command [list $t xview]&amp;nbsp;&amp;nbsp; &lt;br /&gt;pack $fmeMain -fill both -expand 1 &lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-11-03:1234</id>
 <title>Tcl - mysqltcl</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1234" /> 
  
 <modified>2008-11-03T03:13:39+08:00</modified> 
 <issued>2008-11-03T03:13:39+08:00</issued> 
 <created>2008-11-03T03:13:39+08:00</created> 
 <summary type="text/plain"> 最近都埋首在 ftpidx 的開發，上星期寫完 v0.4 學了很多新東西，得找個時間整理。v0.4 改為直接連 server 查詢，和 idx server 間的通訊用 ssl ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
Tcl/Tk 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;最近都埋首在 ftpidx 的開發，上星期寫完 v0.4 學了很多新東西，得找個時間整理。v0.4 改為直接連 server 查詢，和 idx server 間的通訊用 ssl 加密，帳號跟 ftp server 同步。剛寫完時很滿意，不過才用了兩天就又想砍掉重寫 XD 這部份就等 v0.5 出來後再說了。。。&lt;/p&gt;&lt;p&gt;各 ftp server 帳號機制不同，要全都支援有點麻煩，idx server 將帳號認證部份獨立出來，可以使用簡單的文字檔或是 source 各 ftp 專用的 code。我的 ftp 用 pure-ftpd + mysql，當初是想說主機上有 mysql，且有人寫 php 的帳號管理還蠻方便的，現在的話會想自己寫 pure-ftpd的認證模組，把帳號資料存在 sqlite (最近老是想把東西都往 sqlite 中塞，真的是太好用了~)，好處是可以自行加入更多的管控功能，例如流量超過多少會被 ban 幾天之類的。&lt;/p&gt;&lt;p&gt;Tcl 用 sqlite 很方便，其實連 mysql 也是超簡單。pure-ftpd 連 mysql 的資訊存在 pureftpd-mysql.conf 中，以&lt;a href=&quot;http://download.pureftpd.org/pub/pure-ftpd/doc/README.MySQL&quot; target=&quot;_blank&quot;&gt;官網的範例&lt;/a&gt;來說，須先抓到下列資料&lt;/p&gt;&lt;blockquote&gt;MYSQLUser       root&lt;br /&gt;MYSQLPassword   rootpw&lt;br /&gt;MYSQLDatabase   pureftpd&lt;br /&gt;MYSQLCrypt      cleartext&lt;/blockquote&gt;&lt;pre&gt;只要一行就可連上 (連線+指定 db)&lt;/pre&gt;&lt;blockquote&gt;set sql [mysqlconnect -host localhost -user root -password rootpw -db pureftpd] &lt;/blockquote&gt; 查密碼、關閉連線 &lt;br /&gt;&lt;blockquote&gt;set pwr [mysqlsel $sql [subst {SELECT Password FROM users WHERE \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; User=&#039;$id&#039;}] -flatlist] &lt;br /&gt;mysqlclose $sql&lt;/blockquote&gt;再依據 MYSQLCrypt 設定的加密方式將傳入的密碼和查詢的密碼比較即可知道是否正確。 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-10-06:1178</id>
 <title>Konica Auto S3</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1178" /> 
  
 <modified>2008-10-06T15:40:51+08:00</modified> 
 <issued>2008-10-06T15:40:51+08:00</issued> 
 <created>2008-10-06T15:40:51+08:00</created> 
 <summary type="text/plain"> 自從看了 Konica C35 拍出的照片後就深深迷上它的色調，在拍賣上遇到兩次便宜且品項不錯的 C35 automatic 可惜都太晚下標，就在為了和一台在台南只賣 ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
phOtO 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;自從看了 Konica C35 拍出的照片後就深深迷上它的色調，在拍賣上遇到兩次便宜且品項不錯的 C35 automatic 可惜都太晚下標，就在為了和一台在台南只賣 $1000 的 C35 automatic 擦身而過所懊惱時，有人丟出一台 Auto S3 含皮套 (C35 FD 外銷版)，看品項正常後毫不猶豫買下我的第一台 RF 相機。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/DSCF2708.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;和底片盒的大小比較看看，真是台精巧的小相機，拿在手上操作的手感極佳。底片是去王冠買的 DNP Centuria 100 一捲才 $36，剛好拿來試拍用。去買的時候記得要印下王冠在Y拍/露天的拍賣頁面才能用這價格買，像我忘了印 200 的就不賣我。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/DSCF2750.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;最迷人的部份，Hexanon 38mm F1.8 的鏡頭，比起一般 C35 用的 F2.8 光圈大多了，當然價格也多了非常非常多 (產量稀少也是一個原因吧)，不過遇到便宜品像差的 C35 automatic 還是會購入拿來改半格機。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/DSCF2712.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;和我平常慣用光圈先決不同，這台是採快門先決。 &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/DSCF2734.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;當決定快門速度後，在觀景窗中會顯示目前測光所得到的光圈值，中間黃色區域是用來對焦的，調整至影像重疊即可。(這張拍得不明顯) &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/DSCF2746.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Reference：&lt;/em&gt;&lt;/p&gt;&lt;p&gt;[1] &lt;a href=&quot;http://blog.roodo.com/subing/archives/2526334.html&quot; target=&quot;_blank&quot;&gt;酥餅的BLOG 千挑萬選選中Konica Auto S3&lt;/a&gt;&lt;br /&gt;[2] &lt;a href=&quot;http://www.in-photoart.com/newsite/forum_detial.php?md_id=1235&amp;amp;level1_id=1&amp;amp;level2_id=1&amp;amp;page=1&quot; target=&quot;_blank&quot;&gt;IN硬攝影 Konica C35 automatic (介紹)&lt;/a&gt;&lt;br /&gt;[3] &lt;a href=&quot;http://www.in-photoart.com/newsite/forum_detial.php?md_id=1235&amp;amp;level1_id=1&amp;amp;level2_id=1&amp;amp;page=1&quot; target=&quot;_blank&quot;&gt;我買的 Konica Auto S3 &lt;br /&gt;&lt;/a&gt; &lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-10-02:1207</id>
 <title>Tcl - tclkit 增加 big5 字集</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1207" /> 
  
 <modified>2008-10-02T19:54:59+08:00</modified> 
 <issued>2008-10-02T19:54:59+08:00</issued> 
 <created>2008-10-02T19:54:59+08:00</created> 
 <summary type="text/plain"> 大部分包好的 tclkit 都沒有 big5，此時便須自行加入 (以 windows 環境為例)    下載已包好的  tclkit  (例如 tclkit-gui-854.exe) 下載  sdx  (sdx.bat、sdx.kit) 下載 ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
Tcl/Tk 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;大部分包好的 tclkit 都沒有 big5，此時便須自行加入 (以 windows 環境為例)&lt;/p&gt; &lt;ol&gt;&lt;li&gt;下載已包好的 &lt;a href=&quot;http://www.patthoyts.tk/tclkit/win32-ix86/&quot; target=&quot;_blank&quot;&gt;tclkit&lt;/a&gt; (例如 tclkit-gui-854.exe)&lt;br /&gt;下載 &lt;a href=&quot;http://www.equi4.com/pub/sk/&quot; target=&quot;_blank&quot;&gt;sdx&lt;/a&gt; (sdx.bat、sdx.kit)&lt;br /&gt;下載 &lt;a href=&quot;http://www.equi4.com/pub/tk/&quot; target=&quot;_blank&quot;&gt;tclkitsh&lt;/a&gt; (tclkitsh-win32.upx.exe) 並改名為 tclkitsh.exe&lt;br /&gt;下載 &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=10894&amp;amp;package_id=10452%20%28tcl8.5.4-src.tar.gz%29&quot; target=&quot;_blank&quot;&gt;Tcl source&lt;br /&gt;&lt;/a&gt;&lt;blockquote&gt;2008/10/02&amp;nbsp; 下午 07:19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 44 sdx.bat&lt;br /&gt;2008/10/02&amp;nbsp; 下午 07:20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 105,528 sdx.kit&lt;br /&gt;2008/10/02&amp;nbsp; 下午 07:32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,402,113 tcl8.5.4-src.tar.gz&lt;br /&gt;2008/10/02&amp;nbsp; 下午 07:15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,256,983 tclkit-gui-854.exe&lt;br /&gt;2008/10/02&amp;nbsp; 下午 07:25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 495,054 tclkitsh.exe&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;unwrap tclkit-gui-854.exe，解出 tclkit-gui-854.vfs 目錄&lt;br /&gt;&lt;blockquote&gt;C:\code\tclkit&amp;gt;&lt;strong&gt;sdx unwrap tclkit-gui-854.exe&lt;/strong&gt;&lt;br /&gt;193 updates applied&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;由 Tcl Source 中的 ibrary\encoding 目錄取出要的編碼 big5.enc 放至 tclkit-gui-854.vfs\lib\tcl8.5\encoding 中&lt;/li&gt;&lt;li&gt;分開 tclkit 資料和程式&lt;blockquote&gt;C:\code\tclkit&amp;gt;&lt;strong&gt;sdx mksplit tclkit-gui-854.exe&lt;/strong&gt;&lt;br /&gt;tclkit-gui-854.head: 825344 bytes&lt;br /&gt;tclkit-gui-854.tail: 431639 bytes&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;包新的 tclkit&lt;br /&gt;&lt;blockquote&gt;C:\code\tclkit&amp;gt;&lt;strong&gt;sdx wrap tclkit-gui-854.new -runtime tclkit-gui-854.head&lt;/strong&gt;&lt;br /&gt;194 updates applied&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;將 tclkit-gui-854.new 改名為你要的新檔名，例如 tclkit-gui-854.big5.exe&lt;br /&gt;&lt;blockquote&gt;2008/10/02&amp;nbsp; 下午 08:18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,289,409 tclkit-gui-854.big5.exe&lt;br /&gt;2008/10/02&amp;nbsp; 下午 07:15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,256,983 tclkit-gui-854.exe&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;執行新包好的 tclkit-gui-854.big5.exe 看有沒有問題&lt;br /&gt;&lt;blockquote&gt;(tclkit) 1 % &lt;strong&gt;lsort [encoding name]&lt;/strong&gt;&lt;br /&gt;ascii &lt;strong&gt;big5&lt;/strong&gt; cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp737 cp775 cp850 cp852 cp855 cp857 cp860 cp861 cp862 cp863 cp864&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;以後就可以直接拿 tclkit-gui-854.big5.exe 來包程式了~&lt;/p&gt;&lt;p&gt;Reference：&lt;br /&gt;[1] &lt;a href=&quot;http://www.equi4.com/tclkit/unicode.html&quot; target=&quot;_blank&quot;&gt;unicode encodings&lt;/a&gt;&lt;br /&gt;[2] &lt;a href=&quot;http://got7.org/dai/note.php?co=TclTk&amp;amp;item=tclkit-b.html&amp;amp;t=2008-07-15&amp;amp;title=%AD%D7%A7%EFtclkit&quot; target=&quot;_blank&quot;&gt;修改tclkit&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-09-17:1192</id>
 <title>be very happy</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1192" /> 
  
 <modified>2008-09-17T22:00:36+08:00</modified> 
 <issued>2008-09-17T22:00:36+08:00</issued> 
 <created>2008-09-17T22:00:36+08:00</created> 
 <summary type="text/plain">  Radiohead / In Rainbows  中附的圖。      前幾天看了 X Files：I Want to ...</summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
Mad Man Moon 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;&lt;a href=&quot;http://www.books.com.tw/exep/cdfile.php?item=0020122654&quot; target=&quot;_blank&quot;&gt;Radiohead / In Rainbows&lt;/a&gt; 中附的圖。 &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/DSC02493.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;前幾天看了 X Files：I Want to Believe，大學時常在宿舍搶電視看影集，或許是期待太大，看完後很失望，居然沒有外星人! 劇情也略嫌簡略，感覺就像是把影集節奏放慢拉長而已，只好把它當成 Mulder 和 Scully 的感情補完計畫吧。&lt;/p&gt;&lt;p&gt;因為 I don&#039;t belive 所以才要說 I want to bleieve，所以 unhappy 的話就要貼上 be very happy。  &lt;/p&gt;&lt;p&gt;最近拍的照片都非常的灰灰灰，看了 z 推薦的&lt;a href=&quot;http://zh.wikipedia.org/wiki/%E6%A5%B3%E5%9C%96%E4%B8%80%E9%9B%84&quot; target=&quot;_blank&quot;&gt;楳圖一雄&lt;/a&gt;也是非常的灰灰灰，還好聽的音樂大都是 X Japan。今天又把古谷實的機車人生拿出來看，我是否也該拋棄青春的毒？但故事還不能結束啊。&lt;/p&gt;&lt;p&gt;這幾天狀況實在是非常糟，糟到連用不到一年的 nikon 鏡框都莫名奇妙的斷掉，現在只能先用快乾勉強黏住。在運勢這麼糟的時候我還去做了冒險的事，就算是深海魚男也得慢慢上浮，先確認沒有危險，浮上一些，再度確認沒有危險，繼續浮上一些。希望不是被漁船的光亮所吸引而衝動上浮，結果眼睛突出內臟爆裂而亡，然後出現在料理東西軍中落敗主廚的晚餐上。&lt;/p&gt;&lt;p&gt;苦悶的日子不是沒有過，高中時每天下課先拿書包去 K 館佔位置，接著去打球或打電動，晚餐後回到幾乎 99.99% 是男生並充滿著汗臭的悶熱空間唸書。那時 CD 隨身聽裡擺的大都是 Megadeth 之類的 metal 團，我曾一度深深覺得只有 metal 才是王道，扭曲的 distortion 聲響是力量，用來對抗這歪斜的世界。只是現在 LTK 都改唱晚安台灣不打手槍了，&lt;a href=&quot;http://www.books.com.tw/exep/cdfile.php?item=0020126971&quot; target=&quot;_blank&quot;&gt;Metallica 新專輯&lt;/a&gt;聽過一遍就不想再聽，Megadeth 新的 &lt;a href=&quot;http://www.amazon.com/That-One-Night-Buenos-Aires/dp/B000LPS2P4&quot; target=&quot;_blank&quot;&gt;That One Night&lt;/a&gt; DVD 也只專心看完 Hangar 18 那段。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.books.com.tw/exep/prod/booksfile.php?item=0010411188&quot; target=&quot;_blank&quot;&gt;荻原浩 / 我的媽媽是殺手&lt;/a&gt;中說開槍時要在心裡默唸 God bless you，說 God 的時候要瞄準目標，說 bless 時把手指力量放在板機上，說 you 的時候扣下板機。那要跳樓的話不就是說 God 時低頭注視地面，說 bless 時墊起腳尖，說 me 時用力一躍而下。即使說了 God bless you 目標還是得死，即使說了 I want to believe 心裡還是不相信，即使桌前貼了 Be very happy 結果還是。。。。。&amp;nbsp; &lt;/p&gt;&lt;p&gt;LHC 的粒子還在加速中，現在期待撞出黑洞還太遙遠，看資料說撞出黑洞吞掉地球的機率大概比我自己造核彈來炸還低，只能聽著 &lt;a href=&quot;http://www.books.com.tw/exep/cdfile.php?item=0020094506&quot; target=&quot;_blank&quot;&gt;GNR / Appetite For Destruction&lt;/a&gt; 增幅心裡的欲望。&lt;/p&gt;&lt;p&gt;&lt;em&gt;BGM：Joy Division / New Dawn Fades&lt;/em&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;em&gt; A change of speed, a change of style.&lt;br /&gt;A change of scene, with no regrets,&lt;br /&gt;A chance to watch, admire the distance,&lt;br /&gt;Still occupied, though you forget.&lt;br /&gt;Different colours, different shades,&lt;br /&gt;Over each mistakes we&#039;re made.&lt;br /&gt;I took the blame.&lt;br /&gt;Directionless so plain to see,&lt;br /&gt;A loaded gun won&#039;t set you free.&lt;br /&gt;So you say.&lt;br /&gt;&lt;br /&gt;We&#039;ll share a drink and step outside,&lt;br /&gt;An angry voice and one who cried,&lt;br /&gt;We&#039;ll give you everything and more,&lt;br /&gt;The strain is too much, can&#039;t take much more.&lt;br /&gt;Oh, I&#039;ve walked on water, run through fire,&lt;br /&gt;Can&#039;t seem to feel it anymore.&lt;br /&gt;It was me, waiting for me,&lt;br /&gt;Hoping for something more,&lt;br /&gt;Me, seeing me this time, hoping for something else.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Hamburg 2001. Joy Division cover by John Frusciante &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; width=&quot;450&quot; height=&quot;350&quot; data=&quot;http://www.youtube.com/v/2d9-ZjcFqiA&quot; id=&quot;ltVideoYouTube&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/2d9-ZjcFqiA&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;&lt;param name=&quot;allowScriptAcess&quot; value=&quot;sameDomain&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;best&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;&lt;param name=&quot;FlashVars&quot; value=&quot;playerMode=embedded&quot; /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
</content> 
</entry> 
 
 <entry> 
 <id>tag:blog.iwrock.net,2008-09-16:1188</id>
 <title>Run away from reality</title> 
 <link rel="alternate" type="text/html" href="http://labyrinth.blog.iwrock.net/post/2/1188" /> 
  
 <modified>2008-09-16T00:23:44+08:00</modified> 
 <issued>2008-09-16T00:23:44+08:00</issued> 
 <created>2008-09-16T00:23:44+08:00</created> 
 <summary type="text/plain">    又退回泥沼。  Cynical。   Gotta find my way outta here。 </summary> 
 <author> 
  
 <name>labyrinth</name> 
 <url>http://labyrinth.blog.iwrock.net</url> 
</author> 
<dc:subject>
Mad Man Moon 
</dc:subject> 
 <content type="text/html" mode="escaped" xml:lang="zh-tw" xml:base="http://labyrinth.blog.iwrock.net"> 
 &lt;p&gt;&lt;img src=&quot;http://labyrinth.blog.iwrock.net/gallery/2/1510-DSC02385.jpg&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;&lt;p&gt;又退回泥沼。&lt;/p&gt;&lt;p&gt;Cynical。 &lt;/p&gt;&lt;p&gt;Gotta find my way outta here。&lt;/p&gt; 
</content> 
</entry> 
 
</feed>