多虧了這篇APE 轉 MP3 圖解教學,我才得以進行轉檔。
這邊就不再多作贅述了…
簡單的說,就是要開啟 cue 檔案,然後進行轉換。
我碰到的問題是,cue 檔案可能會有編碼的問題,所以得先利用ConvertZ來轉換檔案內碼。
在 Windows 下 build php 的方法
幾個月前嘗試著要自己重新 build PHP…
其實方法都可以在原始碼解開以後的 README.WIN32-BUILD-SYSTEM 裡面找到。這裡只是算是一些小補充而已。
不過,我最後的結果是失敗,好像還缺了些東西,後來也沒有繼續試,這邊還是先記錄下來,有機會繼續嘗試。
- 下載官方提供的原始碼壓縮檔。
- 解開,請先看過 README.WIN32-BUILD-SYSTEM 一遍,這會是很好的指引。
- 安裝以下東西:
- Visual Studio 6 或 Visual Studio 2003
- Platform SDK
- 官方提供的 win32build.zip
- 其他必要的 library(自己參考說明吧)
- 打開 Command Prompt,切換到解壓以後的目錄下。輸入 buildconf 並按下 enter。
- 解開 win32build.zip。
- 設定環境變數:
set lib=win32build_unzipped_directory\lib set include=win32build_unzipped_directory\include set path=%path%;win32build_unzipped_directory\bin
接著再執行 C:\Program Files\Microsoft Platform SDK\setenv.cmd。
"C:\Program Files\Microsoft Platform SDK\setenv.cmd" /2000
或
"C:\Program Files\Microsoft Platform SDK\setenv.cmd" /xp32
- 進行設定,這會產生 Makefile。
cscript /nologo configure.js --disable-ipv6 --disable-fastcgi --enable-cli-win32 --disable-calendar --disable-filter --disable-ftp --disable-zlib --without-wddx --without-xml --disable-xmlreader --disable-xmlwriter --without-dom --without-simplexml --without-gd --without-t1lib --disable-ctype --without-iconv --disable-bcmath --disable-com-dotnet --disable-json
- 執行 nmake,應該就會大功告成。
Regular expression 是貪婪的
前兩天才赫然發現,自己完全忽略了這個特性,導致結果完全不是我所預期…
這個特性就是貪婪(請參考:一輩子受用的 Regular Expressions — 兼談另類的電腦學習態度)。
所以當你想要利用這個式子:\<title\>(?<titleStr>.*)\</title\> 去這堆文字: <title>AAA</title>…other tags…<title>BB</title> 取得每對 <title>…</title> 裡面的文字時,實際上只得到一個結果,內容是 AAA</title>…other tags…<title>BB
>_< 這下該怎麼辦?
我想到幾種方式:
- 取得每個 <title> 的位置,然後再利用 String.IndexOf 去搜尋 </title>,取得位置之後,就可以取得<title>…</title> 裡面的文字。
- 分別用 Regular Expression 取得<title>與</title>的位置,然後再依據結果,去取裡面的字串。
希望是能有更好的解~
Vim 7.1 / MRU / TagMenu
最近 Vim 釋出了 7.1 版,這兩天順手更新了。
在下載的同時,邊找一下有沒有好用的 Plugin:
- mru – Plugin to manage Most Recently Used (MRU) files,顧名思義,就是在 Menu 安插一個 Most recent used (最近使用) 的選單,讓你可以從選單選到最近編輯的檔案。
- TagsMenu – Creates a menu of all the tags in the current file.,這個其實跟 taglist 很像,只是 taglist 是分割一個視窗出來顯示 Tag,而 TagsMenu 則是在選單安插一個 Tags 項目,顯示出所有 Tags。他的 ctags 指令比較不一樣,記得要加上 -f – –fields=+K,例如:
let TagsMenu_ctagsCommand=’c:\tools\ctags.exe -f – –fields=+K ‘
CVSNT 混合使用 protocol
我們 team 的 CVSNT 一直是用 SSPI 方式,直接與公司內部的 Active Directory 接軌作認證。
如果你想要一些不是在網域的人也能存取 CVS Repostiroy 的話,該怎麼辦呢?
其實 CVSNT 安裝的時候,預設就已經是同時開啟 SSPI 與傳統的使用者認證了~
所以,你需要更動 Server Repository 的 CVSROOT 目錄下的 users、passwd 檔案。
users 的檔案格式是 username:e-mail
passwd 的檔案格式是 username:password:alias
這邊的 password 應該要填入加密過的,不過你可以先不填,稍後再利用 CVS passwd 指令來更改。
舉例來說,你在 users 檔案加入了一行 paul:paul@xxx.com,在 passwd 檔案加入了一行 paul::paul
接著在 client 端使用 cvs -d :pserver:paul@your_server:/your_module login 登入,在詢問密碼時,按下 Enter。
再使用 cvs -d :pserver:paul@your_server:/your_module passwd 更動密碼即可。
如果你要把混合認證的功能關掉的話,得去修改 CVSNT 安裝目錄下的 protocol_map.ini,加入一行 pserver=none,重新啟動 CVSNT 服務以後就可以關閉了。
參考資料:
BSP 使用技術概觀
這篇純粹是一篇 Overview…
BSP 大致可以分為三個部份來討論:BSP主頁面、blogger的個人頁面、blogger文章管理平台。
- BSP 主頁面,主要就是聚合所有blogger的文章,依照發表先後順序來顯示。這部份就是直接從資料庫去Query資料出來顯示,基本上不困難。額外要補充的部份,在外面你可能還會看到本身不提供 BSP 服務,但提供聯播服務的站台,那他們又是怎麼做的呢?大致上有兩種,一種是由站台本身定期去 pull RSS/ATOM feed 回來作整合(所以想要參加聯播的人,得提出申請;或者有些blog線上閱覽器(Aggregator)會順便提供聯播Widget,如:NewsGator或Google Reader,因為這只是舉手之勞。);另外一種,則是站台提供有 Weblog ping service的位址,使用者需要在 BSP 的設定去填入此位址,那麼在發表文章的同時,BSP就會去通知該站台說有新文章發表了,該站台再根據這資訊來作顯示或是其他動作(所以新增文章的時候,你會用到這個,當然也可以不提供,這主要是增加 blogger 在其他網站曝光的機會)。
- blogger個人頁面,只聚合blogger本身的文章,可以依照使用者在管理平台上指定的順序來顯示。
- 文章的產出,一般有常見的兩種作法:一種是從資料庫Query資料出來顯示,這方法相對來說,是比較簡單的,但是資料庫的負載會比較重;另外一種,則是在文章有更動的時候,除了更新到資料庫之外,還同時產生一份 html 檔在對應的位置上,當訪客瀏覽的時候,實際上是直接瀏覽這份 html 檔,把負載集中在 Web server 上,速度會比較快些,缺點則是要修改相關 html 檔案的連結,著名代表是:Movable Type 2.x。關於要不要產生靜態 html 檔案的討論,我記得國外或對岸有人寫專文來討論。
- TrackBack與留言:留言就不用說了,就留言,有些 BSP 可以讓你在管理介面上直接回覆留言,而不是作者自己要在文章上再留言一次;TrackBack則是類似 Weblog ping services,如果你在文章裡面有引用到其他人的文章,那麼你可以在發表文章的時候,指定 TrackBack 網址,那麼在發表的時候,就會通知該文章,該文章就會知道你有引用,然後在文章後面列出相關資訊。
- 個人化網址,目前國內 BSP 都讓你可以自訂後綴的目錄名稱,但國外的Blogger則可以讓你自訂域名,例如 http://someone.blogspot.com。實作上,多半是利用 Url rewrite 或是直接在 web server 建立相對應的目錄;Blogger的作法我並不清楚,我猜測應該是直接在 DNS 處理掉。
- blogger文章管理平台,管理部落格基本設定,新增/修改/刪除文章,或是邀請別人一起來編輯。一般還有提供的功能:變更版面配置(有些則乾脆整份頁面讓你自己去改,如早期的 Blogger)、自訂 CSS、自訂邊欄、簡單的照片管理…等等。
此外還有:
轉移到Thunderbird
Mozilla Thunderbird前一陣子已經推出 RC1,所以按照預定計畫,開始進行轉換的工作。
轉換的工作其實很簡單~
不過也就是安裝好 RC1,打開Mozilla Thunderbird,執行”工具”>”匯入”,把郵件以及設定都匯入進來~
接著再檢查看看郵件有沒有問題、帳號密碼,最後把原來配合 Outlook express 的 popfile 移除掉。
就這樣,簡單到不行。
cvs2svn 實戰
我主要是參考這篇:HOWTO: smooth CVS to SVN migration (and back again)。
基本上步驟還真的是…很簡單。
目前我先在Ubuntu上試驗,想說先搞定之後,再到 Windows server 上試試看。
首先得安裝cvs2svn:
#sudo apt-get install cvs2svn
又,因為 Windows 上用的是CVSNT,我再安裝了CVSNT(是的,Ubuntu有包進去):
#sudo apt-get install cvsnt
接著把 Windows 上的 CVS Repository (除專案目錄之外,CVSROOT目錄也要!這是我踩到的第一個雷,如果你是整個搬,就不會有這困擾。)複製到 Linux 機上的 /work/cvs 放著,然後切換到該目錄下之後,輸入:
#cvs2svn -v -s /svn/my_new_project my_project
- -v 表示 verbose
- -s 指定 svn repository 位置,這邊不需要特別先執行 svnadmin create 去建立,cvs2svn會自動建,如果你已經有一份建好的,那麼你得加上 –existing-svnrepos
- 最後是 cvs repository 位置
cvs2svn就開始跑啦~
過沒多久,cvs2svn告訴我:
ERROR: The command ‘[‘co’, ‘-q’, ‘-x,v’, ‘-p1.1’, ‘-kk’, ‘my_project/aaa/bbb/si_template,v’]’ failed with exit status: 1
and the following output:
co: my_project/aaa/bbb/si_template,v:28: unknown character `_’
co aborted
這個問題卡了我很久,我找不到原因。後來找到這篇討論串:error encountered with co: unknown character ‘_’,最後解法是使用 –use-cvs,也就是不要用 rcs 指令去處理 CVS repository,改用 cvs 指令去處理。
用了這參數以後,原本以為這下就都搞定了,但天不從人願,cvs2svn告訴我另外一個噩耗:
ERROR: The command ‘[‘cvs’, ‘-q’, ‘-R’, ‘co’, ‘-r1.1’, ‘-p’, ‘-kk’, ‘my_project/my_project.mak’]’ failed with exit status: 1
and the following output:
cvs [checkout aborted]: Cannot check out files into the repository itself
這問題又再次卡了我很久,我甚至去 trace cvs2svn 的 code…後來發現這完全是因為我的愚蠢所造成…反覆閱讀CVS–Concurrent Versions System – Troubleshooting之後,我終於知道原因,原來我不可以在 /work/cvs 下執行cvs2svn!
於是我切到 /work,然後再執行一次就行了。最後指令如下:
cvs2svn –use-cvs -v -s /svn/my_new_project /work/cvs/my_project
參考資料:
後來整個弄完以後又發現的另外一份參考資料~冏:
subversion 與 file:// protocol
在 Windows 上,想偷懶不架設 svn server 或 http server 的話,可以這麼作。
首先你得安裝TortoiseSVN。
然後建立 repository,TortoiseSVN的方法是這樣子的:
- 先建立一個空目錄
- 再該目錄上按下滑鼠右鍵,選 TortoiseSVN > create repository here
建立成功之後,緊接著,再按下滑鼠右鍵,將這個目錄分享出來。
之後,到你的工作目錄,用TortoiseSVN去 check out
URL of repository 就打 file:////your_computer/your_share 即可。
Make Link 與 Site Advisor
Make Link與McAfee SiteAdvisor Plug-in for Firefox也有衝突,如果同時安裝了這兩個 Add-on,Make Link會複製到錯誤的結果。
解決方法:停用McAfee SiteAdvisor Plug-in for Firefox。