2008/10/27

[+/-] : 曇花

comments
家裡種的曇花開花了...
這是今年第二次開花吧...
上次開剛好沒看到...這次要照起來
相簿: http://picasaweb.google.com/josh0821/cNvTII
曇花

這次開了三朵...還有一朵還沒開..
還不錯漂亮 ... 雖然照相技術不好 XD
2008/09/16

[+/-] : 上線登入國軍Online

comments
一早要出發當兵去了...
blog休兵一個月....
雖然他本來就是在廢止狀態XD
2008/09/12

[+/-] : 20080909-0911 澎湖行

comments
相簿 http://picasaweb.google.com/PenghuTrav2008
心得有空再補@@...
好懶惰
2008/08/08

[+/-] : 奧運開幕...

comments
今天是八月八號 父親節... 祝大家父親節快樂
也同時是奧運的開幕典禮....將在稍候八點零八分開始

不過這不是這篇重點...XD
現在最火紅的 是在台中的熱身賽...
由中華隊 對上 統一獅....
現場已經超過一萬五千名觀眾進場...
內野已經全爆了 而且開放外野進場...
從八搶三之後 很久沒看過台灣棒球場上有這麼多人了

總之就是 中華隊加油...

進北京 拿冠軍...^^
2008/07/30

[+/-] : 畢業...

comments
雖然因為颱風來 口試延了一天....
不過幸好多了一天來準備... 所以可以把東西準備好
因此昨天早上也就順利的口試完...
拿到審定書 馬上去重新裝訂論文
一個下午就把離校手續跑完 順利拿到畢業證書 *^^*

今天一整天都很空虛 有種突然不知道要幹麼的感覺...
雖然論文還要改...之後也還有專案要作...
不過還是很希望有這種不知道要做什麼的時間出現...
這是多年來難得的假期吧... 所以 回家吧
2008/07/26

[+/-] : 謝師宴

comments
昨天晚上迅速的舉行了謝師宴...
本來是有人畢業了要走 找大家去去聚餐...
不過順便找了老闆 就變成謝師宴了...XD

晚上在伊江吃滇緬料理... 還蠻好吃的
上次大師兄回來也是吃這裡
是酸酸辣辣的口味 超級下飯 一口氣吃了三碗白飯下肚
然後很順利的把禮物也算給了老闆...

本來應該是一場美好的謝師宴才對....
不過我還沒畢業 還沒口試... 論文也還沒搞定
而且現在又有颱風要來攪局...
2008/07/24

[+/-] : 最後關頭

comments
這個星期真的是最後關頭了....
這星期搞定 就順利畢業 當兵工作去....
搞不定就明年再來吧...XD

目前程式寫好 各種方法的也都整合起來..
圖基本上都抓完 數據也跑完了幾組 應該是足夠了...
投影片之前就做完了 只差把新的圖補上去
不過有些說明要重新製作就是了

接下來就是趕工寫文章... 不過我文筆爛...
再加上論文又很嚴謹 一直查資料作驗證 進度很慢
不過目前是用中文寫 已經算還過得去了...
等口試完要將論文翻成英文再送交 到時候又頭大了
稍早將word的格式都搞定 直接先用word來寫了
等翻譯實在轉成LaTex的格式...

另外就是程式有一個很奇怪的問題...
就是不能編譯成release的版本...
只要DX SDK的lib換成release版 (d3dx9.lib)
在最後一個pass就會畫不出東西來
換成d3dx9d.lib 就正常..不知道是哪一個指令有問題
被迫使用debug版的程式來跑數據....
雖然性能影響不多...因為限制都是在gpu上...
幾乎都是因為shader code 太複雜而在拖效能
不過還是有real time 所以ok的啦.... 希望口試時不會被定太慘XD

就繼續寫吧 趕工中....
2008/07/22

[+/-] : Domain, template 修改

comments
雖然我的Domain申請了很久 不過一直都只有拿來作google apps的使用
今天終於想到要把blog也轉換過去...因此人氣跟排名都要重新累計了
正式網域為 blog.jostudio.net
目前還有兩年到期 希望到時候會記得去續約...XD

除了改網域名稱外 template有稍作修改...
另外把原本右邊的badge從Jaiku的版本換成Twitter的版本 (參考)
然後把原本的自我介紹拿掉了... 因為沒人想看吧XD
最後就增加了一個公益廣告上去... 是BloggerAds所提共的 因為


不過因為adblock的關係 自己是看不見的XD
2008/07/10

[+/-] : 嘟嘟達成無安打比賽

comments
今晚還有另一個令人注目的消息...
就是潘威倫達成中華職棒第八場的無安打比賽
第六場完投九局的無安打比賽
也是第一個無四死球的無安打比賽...
僅僅差了第一局第一人次因為接球失誤而上壘
真的恭喜嘟嘟...

不過因為去看了赤壁竟然沒看到比賽
實在是很令人難過...

[+/-] : 赤壁

comments
寫程式寫的很累...又趁著影城還在特價
就衝去看赤壁啦...剛好今天上映
因為是暑假 又特價的關係吧 排隊的人非常多
僅次於上次去看長江七號的盛況吧...
先請人買票 然後去吃馬路上日式料理
再悠哉悠哉的去看電影... 一點都不像是要趕畢業的人@@

一開始就是挾天子以令諸侯的場景來開始...
幹掉孔融之後 接下來就是拿下荊州跟新野而有長坂之戰
接下來就是很壯闊的戰爭場景... 也是介紹武將一一出場的地方
說到長坂之戰當然少不了趙雲七進七出救阿斗的故事啦...
成功逃出之後 就是諸葛亮到東吳去大顯口舌之時啦...
本來很嚴肅的歷史鉅作就變成了搞笑片了...XD

接下來就先後有小喬跟孫尚香的出場
為陽剛之氣很重的三國故事增添一點紅花來襯托...
也修改了曹操要攻打吳國的目的...竟然只是為了女人??
接下來曹操正式發兵進軍至烏林時
又偷偷發兵跟蜀吳聯軍打了一戰...
本來在長阪之戰中張飛的虛張聲勢
跟孔明的八卦之陣竟然在此都用上了....XD
曹操的偷襲之軍敗陣 而水軍集結烏林 跟赤壁打對台
故事自此 欲知後事 請見下回分曉 XD

雖然本來就知道會分上下兩集 不過結束的時候還是幹聲連連
但是電影演到此影經大概花了兩個小時又十五分鐘了吧...
再影下去觀眾應該也是受不了...

整體感覺還不錯 該嚴肅有嚴肅 該歡笑也有歡笑...
戰場也有戰場的樣子 但是
0-0的演技還是有待加強 感覺不出丈夫要上戰場的那種感覺
而最後八卦陣時 密集戰鼓實在令人注目...
但是陣法太遜... 人牆的距離感覺有點短
看不出困的住幾千兵馬的樣子...
反正都已經作成電腦動畫 應該要讓他在更壯闊一點會更好
2008/07/08

[+/-] : 找出所有連到你Gmail的連線

comments

Gmail常有人抱怨安全性不佳 被盜帳號等問題
因此google推出 tracking open sessions的功能
來找出所有連到你gmail的所有連線
或許能提前找出一些安全漏洞...

所紀錄的資訊有 連線方式 IP 跟時間
像是無論使用pop3 網頁 還是手機登入 都會被記錄下來
如果有遠端連線忘記登出 還可以遠端進行登出的動作
來避免一些安全上的顧慮

參考資料 Find Who Has Access to Your Gmail Account


--
常見連線方式:
Browser
Google Desktop
Google Toolbar
POP3
IMAP
Mobile
2008/07/02

[+/-] : 測試文章 修改template 新增文章加密

comments
Vincent的網誌得知 可以將任何blog中文章加密的方式
使用AES256加密 並利用javascript解密...
只要密碼保護的好 應該是蠻安全的才是

首先在template中加入他提共的js檔
<script src='' type='text/javascript' />
將你要加密的本文到Vincent Cheung網站上先進行加密 並記好密碼
最後在在blog中貼上
<a href="javascript:Decrypt_text('獨一無二的標籤名稱');">文章保護 請輸入密碼</a>
<div id="獨一無二的標籤名稱">密文</div>

或是不顯示密文的方式如
<a href="javascript:Decrypt_text('獨一無二的標籤名稱', '密文');">文章保護 請輸入密碼</a>
<div id="獨一無二的標籤名稱"></div>

範例1 密碼:密碼保護,請複製我
GP63QMZMd7sUFnX5LpypaYUkzGQNsWlAnal+ivdrvEuLrWoA2bEMiiUjmm6a
QAlVRr04rgzQbGsCfho6xt34YGyTD1PCVljEOJtq10j51AcVPrtSwPs0098j
e4FGYzvZWu9QrEQjwkRrP8DRbIup/U9tW06+Tb8hKX6iI3ZBwJ2pWaxOGmyV
ceJOKNfsN4OR5XBE1ANWAzow0QOpGGBfxbKpC9B3ZYfaoPP4HlJCeN4muZ9r
V+LhYGklDk8XFrpY/XYI+n3a+idRbXQQA1fNIaVFMXwvCMo0JOXLilIznW0d
OnTVifXSxdNBtpYueppq1ej3U6uabMYlAQAuJ23++cL/EsaCqaQu1dXVpP7A
sJJUdEN6u6siMsagELDh91EUPWRSwGmC95asFvAU+XwlniVzkDXF+1LaSojP
u+O/CndvhxmHxSNDm1lG3C9yDia4qffxXCM6Zhq0/0oNyui7cCor+NR/qiif
ZDLecTT9ENJ7WtxcUOpIbge2gMk3P7gfy1xXNhVOPSIM1n8ygkuHphJjwd7m
ZlD7IKPfLhiKlu4izrQe13FdxCFQmbWWHznofbN5KbQ3IBDAQ2apOO5aZXVG
Oasa6JNC4GF7wC7oBVXRWhACHZ5ZhRawlQ/CxigaI+mFZkBIkb1qsAe9NGZM
rCA0Yqkh2BTfJeoXDfJKU31jJyQpzlm1Ro84CskGBEyhsmXRIJGvbKJzdFQN
2MHZtNp/x7pBbPevCcckOV/HEFygZRyY6sbTEKvjJDyYuuwEwtM1UeyAa/aw
gQmtosi666fLgBn0B6rbRTJTRg6la/VKj504JKKogBQCkYc3o3r65+JtI2Xy
30AnDtJtUBsr7HmEehqk45B/mtZkcRrop5ab/e/61op96i8+3qkPH5Hbwixq
Fdu0RYh0TQ/8xFo9SYDYzQAauwwGNVSZNqUUExpEAAL/TPE+Fl/xV6oQLB3I
3nlzJuchH/Ac/9G/pIiXh7kQV5xZT2QfYzbirZKlEIWOnlarO+oZCSJGQuy0
RwxkXPrfddwgTRWd/MerholG6o54aSEDVZO1SC6qUsHKAzVDS3U5Y3J/DL3v
djc88ffmFNlJX+TbXxup1/qROIJBykz1yG9A9/D+ZJ6IT1JnD+wr+rbqCdTC
4DDevZE9RCEfr+7iWkMfZr5UnRuT7CCsEQ==


範例二 密碼:中文密碼也可以


--
加解密備份
update 20080702 新增縮合功能
update 20091201 新版加解密工具 新版Script 舊的加解密工具因為google pages關閉而失效
update 20091230 新增加解密工具備份 舊版(目前使用) 新版
2008/06/20

[+/-] : Flash 9.0.124 解決crossdomain問題

comments
經過搜尋及實驗測試...在新版的Flash 9.0.124中要跨Domain讀取資料
終於解決 crossdomain.xml 的問題
同時 就算資料來原在GAE上 一樣可以運作範例如下

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

其中 新增了allow-http-request-headers-from的欄位
其中 headers依照服務的需求 可以給定不同的header 都可以就設*吧
不過目前twitter, jaiku等服務還是沒有新增此欄位
因此要自製 badge的話 還是需要經過其他方式來解決

參考資料:Understanding Flash Player 9 April 2008 Security Update compatibility
External data not accessible outside a Flash movie's domain
2008/06/19

[+/-] : Twitter Badge 復活 + Jaiku badge 中文支援

comments
前幾天有提到 要利用appengine來轉送twitter的json資訊
但是遇到crossdomain的問題
要避開這一個問題 就是資料來源跟flash檔放在同一個網域下
因此只要將原本寫好的badge修改一下路徑 傳送到appengine上就可以運作

另外有玩 Jaiku 的人都很困擾的... 就是他們的新版Flash badge不支援中文
因此對我們使用中文語系的人來說 只能使用舊版的javascript版本
很醜又缺乏彈性...
所以就拿上面的twitter badge改成jaiku版本... 讓他勉強可以使用
因為小弟沒美術天份 所以有興趣可以下載原始碼回去研究 作一個漂亮一點得版本
如果有不錯的成品 歡迎留個連結給我

範例頁面 (因為blogger本文中不能內嵌embed的tag)
因為服務放置在appengine的關係 是暫時借用流量來處理
有需要的請自行去申請一個AppEngine的網站來玩 請不要從我這偷挖連結去用

Flash 原始檔下載(update 20080620)
AppEngine Source(update 20080620)
AppEngine的使用方式請參考官方說明

--
不過這麼作不知道有沒有違反他們的服務條款
--
update 20080620
更新crossdomain.xml
更新jaiku支援icon
--
更換下載地點 SkyDrive太難用了
--
20080722
經過幾個星期測試...
發現jaiki的feed輸出很不穩定 等待時間也很久...
因為GAE有執行時間限制 所以常常失敗...反而不適用
而twitter除了他們server有時後會自己爛掉外 其他時間都很穩定
因此目前將badge又改為使用twitter的版本

--
20081214
目前盜連者ID : 9676262 (RDENit)
2008/06/18

[+/-] : Firefox3 正式開始提共下載

comments
Firefox3 在經過了五次beta跟三次的rc版本釋出之後
將在稍候 (台北時間6/18 1:00am)正式開始提共下載

不過在稍早公方ftp上已經將RC3字樣改為3.0
但是檔案一樣為RC3 的版本 有可能RC3直接就發布為3.0正式版

還有五分鐘...

--
活動結束
根據活動網站 24小時內的總下載量超過八百萬次
而台灣的總下載量也有7萬多
據說光這24小時 市占率就提昇了百分之4

[+/-] : 新版Flash(9.0.124)對安全性的設定

comments
似乎是因為之前對Flash 0Day的攻擊的關係 新版的Flash將預設設到最安全
對於網路連線的部份是全部封鎖 (至少我裝了兩台都是這樣)
所以一部分的網路應用的Apps 或是badges都失效
需要手動在設定中開啟 並且設定為記憶 才會每次都可以連線
不過對於跨網域的連線卻一直都失效狀態...
連crossdomain.xml都沒有去連線.... 很奇怪的狀況...
不會解決...

本來是在測試twitter badge 想說利用GAE轉送json的結果...
結果死在GAE的crossdomain.xml不能正常運作...
後在直接使用yourminis的服務 本來可以正常運作
不過更新完Flash Player之後 就死翹翹了 = =a

--
更新20080620 解決方式
2008/06/16

[+/-] : GAE: Link One

2 comments
上一篇文章有提到要開始寫一個GAE(Google App Engine)的服務
不過對GAE的環境完全不熟 也不會用Python 所以我就先設計了兩個簡單的服務作練習

第一個是短網址服務 因為隨便註冊到的GAE名稱叫l1 所以命名叫Link One
雖然是練習,不過還是盡量做的完整 功能盡量齊全 也提共API的服務
因為沒有短的Domain 因此申請l1appspot上是我能找到最短的網址了XD
如果有人覺得站寫的不錯,想要借我domain用的話也可以聯絡我(*^^*)
服務設計原理很簡單,對URL做Hash取其中幾碼再加上隨機排序的1到兩的字碼
組成的一組Key作為短網址 不過此設計有可能造成資料重複
因此同一個hash值的網址 在出現3萬多次之後會被蓋掉舊的資料
不過一照此網站的使用情況應該是很難發生吧 而且GAE僅提供500MB的儲存大小
以一組資料約1K來算,僅能儲存50萬筆資料,希望他的Quota會越來越大XD

此網站也登錄到App Gallery上 不過此類型應用應該沒啥人有興趣吧
此服務還在持續改版中 不過功能大致完成 僅剩下後端管理的部份
以後有時間再慢慢來寫 現在很忙沒空XD
-
新想法...把短網址服務拿來作網摘 bookmark 也不錯用
把API拖進工具列 看到喜歡的網站就按一下...也蠻方便的
不過此功能來需要幾個子功能
feed輸出 選擇是否公開個人頁面 使用API新增時 可輸入描述等
以及新增tag來作分類
一樣 有空再寫吧
-
目前實際上線後 有一些問題要解決....
當進行資料庫的存取時 如果太久沒有回應 會有Exception產生(僅GetbyName 不是query)
通常會發生在深夜時段 也就是國外的網路尖峰時期 其他時間倒是沒發生過
而我程式收到Exception時 就會出現錯誤畫面
所以會造成服務不是很穩定的現象 需要重新整理來重送資料
目前不知道如何解決 這似乎和GAE本身 跟BigTable的機制有關 或是我程式寫的爛
再說吧....
update 原來這是那一天GAE故障 全世界都一樣不能存取
-
以下為Change logs
V1.1 20080601
對每一個Hash值所對應的Index隨機排序,使用SLink為服務名稱
隨機挑選不同hash func方式來hash,每日寄送統計資料到管理者帳號
利用資料庫記錄總新增次數 每日新增次數 查詢次數等資訊
記錄每一個鏈結的點及次數 在使用者管理介面顯示
V1.2 20080601
修正index.yaml
V1.3 20080602
將Description欄位型態修改為Text 提升長度, 改進安全字元處理
Type無法使用 移除它, 修改日期問題 修正範圍限制 預設值等
開放所有功能給未登入使用者
Memcache for static, 管理者 Init Static
V1.4 20080602
移除'|'
V1.5 20080602
修改PrintableStringIndexLen位置
V1.6 20080602
再次修改IndexList 加入<[\]`{}| 修改長度計算方式
新㽪允許子網域,預覽子網域,修改允許URL為CJK字元
V1.7 20080603
新增Templates,css,js等,加入Google Analytics,修改URL
V1.8 20080603
CJKV字元短連結
V1.9-11 20080605
修改程式架構, 修正bugs
V2.1 20080606
修改程式架構以降低CPU使用率, 修正Bugs
V2.2-2.18 20080606
fix Bugs for GAE Errors
V3.1 20080616
管理介面 檢視各類型連結,提共API 並輸出為HTML,修改名稱為LinkOne
被動建立使用者資訊 儲存預設選項 Desc 過期日 KeySize 每頁幾筆資料
提供Full CJKV API版本能使用使用者預設值,修改過期日期資料型態
修改URL的資料型態為Text來允許不同的協定,新增Logo圖檔
3.2 20080616
移除debug時的設定 修改網址

Todo:
Art Design,
使用者條款 English Version 補齊
管理者介面,加入除密碼外需要登入才能檢視及連結選項
新增網摘模式 可輸出個人feed 是否公開個人頁面 tag功能
使用API新增時 選擇是否輸入描述(需登入)

--
update 20090506
清除了一些廣告用的連結
原始source code找不到了 沒法繼續更新@@

Via This Links
2008/05/30

[+/-] : 開始計畫寫一個 Google App Engine的程式

comments
最近有一個生活上的需要 希望有一個應用程式來達成目的
剛好很適合做在 Google App Engine (GAE)上面 也可以作為一個社群化的服務
(idea暫時先保密啦 等真的做不出來再公開... 也誠徵好友一起來寫)

目前GAE也已經正式對公眾開放 不需要再等待 可以直接開通(需要手機認證)
有興趣的人也可以去申請一個來玩玩.... (其他介紹請看另一篇介紹)
在正式公開之後 有新增了兩個API 分別是Image的處理MemCache
因此發環境也升級到1.1.0 之前有下載的記得要去升級一下

目前開發環境就是 Google App Engine SDK
加上 Google Map APIGoogle Visualization API 的使用
其他部分可能會再加上 jQuery 來處理 AJAX 或是使用 YUI來處理介面及AJAX
目前最大的問題是 什麼都不會 而且也沒啥時間
Python不會 所以從頭學起
網頁已經超過8年沒寫 也大概是從頭學起 再加上現在流行AJAX
雖然知道原理 不過完全不會用 還是從頭學起...XD
而且現在沒啥時間搞著個 所以大概要兩個月的時間來學習跟架構
目前已經把資料表的設計跟程式流程大致規劃好了...
不過要正式開始寫 還真的不知道該如何下手

所以目前先從簡單的開始學習 把Demo中的Guestbook修改一下
加入完整的帳號管理功能 可以有個人頭像跟簽名檔
學習使用Templates跟CSS來編排版面 以及上面提到的API跟libs等
然後希望可以每個人申請自己的留言版 跟提供多種UI及feeds來輸出
(不知道有沒有辦法支援 domain/username 然後在同一支程式中知道是哪一個user)
之後就可以作一個像twitter一樣的東西在GAE上面 看來這又要花我很多時間了

[+/-] : 夢境 20080529

comments
一直以來 幾乎每日都會做夢 至少在醒來那一瞬間 還知道自己剛剛做的夢
不過爬起床來 坐到電腦前要記錄下來時 就都已經忘了一大半了...
因為在爬起來前 通常會被鬧鐘吵的很煩 然後一直賴床 早就把要記住的夢給忘了

最近幾天做的夢 都還蠻像動作遊戲 在場景中冒險 (真的是生活太煩悶了嗎@@)
昨天一開始是 動作解謎 要去尋找寶物(忘了要找啥) 中途還有怪怪的壞人
會一直拿槍射我 因此要東躲西藏的前進(我沒有武器嗎...)
到了後期又變成是 一個奇怪的玩具射手 拿著一把弓 對著架子上的物品一直射
要把物品打下來得分 還要考慮擦版得分等等問題... 很怪 不過玩的很有趣就是了

但是一起床之後 夢中的樂趣其實也忘了差不多了 只想著三件事
好熱阿 (冷氣定時關機了....)
好餓 (大概15個鐘頭沒進食了...)
我的程式阿 到底怎麼寫阿... 天阿
2008/05/12

[+/-] : 利用 網路 分享 Mercurial

2 comments
上一篇文章介紹了分散式的版本控制系統 我選擇了 Mercurial 作為目前使用的方案
接下來就是要建立Server來讓專案可以多人協同作業
Mercurial(HG)提供了多種不同方式例如藉由SSH, HTTP server或是他本身內建的Server來運作

最簡單快速的方式就是使用HG內建的Server
只要在工作路徑所在的命令列輸入
hg serve
或是使用 TortoiseHg 在工作目錄上按右鍵選擇Web Server再按下Start
就可以開始使用http的分享服務
如果要修改port或是listen address可以使用-p或-a參數修改
如果有不只一個工作目錄 可以使用參數--webdir-conf加上設定檔案來控制路徑
設定檔有兩種方式 如果工作目錄都在同一個目錄下 使用
[collections]
/prefix/to/strip/off = /root/of/tree/full/of/repos

如果都不在同一個目錄下 分在在各處的話使用
[paths]
virtual/path = /real/path
virtual/path = /real/path

其他參數可以參考這裡 或是下指令
hg -v help serve
使用內建Server的最大問題是還不提供使用者管理的機制
只能選擇開放或關閉push指令 (設定在hgrc中 在最後介紹)
然後也不提供SSL的通道 雖然參數已經有了 不過目前還沒實做完成 等下一改版吧

接下來是使用SSH來分享 這部份比較簡單 直接使用系統中的SSH Server如OpenSSH
只要登入的使用者對工作目錄有存取權限即可 其設定方式就請參考網路上的SSH設定方式
在Client端連接的路徑就是
ssh://user@host:port/path
要注意路徑中的path如果要使用絕對路徑 必須為兩個//
例如工作路徑在/var/hgroot/proj1 而登入代碼則為
ssh://josh@host:port//var/hgroot/proj1/
而使用相對路徑的話則是會跟使用者的家目錄相關
例如使用josh登入 home路徑在 /home/josh 而工作路徑 /home/hg 連結路徑就要打
ssh://josh@host:port/../hg
如果要使用非對稱金鑰認證來取代密碼 可以使用putty ageant之類的代理
或是修改Mercurial.ini設定檔中的ssh項目加入-i參數 如
ssh = "C:\path\TortoisePlink.exe" -ssh -2 -i "D:\path\key"

最後一種是使用現有的http server來實做 以下我會針對使用apachelighttpd來介紹
會分成兩種是因為實驗室的Server兩種平台 不過設定起來都很簡單
首先要確定已經安裝好Server 以及 都可以執行cgi及python的script
接下來只要利用hg所提共的hgwebdir.cgi依照以下步驟即可
在Apache的設定檔中加入以下設定 (我是放在<VirtualHost *:443>之中 只允許安全通道)
ScriptAliasMatch ^/mercurial(.*) /path/to/web/hgwebdir.cgi$1
<Location /mercurial>
Allow from all
Options ExecCGI
AuthType Digest
AuthName "Mercurial Repository"
AuthUserFile /path/to/web/passwd
Require valid-user
</Location>

在lighttpd的設定檔中加入以下設定
(一樣只允許SSL 所以我放在$SERVER["socket"] == "0.0.0.0:443"之中)
alias.url += ( "/mercurial" => "/path/to/web/hgwebdir.cgi" )
$HTTP["url"] =~ "/mercurial" {
cgi.assign = ( ".cgi" => "/usr/bin/python" )
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/path/to/web/passwd"
auth.require = ("/mercurial" => (
"method" => "digest",
"realm" => "Mercurial Repository",
"require" => "valid-user"
))
}

然後利用htdigest建立帳號密碼放到/path/to/web/passwd
最後在hgwebdir.cgi的目錄下建立檔案hgweb.config
設定工作目錄的所在(跟最上方使用內建server一樣的設定檔)
以上是不允許匿名pull 僅允許登入使用者pull
如果要開放匿名pull 可以將 Require valid-user用 <Limit GET POST PUT>包住

現在基本上完成了 接下來是針對每一個檔案庫做設定
設定檔通常為 .hg/hgrc 或是Mercurial.ini等
跟分享服務有關的欄位為 [web] 一般會放置以下內容
style = gitweb //更改顯示的style
allow_archive = bz2 gz zip //提共下載的格式
contact = Josh //聯絡人資訊
push_ssl = true //是否使用SSL
description = Josh's Shadow Research Project
allow_push = josh //允許push的使用者 (如要開放所有人請使用 *)
hidden = false 是否在網頁中列表中隱形

設定完到這裡就大功告成啦
最後在Client端執行
hg clone path
或是在瀏覽器中輸入 https://host/mercurial
來測試結果啦

目前使用Mercurial上最大的問題 還是在TortoiseHg
對中文環境的支援度很差 如果新增檔案的檔名有非英文字母
需要先Add再Commit,不能像只有英文字母的檔案只要Commit自動幫你Add
在Commit視窗中 所有中文檔案一律變成亂碼(這也是不能自動新增的原因吧)
另外註解不能打中文 否則只能在本機端上看到 在網頁上就都會變成"?"
還有Mercurial不支援目錄的版本控制 因此不能新增一個空目錄上去
這點相當不好用

再來就是使用上的習慣問題 修改檔案前都要先執行Sync中的Pull檢查是否有新版
在寫程式當中 記得到一段段落就要Commit一次
在程式寫完一個部份之後 還要執行Sync中的Push到Server上
不像TortoiseSVN一樣 只要Update然後Commit就做完所有事項
多了很多步驟 用起來麻煩很多很多....

不過使用Mercurial有我上一篇提到的一個不錯的優點 他完全支援P2P的運作
只要每一個Client都有分享目錄出去 不需要有真正的中央Server來控管
可以完全在自己的Client端中來運作

參考資料
Collaborating with other people
Publishing Repositories with hgwebdir.cgi
PublishingRepositories
Setting up the Hg http interface
hg(1) hgrc(5)
Apache Docs
Lighttpd Docs Alias
2008/05/11

[+/-] : 分散式版本控制系統 DVCS

comments

最近使用Subversion(SVN)的專案越來越多,我實驗室的專案也全面使用,不過,這種Client-Server式的架構有一個嚴重的問題,就是在網路斷掉時,就沒有版本控制的能力了,也因此有另一種形式的版本控制系統的出現。

Distributed Version Control System (DVCS),分散式版本控制系統是現在越來越紅的一種版本控制系統的方式,有別於一般Client-Server的架構,分散式其實就是在每一個Client端都有自己的檔案庫存在,自己開發的文件檔案就直接Commit到Local端的檔案庫中,而檔案庫再跟主要的檔案庫Server或是其他Client端的檔案庫做同步化的動作,稱作 Pull 跟 Push ,因此在網路不通時,可以完全的獨立作業,又同時享有版本控制的好處,而網路連線時再跟其他檔案庫來交換內容,甚至可以打破傳統階層式的架構,採用Peer-to-peer(P2P)的方式來運作,每一個Client同時也是Server(依據不同的版本控制統而定),這裡有一些DVCS的運作圖可以連上去看一下(BitKeeper的產品介紹)

看了一下Wiki上的比較列表,比較紅或是比較成熟的大概是Git, Mercurial, Bazaar 以及SVK吧,在Choosing a Distributed Version Control System這一篇文章中有列出一些選擇的項目及他們的優缺點可以作為參考,如果是原Subversion的使用者,或許可以考慮使用SVK,因為SVK原本就是建立再SVN的環境上在做擴充,可以參考架構圖,不過在多方比較後,Mercurial(水銀的 所以又叫做Hg XD)看起來還是比較好的選擇,尤其是使用介面上有TortoiseHg可以使用(Git有git-cheetah Bazaar有TortoiseBzr 不過看起來都還在早期開發階段),作為初學者,入門的難度比較低,而其功能性及擴充性並不會因此而打折扣,依然是相當強悍的軟體,在加上最近終於進入的1.0的階段,其成熟度應該是可以受到肯定,目前簡單的試用,除了介面還是很醜(這大概要怪GTK+),其他用起來並沒有太多的障礙,目前把我的研究開發目錄從SVNf遷移到Hg上試試看。

補充資料

Distributed Version Control Systems - Why and How(PDF)
Git - User's Manual - GitWiki - Wikipedia
Mercurial - Distributed revision control with Mercurial (PDF) - WikiPedia
Bazaar - Workflows - User Reference - Wikipedia
Free Host - Git - Mercurial
The Risks of Distributed Version Control
Chris' DVCS wishlist

最後要介紹一下assembla這一個網站,他是一個專案管理的整合型線上環境,除了提共Wiki, Chat, Blog, Milestones, Scrum, Tickets等線上專案管理常見的功能外,在這裡介紹他最大的原因就是,他還提供了SVN, Mercurial, Git等檔案庫的支援以及Trac的線上環境供使用及HTTPS的加密通道,免費的有500MB的空間(沒有說明流量限制),並且可以付費升級,跟其他的FreeHost不太一樣的是他就算免費一樣可以選擇完全的Private,對於一般的專案管理應該是非常夠用了,而且他有商業模式在,應該比較不容易倒吧XD

2008/05/07

[+/-] : 觀後隨筆 American Gangster

comments
American Gangster 中譯 美國黑幫
一部步調很慢 一開始很零碎 但是深度很夠的劇情強片
看完最大的感想是 想要成功 除了看轉時機 有清楚的頭腦
還要有新的通路及新的品牌 以及心狠手辣跟果斷的決策...
不過最重要的是 要低調啦....XD

個人七顆半星推薦
2008/05/06

[+/-] : 觀後隨筆 Hitman

comments
Hitman 中譯 殺手47
俄羅斯殺手橫掃莫斯科 全場血肉橫飛 精彩異常...
本來心情不太好的 看完了電影變超爽的(幹 我是不是變態阿)
不只是槍法俐落 主角頂著一個大光頭 動作乾脆靈活 也很帥氣...
就 看歡愉的啦... 七顆星推薦

--
比賽結束 逆轉獲勝 不想寫了 都是垃圾短文...XD
回家睡覺要緊

[+/-] : 觀後隨筆 Lucky Number Slevin

comments
Lucky Number Slevin 關鍵密碼
看完電影 只能說 他的梗鋪的有夠長....
一開始看完前面那一小段 跟後面的怎麼都沒啥關係...
看到中間還以為 這傢伙怎麼運氣怎麼背...
結果統統猜錯.... 我敗了....

七顆半星推薦

[+/-] : 觀後隨筆 AppleSeed Ex Machina

comments
AppleSeed Ex Machina 蘋果核戰記2
日本 士郎正宗 的動畫加上 John Wu的監製實在蠻令人期待
因為自己是作圖學研究的... 對於這種3D rendering的還頗要求
而這一部已經是水準之上了... 至少比起第一集
那個人物根本就不能看....@@ 光影的shading根本是亂來...
而這一部除了場景一樣很美 人物的shading跟Animation都精進許多
再配上 John Wu的暴力美學 整部電影看起實在是十分過癮
雖然劇情有一點薄弱 不過看這片 本來就不是在看劇情的嘛
個人七分推薦

[+/-] : 觀後隨筆 Stranger Than Fiction

comments
Stranger Than Fiction 中譯 口白人生
一個介於虛幻故事及現實人生交錯的電影
步調雖慢 但一點都不無聊
在平淡的故事中 探討著人生及許多問題

個人八顆星推薦

--
因為高國慶開轟 嘟嘟敗投解套 20連勝看週末啦
心情很High 所以寫少一點....
當然 絕對不是因為這樣所以給特別高分...
真的很好看啦...

[+/-] : 觀後隨筆 Michael Clayton

comments
Michael Clayton 中譯 全面反擊
一部怪怪的劇情片 看第一次不知道他在演
第二次看又覺得完全沒什麼...XD
大概是導演跟我的口味不合拍 (還是該說他功力有點差@@)
不過整部片對於人物的刻劃還算不錯 George Clooney 的演技還是相當的棒

個人評六分半...

--
因為看棒球 安打一直出不來 嘟嘟的20連勝也達成不了
所以來寫寫Blog 把前幾個月看的電影寫一寫...
看比賽結束前還可以寫給篇....

[+/-] : 觀後隨筆 3.10 To Yuma

comments
3.10 To Yuma 中譯 決戰3:10
就是熱血 刺激 有情有意的西部牛仔片
很多情感上的演變 以一個旁觀者來說 都有點過於天真吧
不過作為一個娛樂大作 已經相當足夠了

個人給六分半....

另外一提 這部片一開始還有點看不下去...
不過忍過片頭倒是越看越有趣 越看越歡樂XD

--
一樣 好久以前看的... 大概四個多月了

[+/-] : 觀後隨筆 I Am Legend

comments
I Am Legend 中譯 我是傳奇
一開始還以為是像湯姆漢克在Cast Away 浩劫重生裡面一樣 完全一個人唱獨角戲
幸好 步調沒有這麼慢 過程也有趣刺激的多了...
畫面特效也做的栩栩如生 再加上個人蠻欣賞 Will Smith 的演技
所以個人給這一片八分...

另外 看這一部片看這片就好 有另一個特別結局版實在有點虛
讓觀看的感覺完全的不一樣了...

--
一樣 是三個月前看的 @@

[+/-] : 觀後隨筆 Gone Baby Gone

comments
Gone Baby Gone 中譯 失蹤人口
一部帶有懸疑解迷的劇情片... 雖然步調沒這麼快
不過過程還是很緊張刺激 相當好看
不過結局感覺有點過於...矯情? 應該這麼說吧
至少我不會這麼做 大概 是對人有太多的不信任感吧

個人給7分 雖然不像imdb上給了八分 不過也相距不遠
值得推薦的劇情片

--
三個月前看的片子.....
2008/04/29

[+/-] : [Note]塑膠容器編號

3 comments
1號 聚乙烯對苯二甲酸酯(Polyethylene Terephthalate,PET),俗稱寶特瓶。
2號 高密度聚乙烯(High Density Polyethylene,HDPE)
3號 聚氯乙烯(Polyvinylchloride,PVC)
4號 低密度聚乙烯(Low Density Polyethylene,LDPE)
5號 聚丙烯(Polypropylene,PP)
6號 聚苯乙烯(Polystyrene,PS),若是發泡聚苯乙烯即為俗稱之「保麗龍」
7號 其他類(OTHERS)
Source

其他消息
1.PET(聚乙烯對苯二甲酸脂)
塑膠回收代碼1號是PET,用在容器上就是俗稱的寶特瓶。如清潔劑、洗髮精、礦泉水的包裝瓶子,都已在大量使用寶特瓶。辨識法:寶特瓶通常是無色透明的,有的加色成淺綠淺藍或茶色。圓的PET瓶底下方有一圓點,瓶身其他地方無接縫,是最簡單的辨識方法。  

2.HDPE(高密度聚乙烯)
PE(聚乙烯)是工業、生活上應用最廣的塑膠,一般常分為高密度聚乙烯(HDPE)與低密度聚乙烯(LDPE)兩種,PE對於酸性和鹼性的抵抗力都很優良,目前市面上所見到的塑膠袋及各種半透明或不透明的塑膠瓶幾乎都是PE所製造,像清潔劑、洗髮精、沐浴乳、食用油、農藥…等,大部份以HDPE瓶來盛裝。辨識法:多半不透明,手感似臘,塑膠袋揉搓或摩擦時有沙沙聲。  

3.PVC(聚氯乙烯)
PVC的發明相當早,且多應用於工業產品中,但大多在非食品方面,像水管、雨衣、書包、建材、塑膠膜、塑膠盒等等。由於PVC瓶透氣性高,不會用來盛裝碳酸飲料,在食品容器上以礦泉水為最大宗,沙拉油瓶亦有部份使用PVC。 辨識法:圓的PVC瓶底部為一條直線,是與寶特瓶的差別所在。PVC用力折會有白痕出現,在太陽底下長時間曝曬後會變鐵紅色;用火燒在邊緣會有青色火焰,延燒性差,所以火源一離開就停止燃燒是其特色。(註:燃燒PVC時可能會釋出氯乙烯有毒單體,請在空曠通風處試驗。 )

4.LDPE(低密度聚乙烯)
大部份的塑膠袋和塑膠膜是用LDPE做成的。LDPE做成的容器若不加色料多呈半透明像牛奶瓶、軟片盒等。辨識法:LDPE做成的塑膠袋較柔軟,揉搓時較不會發出沙沙聲,外包裝塑膠膜軟而易撕的是LDPE,較脆而硬的是PVC或PP膜。

5.PP(聚丙烯)
製瓶商常以PE製造瓶身,瓶蓋和把手用有較大硬度與強度的PP來製造,當然也有直接以PP製瓶的,最常見的是豆漿、米漿瓶,不過比較大的容器像水桶、垃圾桶、洗衣槽等多以PP做成。PP做成的免洗餐具,像「辦桌」宴會上常見的紅色塑膠碗、以及盛裝微波食品的塑膠盒,就是以 PP 做成。辨識法:PP和PE很難分出,一般來說PP的硬度較高,且表面較有光澤, PE則像蠟製器,燃燒時PE的蠟燭味較重。  

6、PS(聚苯乙烯)
PS吸水性低,且其尺寸安定性佳,主要應用於玩具、文具、滾輪、鑲襯(像冰箱的白色內襯)等,及工業的包裝緩衝材料。未發泡的PS在食品容器上有乳品業的瓶罐如養樂多、優酪乳、布丁盒、速食店飲料的杯蓋等。發泡後的平板經真空成型廣泛用於一次性餐具,如保麗龍免洗餐具。辨識法:未發泡的製品,輕折就有白痕出現,並有擴散現象,通常以手即可撕裂。  

7、OTHER(其他)
其他類塑膠材質標示7號的情形很多,在回收處理上也較困難,如牙膏瓶。

多數塑膠容器現在多印有三角形的回收標示於容器的底部,學習辨識這些三角回收標誌內的數字與列出的英文縮寫,可以幫助您挑選較安全的容器質材。PVC(聚氯乙烯)是焚化爐燒出戴奧辛的首要元兇,基於環境與健康的考量,PVC(3號)應該是全民共同減少使用的一種塑膠材料;此外,保麗龍(6號)也是應盡量減少使用的塑膠材料。以下列出國際通用的塑膠材料編號。以食品包裝而言,PE、PP、PET都是較安全的選擇,PE又可區分為高密度的HDPE與低密度的 LDPE;PET因單體原料毒性強,仍應減少使用。


耐熱

一 號:PET(聚乙烯對苯 二甲 酸脂)保特瓶
特 性:耐熱至70℃,勿長期使用。

二 號:HDPE(高密度聚乙烯)
特 性:耐熱至120℃,是相對穩定的材質。

三 號:PVC(聚氯乙烯)
特 性:耐熱至70℃,環保署已宣布逐步禁用。

四 號:LDPE(低密度聚乙烯)
特 性:耐熱至80℃

五 號:PP(聚丙烯)
特 性:耐熱至135℃,是相對穩定的材質

六 號:PS(聚苯乙烯)
特 性:耐熱至90℃

七 號:其他
特 性:常見材質為聚碳酸脂(PC),耐熱至135℃。

具有毒性 請勿重複使用

消費者要拒絕沒有標示的水壺,因為清楚標明塑膠材質是廠商負責任的表現。並且建議不要重複使用保特瓶。

美國的環保團體「綠色原則(Green Guide)」指出,一般的規則是:不要使用被製造來單次使用的塑膠瓶,因為不好清洗,容易變成細菌的溫床。

瓶裝水的保特瓶原料是編碼一號的聚乙烯對苯 二甲 酸脂(PET),2003年義大利研究發現,保特瓶用了9個月後,保特瓶的水會釋出微量的鄰苯 二甲 酸乙基己及酯(DEHP)。

DEHP是一種環境荷爾蒙,以國際癌症研究組織(IARC)的分類,屬可能致癌的程度,而且發現可能對睪丸具有毒性。

美國哈佛大學公衛學院最近研究也證實,男性體內DEHP含量高時,精子數量較少、精子DNA也會受損。

除了塑膠1號,應該拒絕……….並非如網路流傳號碼愈大愈安全。

塑膠3號是聚氯乙稀(PVC),環保署已逐步禁用,因為PVC通常使用上述環境荷爾蒙DEHP。燃燒時也會釋出世紀之毒戴奧辛。

塑膠6號是聚苯乙烯(PS),也就是保麗龍,遇熱會釋出苯乙烯單體、苯乙烯雙體及苯乙烯三體。

清華大學化學系教授凌永健表示,苯乙烯單體為毒性物質,濃度過高時會抑制中樞神經系統而引起心律不整,並損害肝臟及腎臟。

塑膠7號是目前最常見的水壺材質,股東會、百貨公司常用來當做贈品。

塑膠7號雖然屬於「其他類」,但通常材質是聚碳酸脂(PC),PC因為透明、耐摔,被大量使用。

日本推廣PC材質的塑膠奶瓶,以代替玻璃,後來卻發現會釋出環境荷爾蒙雙酚A(bisphenol A)而緊急打住。

師大化學系教授吳家誠表示,雙酚A也是一種環境荷爾蒙,《失竊的未來》指出雙酚A對人類乳腺細胞有疑似動情激素的作用。

美國史丹福大學醫學院教授飛爾德曼實驗發現,2-5ppb(十億分之一)的雙酚A就能讓乳癌細胞增生。也就是說,極微量的雙酚A也能發揮如同動情激素的效果。

毒性消息二
相關研究指出,雖然7號PC聚碳酸脂材質耐高溫撞擊、還能抗紫外線,但即使常溫下也會釋出雙酚A。相關學者也表示,雖然實驗發現100度高溫之下,7 號塑膠釋放出的雙酚A是1公斤8微克,還在歐盟安全範圍內,不過,10億分之2PPM其實就能誘發乳癌細胞生長,使用上還是有風險。
根據本署藥物食品檢驗局抽驗市售以聚碳酸酯塑膠(PC)為材質之奶瓶檢測結果,其所釋出之雙酚A(bisphenol A)量,均明顯低於歐盟及日本標準。由該等數據估算,嬰兒由奶瓶沖泡牛奶所攝入之雙酚A量,亦遠低於安全攝取量之上限,因此尚無衛生安全上之疑慮。


我的簡單結論
數字大小跟安全性及耐熱性完全沒有關係 不是越大越好 不要被網路不實消息誤導
號碼為 3(PVC) , 6(PS) 及 7號中的PC材質 具有毒性 應完全避免使用
號碼為 1(PET)在長期使用下會釋放毒素 應避免重複使用 或定期更換(不能裝熱水)
號碼為 2(HDPE) , 5(PP) 目前相對穩定及安全 (什麼時候會發現危險不知道XD)

以上消息為網路上搜尋而來 找不太到具有公信力的第一手消息來源
如果有人有以上消息的原文連結或是論文 歡迎提供 感謝 *^^*

--
依據今日新聞 2008/11/27
近兩年台灣政府大力推動的 "生物可分解塑膠" PLA
被規劃為第7號塑膠內(其他類) 但是PLA卻不能算是塑膠
因為PLA為玉米等生物原料製造 與石化原料製造的分子不同
也造成PLA不能拿去回收 需特別注意
2008/04/06

[+/-] : 在QNAP TS-209上安裝 lighttpd, fastcgi, perl ...

4 comments
上一篇裝完SVN之後 又想把原來的apache換掉 換一個比較省資源的lighttpd
首先是官網終於將2.0版的Firmware釋出 目前是版本是2.0.1
就先將機器更新到最新版的Firmware 吧...

要安裝lighttpd前 首先要確定有安裝ipkg套件在 請參考上一篇或是官網的討論
接下來將套件列表更新後 就可以開始安裝了

ipkg update
ipkg install lighttpd
// 如果要支援php
ipkg install php-fcgi
// 如果要支援cgi
ipkg install perl
//如果要支援 sqlite
ipkg install sqlite2
ipkg install sqlite

接下來開始伺服器的設定 首先是lighttpd.conf
會放在 /opt/etc/lighttpd/lighttpd.conf 或是
/share/MD0_DATA/optware/opt/etc/lighttpd/lighttpd.conf (同一份檔案)
視需求將所需要的模組反註解 例如

"mod_alias","mod_rewrite","mod_simple_vhost","mod_cgi","mod_compress",

將下方server.document-root的部份指到網頁的跟目錄 設定好log的位址
以及修改port位址 如

server.port = 80

如果要支援cgi 加入

$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = ( ".pl" => "/opt/bin/perl" ,
".cgi" => "/opt/bin/perl" )
}

只要將cgi,pl檔案放在cgi-bin目錄中就可以執行了
其他模組的設定就請參考官方文件

接下來設定 fastcgi的模組 會放在/opt/etc/lighttpd/conf.d/10-php-fcgi.conf
基本上只要確定路徑正確就好 其他設定一樣參考官方文件 不改也可以
因為系統的效能很差 所以不建議把max-procs及PHP_FCGI_CHILDREN參數設太高 2到4就好

再來是php.ini文件 會在/opt/etc/php.ini
如果要支援sqlite請加入

extension=sqlite.so
extension=pdo_sqlite.so
extension=pdo.so

其他部份就依據需求設定

最後就啟動看看 看是否能運作

chroot /share/MD0_DATA/optware /opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf

如果剛剛port設為80 通常是不能運作的
要事先去把原始的Apache伺服器關閉
不過系統還會自動執行Qthttpd把port80給站住 所以還要在關掉Qthttpd

/etc/init.d/Qthttpd.sh stop

測試ok 網頁正常運作之後 就是要設定自動啟動啦

修改autorun.sh

mount /dev/mtdblock5 -t ext2 /tmp/config
cd /tmp/config
vim autorun.sh

在檔案最後加上

/etc/init.d/Qthttpd.sh stop
chroot /share/MD0_DATA/optware /opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf

最後離開

cd /
umount /tmp/config

還沒完 系統還定期去執行Qthttpd 所以要修改crontab
我的是放在/mnt/HDA_ROOT/.config/crontab
將第五行註解掉 如

#30 4 * * * /etc/init.d/Qthttpd.sh restart

來避免他自動執行 最後重開機 就大功告成


附註
如果要支援SSL通道 要先產生一把金鑰 如

// 自己signed自己的方式
openssl req -new -x509 -keyout xxx.pem -out xxx.pem -days 3650 -nodes

也可以參考其他網入上產生金鑰的方式
並在lighttpd設定中加入

$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine = "enable"
ssl.pemfile = "/path/xxx.pem"
}

不過443這一個port會被stunnel給站住 還要在修改stunnel.conf
通常會放在/mnt/HDA_ROOT/.config
將最下面的[https]中的accept更換port
這是給網頁設定用的SSL通道 (thttpd server)
如果不想用lighttpd的SSL也可以直接修改stunnel的設定
加一個[https2]的區塊編輯即可

最後
還要研究一下將系統原本的mysql加入php的支援當中
應該是要修改extension的位置就好
不過Lighttpd對於WebDav的支援似乎不太好 要加入SVN的支援還要在研究

結論
lighttpd真的是比apache快太多了 用的cpu跟記憶體也少 (跟LiteSpeed的比較)
雖然功能沒有apache那麼強 不過在這種小型NAS上也很夠用了
最後在裡面裝了一套使用SQLite作為資料庫的論壇PunBB 順利運作中^^
下次有空來試試Nginx 更高效率的httpd軟體
2008/03/14

[+/-] : Twitter Badge失效

comments
之前做的Twitter Badge失效了
不知道是不是 twitterAPI改掉了...
不過我看他所提供的Flash範例並沒有更動 日期還是舊的
奇怪了....= =
有空需要來好好研究一下

---
update
原來是Flash的crossdomain.xml搞得鬼
詳情請看官網開發blog
2008/03/13

[+/-] : 在Linux上裝SVN + Backup Script

comments
因為Lab的Server搬新家 加上網管使用Ubuntu來做OS 所以SVN也跟著要搬到新的機器上
不過就在搬家前 發生了一些小插曲 相當不幸的小插曲
舊的Server上所有硬碟一次壞光 大概是Power壞了還是主機晶片啥壞了的 anyway
雖然在NAS上有備份 不過不是同步(同步的備份跟著一起壞了) 跟最新版有著一天的差距
還是要想辦法把壞的的資料弄出來 因此花了幾天的時間來掃描磁碟 救資料等...很累

另外 還有一台QNAP的 TS-209 雖然速度不快 不過空間倒是很大 拿來放著還蠻可惜
所以就當作主Server 的同步備份Server 才不會發生一次硬碟全壞光就資料統統消失了= =
因此有兩台主機(一台Ubuntu 另一台NAS也是Linux)做SVN Service
那還要一台電腦做非同步的資料備份 定期壓縮傳上去

首先 在Ubuntu上安裝很簡單 在Package Manager上找到SVN 等他裝完就OK
接下來測試一下有沒有裝好 隨便建立一個新的檔案庫
svnadmin create /SVNRoot
svnserve -d --listen-host=0.0.0.0 --listen-port=<請輸入> -r /SVNRoot

這裡 /SVNRoot是新檔案庫的位置 請依照需求建立
像我已經有舊的檔案庫 所以只要把舊的檔案庫cp過去就好
然後就在Client端測試一下連線是不是OK 方法就請參考這一篇

最後就是要設定開機自動啟動 Ubuntu可以在 /etc/init.d/下 建立shell script如下
vim /etc/init.d/svn

//進入編輯畫面之後按i再輸入下方script (此Script感謝龍頭大大教導)
#!/bin/sh
# description: Svnserve auto start-stop script. by bignose
# chkconfig: - 20 80
#
SVN_HOME=/usr/bin
SVN_OWNER=root
if [ ! -f "$SVN_HOME/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
'start')
su - $SVN_OWNER -c "$SVN_HOME/svnserve -d --listen-host=0.0.0.0 --listen-port=X -r /SVNRoot -T"
;;
'stop')
su - $SVN_OWNER -c "$SVN_HOME/killall svnserve"
;;
'restart')
su - $SVN_OWNER -c "$SVN_HOME/killall svnserve"
su - $SVN_OWNER -c "$SVN_HOME/svnserve -d --listen-host=0.0.0.0 --listen-port=X -r /SVNRoot -T"
;;
esac

//記得輸入想要的port之後 按ESC跟:wq存檔離開
//最後給他執行權限
chmod 755 /etc/init.d/svn

最後重開機看看是不是還能連線囉...

接下來設定另一台電腦 QNAP的 TS-209 由於是ARM的CPU
本身也沒有提供套件安裝的功能 稍微麻煩一點 不過要達成也很簡單
官網的討論群當中已經有很詳細的介紹
首先 要安裝ipkg來方便我們安裝各種軟體 詳細設定請參考此討論串
cd /share/Public
wget ftp://csdread:[email protected]/NAS/Optware-Ipkg/optware-tsx09.tar.gz
tar zxvf optware-tsx09.tar.gz

//安裝
./optware-bootstrap-qnap-tsx09.sh optware_chroot.tar.gz

//反安裝
./optware-bootstrap-qnap-tsx09.sh uninstall

//如果有遇到某西軟體不能跑 需要再加上
chroot /share/HDA_DATA/optware /bin/bash

等他下載完所有套件 安裝完之後 以後要在這台機器上安裝軟體就方便啦
要知道所有ipkg的套件有哪些可以 可以輸入
ipkg list | more


接下來要安裝 SVN 只需要輸入
ipkg install svn

接下來跟上面一下 建立一個檔案庫 並且設定自動啟動
不過TS-209有一些保護的功能 東西不能隨便放 這裡選擇在/share/Public下
想知道更詳細去爬爬討論區的文吧
svnadmin create /share/Public/Repository/
svnserve -d --listen-host=0.0.0.0 --listen-port=X -r /share/Public/Repository/

最後 就是加到自動啟動的shell script中

mount /dev/mtdblock5 -t ext2 /tmp/config
cd /tmp/config
cat "svnserve -d --listen-host=0.0.0.0 --listen-port=X -r /share/Public/Repository/" >> autorun.sh
cd /
umount /tmp/config

重開機測試看看吧

安裝完SVN 加下來就是設定同步備份的部份 這已經介紹過了
所有詳細的步驟 可以參考 "SVN檔案庫備份與同步"來進行設定
基本上大同小異 頂多是從Windows的batch語法 換成Linux的shell
另外要記得 要給shell script的檔案加上 執行的權限

最後是非同步備份的部份 我寫了一個shell script來實做
最後把他加到crontab裡面讓他自動執行...
那原理跟之前提到的備份SVN的文章一樣
先把需要的部份hotcopy出來 使用hotcopy來取代dump的原因是
hotcopy才能保留一些檔案庫的設定檔 比dump的資訊更完整
接下來把所有東西壓縮起來 我使用的是7z 如果不想用他可以用基本的tar跟gz,biz2等等
最後用lftp把他傳到另一台電腦上保存

完整的 script file可以在這裡下載
解開後修改上方一些基本的參數之後就可以執行
除非你想更換7z到tar,gz... 更換lftp到ncftp等

那要傳進去的參數 目前就是到底要備份哪些東西
如果傳進一個目錄 會去遞迴搜尋哪些是檔案庫
如果傳進一個檔案 就會依照檔案每一行所指定的檔案庫來做
所以我在crontab內的作法 就會依照檔案庫的更新頻率的不同 來指定備份頻率 例如

00 06 1,7,13,19,25 * * root /root/Backup.sh /root/freqlist
00 05 4,16,28 * * root /root/Backup.sh /root/list
00 04 10,22 * * root /root/Backup.sh /SVNRoot

最後重新啟動cron或是重開機就ok啦

Script的部份 有空會在改改 把所有要設定的東西都寫成參數傳進去
就不用在修改Script本身 讓他更有彈性 不過目前可以用就好

希望這次設定可以稱久一點 讓我畢業之後還可以繼續用下去XD
這是我第一次在Linux的系統上架Server 也是第一次寫Shell Script
如果有任何錯誤或是不妥的 歡迎馬上告知
2008/02/28

[+/-] : Google Site

2 comments

在前年Google收購了JotSpot之後 就開始期待著GoogleWiki服務何時會上線

一直到去年底 終於放話會在今年第一季推出 所謂的Google Sites
終於 在昨天終於正式推出此服務 並提供所有Google Apps的使用者來申請

首先登入Google Apps進入到Dashboard版面中 有個 Add more services
選進去就可以看到新的Google Sites在那裡等著被啟用了...

啟用後一樣可以設定Domain跟分享權限
接下來進入你所設定的網域中 按下Create new Site 開始建立新的Site

一開始會先要設定新的站點名稱 也會是url跟在Domain後的網址
接下來就是分類與描述 最後就是此站點的長相 有提供一些範本可以選擇
另外是一些權限設定 有多少人可以編輯 及有多少人可以觀看

開啟網站成功後 進入選項還有更進一步的視覺會設計可以修改
例如每一種樣式的顏色及背景字型等,以及要出現在最左上方的Logo圖樣

至於頁面的編輯方式幾乎跟Google Page一樣
是一種所見即所得的編輯環境
另外也可以切換為HTML編輯模式 來輸入一些Script

另外有一個特性就是可以附加檔案到每一個頁面去
根據說明顯示 每一個Domain有10GB空間 for Premier and Education Edition
但是沒說一般版本是多少@@
另外是每一個使用者可以有500mb的空間 比起google page來的好

對於每一個頁面 還可以新增 Comments上去 就可以直接跟頁面內容以及其他使用者互動
另外也可以整合其他Google的資源到頁面當中 例如Picasa Albums, Google Docs or Calendars

不過還是有一些缺點 對於每一個頁面 可以控制是否要顯示sidebar 是否要顯示標題
是否要允許附件及評論 就是沒有是否允許被看見或是被編輯
對於存取權限是針對整個網站 而不能針對某一個頁面
因此如果有一些私人文件不想被看見 就只能用老方法
建立兩個站點 一個開放一個隱藏...= =

這裡是我的測試站點 開放測試 帳密請往前找介紹Apps的文章

2008/01/30

[+/-] : 長江七號

comments
趁著影城還在特價 到一月底...
又今天剛好長江七號晚場上映
就跟朋友到市區看了

不過今天大家都很忙 畢竟快過年了
有要去買尾牙禮物的 有要辦就學貸款的...
還有我在家裡忙著打包 准備把行李寄回家
一直弄到四點半才出發...

晚餐吃荒井家 點了照燒雞腿定食
很好吃 不過來這一家店第一次點他
跟我想像中的照燒雞有一點差距@@
怎摸那摸多洋蔥...

然後來到影城後 我被嚇到了
一堆人在排隊 都排馬路上了
真不虧是星爺的魅力 第一次看到人這麼多
或許有特價跟現在是寒假也有關係
許多父母親都帶著小孩來看電影..
也所以 電影院中相都吵鬧 都小孩子的聲音

感謝我的同學 一早就把我們的票給買好
所以免排隊 直接進場... *^^*

電影一開始 覺得跟少林足球有一點像
就是他也很窮... 他兒子的鞋子上那縫線
簡直就像是在跟少林足球中的開口笑互相呼應XD

而且題材也是相當正面 勵志的性質
不過卻一樣是拍的很爆笑
而且西逼說的沒錯嘛 因為七仔實在是太可愛了
怎麼拉 怎麼壓 都會彈回原形不會爛掉
還有起死回生之功效 實在是太方便了(疑?)
不過最後那一幕 他們根本是來入侵地球的嘛...XD

唯一讓人受不了的是 他的配音也配的太爛了吧
腔調難聽就算了 語氣跟音質都不佳...
不過看在票很便宜的份上 就算了吧...

最後 就冒雨騎車回家 發了這一篇文 就準備睡了
因為最近實在是太累了.... 也很久沒發文了
事情有夠多 已經很多天沒睡超過6個小時@@
幸好電影很短 大概80多分鐘 節奏也很緊促
不然我大概會看不到結局吧XD
 
Back to Top
This Site Power by JoStudio. Some Rights Reserved.