最近試著用 mingw64 (其實是用 TDM64-GCC) 來產生 win64 版本的 FileZilla, 不過.... 弄了兩三天, 雖然可以產生 filezilla.exe, 不過一執行就會出現 0x000007b 的錯誤.
用 google 找了一下, 發現這問題通常發生在 64 位元的執行檔, 少了某些 DLL 或使用到某些 32 位元的 DLL 所造成的.
不過.... 我用 Process Explorer 查看了一下所產生的 filezilla.exe 的執行狀態, 並沒有發現有用到 32 位元的 DLL, 且用 dumpbin 或 objdump 查看, 也沒有發現有少那些 DLL.
最後看到了這篇文章, 發現除了 DLL 外, 在 resource 的產生上頭, 也可能會有產生這類混用的情形. 果然在 filezilla 的 windows_manifest.xml 裡頭, 發現 processorArchitecture 是設成 x86, 所以產生的 resource 會是給 win32 使用的, 在製成 win64 的程式時, 一執行就會有 0x000007b 的錯誤.
把 processorArchitecture 改成 * 或 amd64 (建議用 * 就可以, 這樣可以 win32/win64 通用), 果然產生的檔案就可以正常的執行了.
這幾天把我用來編譯 filezilla3 的 MinGW/MSYS 環境改成 gcc 4.5.x (之前是用 gcc 3.4.5), 結果在處理 libgpg-error 時, 會停在這個訊息:
make[3]: Entering directory `/usr/src/libgpg-error-1.10'
set -e; \
for i in $(./potomo --get-linguas ./po); do \
/bin/mkdir -p "/usr/local/share/locale/$i/LC_MESSAGES" || true; \
rm -f "/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" \
2>/dev/null || true; \
./potomo ./po/$i.po \
"/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" ; \
done
potomo: './po/cs.po' keeping UTF-8
potomo: './po/de.po' keeping UTF-8
potomo: './po/fr.po' keeping UTF-8
potomo: './po/it.po' keeping UTF-8
potomo: './po/nl.po' keeping UTF-8
potomo: './po/pl.po' converting from ISO-8859-2 to utf-8
查看一下執行的指令, 應該是執行 iconv.exe (會一直使用約 12% 左右的 CPU), 放著不管跑一晚上, 也跑不出結果.
potomo 是一個 bash 的 script, 所以看了一下這地方是處理是:
case "$fromset" in
utf8|utf-8|UTF8|UTF-8)
echo "potomo: '$infile' keeping $fromset" >&2
msgfmt --output-file="$outfile" "$infile"
;;
*)
echo "potomo: '$infile' converting from $fromset to utf-8" >&2
iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\
sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\
msgfmt --output-file="$outfile" -
;;
esac
試著自己把那個 iconv 指令, 果然會停住. 試了一下, 把 --silent 拿掉就正常. 看一下 iconv --help 的說明, --silent 與 -s 是一樣的意思. 同一個指令, 改用 -s 來取代 --silent, 結果居然可以正常執行. 真是一個奇怪的問題.
如果你有碰到 iconv 跑不出來的問題, 可以看看有沒有用到 --silent 吧, 改用 -s 試看看吧.
這個月幫老婆的車子裝了一個行車記錄器, 產生的檔案是 mpeg4 編碼的 .asf 檔案. 發現拿到我的電腦上頭用 MPC-HC 播放時, 會有停格的現象. 難道是我的電腦等級太差? 可是它可是一台 i7 的筆電, 加上平時播放一堆 1080p 的檔案都很正常, 實在想不出為什麼.
原本還以為是機器有問題, 錄的時候就停格, 還問了賣家要怎麼處理, 結果... 在退回去前, 用轉檔軟體轉成 h264 的影片, 發現不會停格了. 所以.... 不是錄的問題, 真的是我的電腦播放時造成的停格.
後來發現有人在 MPC (或 MPC-HC) 上頭, 也有類似的問題 (不是 .asf 的檔案). 發生問題時, 似乎都是使用 EVR 自訂的這個視訊輸出, 只要改成 EVR Sync 就可以正常播放. 試了一下 (記得把 MPC-HC 關閉再打開), 果然不會停格了.
由於公司的機器愈來愈多, 所以... 在 pietty 裡頭所儲存的 session 也跟著變多了. 不過.... 在之前版本的 pietty, 在超過 40 (好像是) 個 session 之後, 每次執行就會跳出來一個對話盒詢問是否要刪除舊的 session, 每次都要多按一個取消才能用, 總覺得有點麻煩.
剛好今年作者終於繼續釋出新的版本, 因為多了 portable 的功能, 和上頭所說的這個問題剛好出現了一個小 bug, 會產生一個空的 .ini 檔案, 造成原本不是 portable 的版本變成 portable 版本而找不到儲存在 registry 的 session.
所以就跟作者回報了這個問題, 順便建議是否可以取消那個 session 數量的檢查或讓使用者決定超過多少再詢問.
感謝作者接受這個建議, 在目前的 0.4 beta 14 版本中, 已經不會詢問了 (其實我覺得好像沒改好, 依照作者所說的, 應該是在 Connection 選單下有個 Auto Clear Old Sessions 可以選擇要不要詢問刪除, 不過... 我試的結果, 不管有沒有選擇這功能, 都不會詢問).
改用 Shrew Soft VPN Client 也一陣子了, 原本用起來都很正常, 但是最近常常發現在 VPN 連上後, 使用 pietty 來連線時, 常常一個指令打完按 enter 之後, 回應的畫面顯示一半就不動了.... 可是看起來 VPN 又沒有斷線, 就單純那個 session 不動了.
找了半天找不出原因, 後來就開始看 VPN client 上頭那一些設定, 發現 MTU 的設定好像與之前習慣用的不同, 改回成 1326 後, 似乎就解決這個問題了, 因為改了之後到目前為止, 並沒有發生過類似的問題.
這是個很奇怪的問題, 似乎不是每個人都會碰到, 但是看網路上的回應, 似乎碰到的人也不少.
基本上, 免費版本的 AntiVir 應該每天會更新一次, 如果需要比較多次的更新, 還可以在排程裡頭自定新的更新. 不過... 在升級到 10 版之後, 常常碰到無法更新的情形. 查看 AntiVir 的記錄, 並不是有去更新而失敗, 而是完全沒有去執行更新的動作.
如果你有類似的情形, 可以選擇手動的更新. 而 AntiVir 也提供一個 update.exe 指令, 可以簡單的去做更新的動作. 預設執行 update.exe 會去做更新的工作, 但不會有任何的訊息 (查看 AntiVir 的 Log 或 Event 會有記錄), 如果需要查看更新的狀態, 也可以加上 /dm=0 這個參數, 就會顯示更新的視窗.
也因為 AntiVir 本身的排程怪怪的, 所以, 我們可以利用 Windows 本身提供的工作排程器, 執行下面這個指令:
C:\Program Files\Avira\AntiVir Desktop\update.exe /DM=2 /NOMESSAGEBOX /receivetimeout=180
或 (64 位元系統下):
C:\Program Files (x86)\Avira\AntiVir Desktop\update.exe /DM=2 /NOMESSAGEBOX /receivetimeout=180
利用 Windows 的工作排程器還有個好處, 就是可以自己想多久更新一次都可以, 所以... 如果有更新的問題, 可以自行加上這個更新的行程會比較好一些.
最近朋友的電腦突然發現原本可以使用的 PerfectDisk offline defragmentation 功能無法使用, 每次只要選擇這個功能, 重開機後就會停在 Windows 開機的畫面, 且硬碟燈一直閃, 不過看起來不太像是在做 defrag 的動作, 因為放了好幾個小時還是一樣的情形, 就只能關機重開. 重開後可以正常進入 Windows, 不過會跳過 defrag 的動作.
Google 查了一下, 發現這篇文章, 原本有些驅動程式會造成這個問題. 不過, 下載了那個 BlockedFileList.exe 並安裝之後, 情況並沒有改善. 詢問了一下朋友, 發現最近應該只有把 OpenVPN 由 2.1.1 升級到 2.1.2, 看來也許是這個軟體造成的.
查了一下 OpenVPN 安裝的驅動程式, 試著把 tap0901.sys 加到 HKLM\SYSTEM\CurrentControlSet\services\DefragFS\Parameters 裡頭的 BlockedFileList 裡頭. 果然就解決了這個問題.
如果有類似的問題, 試著看看是那個驅動程式造成的吧.
其實這個問題應該不算是 EzBuilder 的問題, 也應該不算是 Windows 7 的問題, 嚴格說來算是 K-Lite Code Pack 的設定問題 (不過似乎只會在 Windows 7 發生這問題, 而且不是每種格式轉出來都是有問題的).
記得在 Windows 7 RC 之前, 這個問題應該還不存在 (也許是那時的 K-Lite 設定不同吧), 不過自從 Windows 7 RC 開始, 這問題就出現了. 一直以來, 我也找不出是什麼原因, 後來就因為這樣子, 把轉檔的動作改到別的機器或用 VM 來處理了. (閱讀全文)
最近把筆電的作業系統換成 Windows 7 x64 測試, 結果發現原本用到的 Cisco VPN Client 在 x64 無法使用. 網路上找了一下, 有人說 Shrew Soft 的 VPN Client (還是免費的) 可以在 x64 使用, 抓了 2.1.5 回來, 安裝時會有個錯誤, 改抓 2.1.6 beta 4 就可以正常安裝了. 不過... 看了半天, 完全想不出來要怎麼把原本 Cisco VPN Client 的設定轉過來使用, 那些設定似乎完全對不起來... (閱讀全文)
這星期幫家人換了一台新的筆記型電腦, 結果裝上 CDBurnerXP 之後, 發現抓不到燒錄機. 看了一下官方的討論區, 似乎有不少人也有類似的問題.
後來看到這篇文章, 裝了 Intel Matrix Storage Manager 之後, 就可以抓到燒錄機並正常使用了. 可以參考看看.
最近由 php 的網站, 下載了新版本的 php_manual_en.chm 回來使用, 不過... 發現打開後, 只有左邊的索引可以點選, 但是右邊的內容都是 "已取消瀏覽該網頁". 找了半天, 終於發現了解決的方法:
在檔案總管中對該檔案按右鍵選擇內容 (Properties), 然後在一般 (General) 下面有個安全性 (Security) 的說明, 右邊有個解除封鎖 (Unblock) 的按鈕, 點了之後就可以正常打開了.
最近因為 Windows 7 RC 推出, 所以就裝了一套來測試看看. 多數我常用的軟體似乎都運作正常, 不過... 在 ThinkPad 上頭有個 EasyEject 程式並無法正常運作.
雖然 Windows 本身就有這類退出硬體的功能, 不過... 在 Windows 7 上頭, 那個圖案預設是在工具列上隱藏的, 就算設定成在工具列上顯示, 仍然要移動滑鼠去點選才能執行, 並沒有以往使用 EasyEject 時, 只要按 Fn+F9 的快速鍵就可以運作.
而 ThinkPad 本身附的 Hotkey 程式, 是可以正常運作的. 在沒有安裝 EasyEject 時, 仍可以按 Fn+F9, 這時會顯示你並沒有安裝 EasyEject. 再看一下安裝後的目錄下頭, 有個 tpfnf9.exe 的程式, 看起來應該就是當使用者按下 Fn+F9 時, 就會去執行這個檔案.
而 Windows 本身的那個安全退出硬體的對話盒, 我們一樣也可以用下列的指令來執行:
rundll32 Shell32.dll,Control_RunDLL HotPlug.dll
所以, 看來我們只要自己寫個程式來取代原本的 tpfnf9.exe, 並執行上頭的指令, 就應該可以在按 Fn+F9 時, 把這個安全退出硬體的對話盒叫出來, 這樣子與原本 EasyEject 所提供的功能, 應該也差不到那兒去了.
下頭就是我寫的一個小程式, 在我這兒運作正常, 有興趣的自己抓回去用吧:
http://www.teatime.com.tw/~tommy/files/tpfnf9.7z
本人不保證程式運作的任何結果, 使用後有任何問題請自行負責, 不要來找我. :-)
2009/05/19:
用了一天, 發現怪怪的, Windows 7 裡頭的 hotplug.dll 似乎有問題, 因為雖然叫的出來移除硬體的畫面, 但是多數時候都無法退出.
不過同時使用工具列上的圖示來做退出的動作又很正常.
看來也許是 bug, 也許是在 Windows 7 裡頭改了做法.
Thunderbird 3.0 beta1 出了有一陣子了, 我在剛推出時就換到這個版本, 使用上頭, 除了原本使用的 SmtpSelect 這個程式沒辦法運作外, 其他的都還算正常. 原本想找看看有沒有什麼能夠替代的程式可以用. 不過前一陣子在 Addons 上頭能夠找到的, 都一樣不能在 3.0 beta1 中使用. (閱讀全文)
今天 FileZilla 推出了新的版本, 所以就試著為 FileZillaPV 製做相對應的版本. 不過... 當執行 MSYS 之後, 在處理 patch 指令時, 出現了 Couldn't reserve space for cygwin's heap 之類的錯誤. 由於之前都是在 XP 裡頭執行, 現在換到 Vista 使用, 難道是與 Vista 不相容嗎? (閱讀全文)
由於 SpeedFan 在我的 T60 機器上頭跑起來怪怪的, 所以就改用 CoreTemp 來偵測溫度. 由於 CoreTemp 本身就有提供一個 gadget 的 sample, 所以改起來並不會太困難.
加上溫度後就順便加上 CPU 速度的顯示與 uptime 的顯示. 同樣的, 我沒有四核心的機器, 所以不確定這個東西在四核心上頭的顯示結果會不會正常, 有的人就自己試看看吧.
由於修改的部份還有一些 dll 的檔案, 所以就不提供 patch 的檔案了, 有需要就自己去比對兩者之間的差異吧.
檔案可以由這兒抓取: http://www.teatime.com.tw/~tommy/files/AllCPUMeterByTommyWithCoreTemp.gadget
最近終於開始接觸 Vista 了, 自然也用了 Windows Sidebar 這個程式. 找了一些 gadget 回來用, 不過有些 Gadget 是不錯用, 不過總覺得少了某個小功能, 為了做到該功能, 可能要多放幾個 gadget 來取代... 不過... 桌面就那麼大, 放太多總是不好, 所以就自己動手改了幾個來用. (閱讀全文)
更新 MyTV 為 0.0.2 版. 修正如下:
- 加入 check_session.sh, 把超過一段時間沒有連線的 producer 結束運作
- 加入預約錄影的功能
主要就是加上預約錄影的功能. 並可以直接用 web 介面抓取或刪除錄影的檔案.
可以由這兒抓取: http://www.teatime.com.tw/~tommy/files/mytv-0.0.2.7z
這幾天在家裡的伺服器弄了 subversion 上去, 要把目前 laptop 上頭一些程式放到上頭去. 結果, 每次一執行 TortoiseSVN 要連線時, 就會出現一個 TortoisePlink 的 Unable to write to Standard output 的錯誤訊息. (閱讀全文)
由於 Windows 本身所附的 notepad.exe 實在不怎麼好用, 但是, 很多程式在執行編輯功能的時候, 都是去執行 notepad 來使用, 雖然部份的程式也可以讓人自定所要使用的編輯器, 不過, 每個都要去改實在很麻煩, 而且... 有些還沒辦法改. (閱讀全文)
今天把 Firefox 改用 Firefox 3 beta 2 的版本, 多數常用的外掛, 使用 Nightly Test Tools 之後, 似乎都可以正常的使用. 不過... 唯獨 Gmail Manager 有點小問題. 在記憶密碼的上頭, 因為 FF3 改用 LoginManager 的原因, 原本的寫法會無法儲存密碼, 也無法取得密碼. 不過... 輸入密碼後, 仍可以正常運作. (閱讀全文)