2012/04/28

在 Ubuntu 手動安裝 Qt SDK

以前一向都是從套件庫直接安裝 Qt SDK:
aptitude install qt-sdk

今天 checkout 別人的 project 出來編譯時,發現套件庫中的 Qt lib 版本有點舊 (好像是 4.6 吧),乾脆直接去 Qt 官網抓檔安裝來裝。

裝好後無意間發現 OpenGL 的範例程式編譯時都會出錯,弄了半天原來是從套件庫安裝時會自動把 OpenGL lib 裝上去,但是官網的安裝檔不會處理相依性問題。所以要自己手動補:
aptitude install libgl1-mesa-dev libglu1-mesa-dev libglut3-dev 

Ubuntu 12.04 手冊

Ubuntu 12.04 LTS 發佈,這次官方同時做好了操作手冊,簡潔、清楚的介紹,讓對新環境不熟悉的人可以快速上手。

Ubuntu 桌面版手冊
https://help.ubuntu.com/12.04/ubuntu-help/index.html

ps. 沒看到中文請調整瀏覽器預設語言

urDiary 0.1.0

說了幾百年,總算幫 urDiary 加上搜尋功能了。

Changelog :

  • 搜尋功能
  • 修正單引號儲存時發生的錯誤


載點:
https://github.com/downloads/johnroyer/urDiary/UrDiary-0.1.0-win32.7z


2012/04/27

讓 YouTube 影片不會 lag 妙法

最近看 YouTube 影片,不知怎麼非常不順,影片載入一小段後就停住,看一部影片每幾秒就要重新載入。倒是 YouTube HD Suite 等工具下載影片沒遇到這個問題,非常奇怪。

後來聽到 huckly 大大的方法:選擇 480p 畫質觀看。很妙的,這個方法真的有效!在 360p 下播放會 lag 的影片,切換到 480p 載入就非常順。

2012/04/07

qmake to cmake


以 Qt Creator 預設的 GUI Appplication 為例:
zero@zero-desktop:~/dev$ tree example/
example/
|-- example.pro
|-- main.cpp
|-- mainwindow.cpp
|-- mainwindow.h
`-- mainwindow.ui

建立 CMakeLists.txt,先寫入最常用到的幾個設定:
project( example )
cmake_minimum_required(VERSION 2.6)

set( SRC main.cpp mainwindow.cpp )
set( HEADER mainwindow.h )

讓 cmake 先載入 Qt 會用到參數:
find_package( Qt4 REQUIRED )

加入 Qt 函式庫位置:
include( ${QT_USE_FILE} )
add_definitions( ${QT_DEFINITIONS} )

因為 Qt 在編譯前會先透過 moc、uic 等對程式做處理,將 SIGNAL/SLOT、ui 轉成程式碼再做編譯。Cmake 透過 wrapper 做設定:
set( FORM mainwindow.ui )

qt4_wrap_cpp( HEADER_MOC ${HEADER} )
qt4_wrap_ui( FORM_HEADER ${FORM} )

如果專案中有使用到 qrc 檔,則需加入:
qt4_add_resources( RESOURCES_RCC resource.qrc )

有時編譯位置與程式碼放置位置不同,編譯器會讀不到 moc 轉出來的程式碼,所以要將編譯位置加入:
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )

最後,編譯設定:
add_executable( exe ${SRC} ${HEADER_MOC} ${FORM_HEADER} )
target_link_libraries( exe ${QT_LIBRARIES} )

更改 Ubuntu 10.04 登入畫面背景圖片

從「系統」=>「偏好設定」=>「外觀」中只能修改登入後的桌面背景,登入畫面的背景還是不會變。

若要修改登入畫面的背景圖片,則需要使用 gdm 身份開啟 gnome-control-center 來修改設定:

  1. 首先,先將帳號登出,退回到登入畫面
  2. 接著按下 Ctrl+Alt+F1 切換 tty
  3. 使用自己的帳號、密碼登入
  4. 設定圖形介面應用程式顯示位置:
    export DISPLAY=:0.0
  5. 使用 gdm 身份執行 gnome-control-center:
    sudo -u gdm gnome-control-center
  6. 按下 Ctrl+Alt+F8 切換回圖形介面,這時候會看到「控制中心」
  7. 接著就能從「外觀」中設定登入畫面的背景圖片

2012/04/05

「Code Smart, Don't Code hard」by CrBoy




備註:CrBoy's Blog:「那些老師沒教的事」簡報釋出


其中印象最深刻的應該是傻傻的用 printf 除錯,如果只是一般型態還好,遇到物件等之資料型態用 printf 真會把自己搞死。

另外把壓縮檔塞進版本庫裡面也很經典!SVN 或是 git 等版本管理工具其中一大功能就是比對 code 的異動,程式碼壓縮後這些工具就沒辦法做比對。誇張的是有人還會好心的把 *.o、*.exe 一起打包 commit .... XD


ps. 用 cmake 好像還蠻威的!

SQLite 單引號處理

一般處理 SQL 查詢時,遇到單引號或雙引號都會加上反斜線做跳脫。不過字串是餵給 SQLite 時,處理單引號的方式不同,是將一個單引號改為二個。

例如:
select * from content where text like '%Zero's note%'

上述字串「Zero's note」中的單引號會造成查詢錯誤,所以將單引號修改後成為:
select * from content where text like '%Zero''s note%'


Reference:
How do I use a string literal that contains an embedded single-quote (') character?