TAG

首都機能移轉 (2) 歌詞 (2) 靠北文 (40) 戲言 (30) 糟糕 (7) ACG (23) Assembly (2) Boost (2) C (31) C++ (69) CMake (4) CSIE (67) Debian (34) Design_Pattern (2) Django (1) Eclipse (1) en_US (13) FFmpeg (3) FoolproofProject (26) FreeBSD (2) Git (4) GNU_Linux (65) IDE (5) Java (11) JavaScript (19) KDE (15) Khopper (16) KomiX (3) Kubuntu (18) Life (1) Lighttpd (2) Mac_OS_X (2) Opera (1) PHP (2) PicKing (2) Programing (21) Prolog (1) Python (7) QSnapshot (2) Qt (30) Qt_Jambi (1) Regular_Expression (1) Shell_Script (7) Talk (98) VirtualBox (7) Visual_Studio (13) Windows (18) zh_TW (36)

2011年1月23日 星期日

Use pyside-uic to compile ui files automatically

PySide 可以用 pyside-uic 來轉換 *.ui 到 python code,但每次都要手動弄這個真的很煩。所以我把所有的 ui 檔案集中放到一個資料夾內作為 package,並在 __init__.py 上動點手腳:

2011年1月9日 星期日

Embed external viewers into Firefox

# aptitude install mozplugger
Then Firefox will open your default external viewers with tabs, instead of external windows.

2010年12月29日 星期三

Mozilla Add-On 要求使用者更改密碼以策安全

昨天 MAO 寄了封信, 大意是他們在 12/17 發生了被第三方使用者洩漏密碼的事件, 因此 MAO 為了安全性把所有使用者的密碼都砍掉了, 必須要用忘記密碼的方式重設才能啟用帳號.

2010年12月20日 星期一

im-switch dialog in Kubuntu 10.10

im-switch 在有 X Server 的狀況下會使用圖形介面的對話框,但是很遺憾的是它固定呼叫的是 zenity,而沒有提供 kdialog 或是 dialog 之類的支援。Kubuntu 預設也不會裝 zenity,因此你只能瞪著它吐出錯誤訊息。
等等,你有除了安裝 zenity 之外的方式,那就是假裝你沒有 X Server:
$ DISPLAY= im-switch -c
這個方法會讓 im-switch 以為目前沒有 X Server,從而使用傳統的設定方式。現在你可以享受你的文字介面了。

2010年11月25日 星期四

你永遠料不到自己有多蠢

最近某個作品在開啟檔案時會不定期當掉 ... 原本一直找不出原因, 直到我在除另一個不相關的 bug 時發現這個函式:
const char * fromURI( const QUrl & uri ) {
    QByteArray tmp( uri.toString().toUtf8() );
#ifdef Q_OS_WIN
    if( uri.scheme() == "file" ) {
        tmp.prepend( 'w' );
    }
#endif
    return tmp;
}

2010年11月11日 星期四

Qt 4.7.1 introduced -mp configuration

這一篇所針對的是 Qt 4.7.0, 在 Qt 4.7.1 發佈後, 發現多了 -mp 的選項, 顧名思義, 加上之後它就會針對 msvc 開啟 /MP 參數. 在此統整一下我用的參數:
@echo off

SET PREFIX=Z:\Qt\4.7.1

configure ^
    -opensource ^
    -debug-and-release ^
    -mp ^
    -ltcg ^
    -fast ^
    -no-qt3support ^
    -no-dsp ^
    -no-vcproj ^
    -prefix %PREFIX% ^
    -nomake examples ^
    -nomake demos ^
    -nomake translations
MKDIR %PREFIX%\mkspecs
XCOPY /E /K mkspecs\* %PREFIX%\mkspecs
nmake
nmake install
nmake clean

2010年10月11日 星期一

Build Qt with Visual C++ 2010

在開始前要特別一提的是在 configure -help 未提及的參數:
-prefix <path>
指定編譯完成後的安裝路徑,nmake install 時會安裝到這個路徑。
-nomake <libs|tools|examples|demos|docs|translations>
可以指定哪部分不需要編譯。要注意的是如果要關掉多個模組須分開指定。
為了讓編譯程序能夠加快,我對 mkspecs 做了一點手腳。找到 mkspecs\win32-msvc2010\qmake.conf,修改:
-QMAKE_CFLAGS            = -nologo -Zm200 -Zc:wchar_t-
+QMAKE_CFLAGS            = -nologo -Zm200 -Zc:wchar_t- -MP3
-QMAKE_CFLAGS_RELEASE    = -O2 -MD
+QMAKE_CFLAGS_RELEASE    = -Ox -MD
提高最佳化參數,並啟動多重編譯。另外有點白爛的是,在編譯階段它會去安裝路徑找 mkspecs,問題是根本還沒進入安裝階段,資料夾內當然是空空如也;為此你必須手動把 mkspecs 從原本的資料夾整個複製到安裝路徑裡。

2010年10月6日 星期三

Fix the jar file association for shared-mime-info

Java 的 jar 檔案關聯在 Debian 和 Kubuntu 上一直都被視為 application/zip,基本上這不是 KDE 的問題,而是 shared-mime-info 裡面的 /usr/share/mime/packages/freedesktop.org.xml 的判定條件錯誤,它沒有判斷 jar 檔的 PKZIP 表頭。打開這個檔案,找到 <mime-type type="application/x-java-archive"> 的區段,加入:
<magic priority="85">
  <match value="PK\003\004" type="string" offset="0" />
</magic>
再刷新 MIME 資料庫:
# update-mime-database /usr/shared/mime
jar 檔就會被正確判定了。