2011年12月30日 星期五

設定 subversion 預設的編輯器為 vi

修改 ~/.subversion/config 在 [helpers] 項目裡加上 editor-cmd = vi

[helpers]
### Set editor-cmd to the command used to invoke your text editor.
###   This will override the environment variables that Subversion
###   examines by default to find this information ($EDITOR, 
###   et al).
# editor-cmd = editor (vi, emacs, notepad, etc.)
editor-cmd = vi

2011年12月8日 星期四

透過 VPN 購買 Android Market 上的軟體

記錄一下在 Google 開放台灣購買前的變通方式,不用 root

1. 註冊 Google Wallet 並設定信用卡號及地址,地址要輸入美國的 (隨便找一個地址輸入)
2. 手機切換成飛航模式
3. 打開 WiFi 並設定 VPN (用 http://tenacy.hpc.tw/public 裡的 PPTP 美國伺服 - Android 專用
4. 進入設定->應用程式->管理應用程式, 選擇“全部”後找到 Market
5. 選擇右上的“解除安裝更新”並清除資料
6. 開啟 Market 找要購買的軟體就可以購買了

2011年12月5日 星期一

[Ubuntu 11.04] 啟動 ASUS U46S 的 USB 3.0 port

ASUS U46S 在安裝 Ubuntu 11.04 後 USB 3.0 那個 port 是無法使用的...
網路上找到的解決方法:
1. sudo vi /etc/default/grub
2. 找到 GRUB_CMDLINE_LINUX_DEFAULT 那行並加上 pci=nomsi,noaer
3. sudo update-grub
4. 重新開機
重新開機後 USB 3.0 那個 port 就可以使用了

[20111205] Update set_touchpad.sh

Changelog:
1. 增加判斷,如果只偵測到一個滑鼠就不做事,有二個以上才做 touchpad 的開/關
2. 儲存 log 到 .set_touchpad.log

set_touchpad_20111205.7z

2011年11月21日 星期一

Enable/Disable touchpad

寫一個 shell script 來判斷 touchpad 狀態並切換 enable/disable
寫法可能不是很好,因為 shell script 不熟... :P
之後再研究怎麼判斷有沒有接滑鼠,實現有接滑鼠就自動 disable touchpad 的功能
#!/bin/bash

KEYWORD="PS/2 Logitech Wheel Mouse"
ID=""

FOUND=`xinput --list | grep "${KEYWORD}"`
for i in ${FOUND}; do
    MATCH=`echo ${i} | cut -d "=" -f 2 -`
    if [ ${i} != ${MATCH} ]; then
        ID=${MATCH}
    fi
done

if [ ${ID} == "" ]; then
    echo "${KEYWORD} not found!"
    exit
fi

FOUND=`xinput --list-props ${ID} | grep "Device Enabled"`
DEVICE_ENABLE=""
for i in ${FOUND}; do
    case ${i} in
    "("*)
        DEVICE_ENABLE=`echo ${i} | cut -d "(" -f 2 -`
        DEVICE_ENABLE=`echo ${DEVICE_ENABLE} | cut -d ")" -f 1 -`
        ;;
    esac
done

if [ "${DEVICE_ENABLE}" == "" ]; then
    echo "Device not found!"
    exit
fi

ENABLED=`echo ${FOUND} | cut -d ":" -f 2 -`
if [ "${ENABLED}" == "${FOUND}" ]; then
    echo "Error!"
    exit
fi

ENABLED=`expr ${ENABLED} + 0`

echo -n "Found \"${KEYWORD}\" (ID= ${ID}, DEVICE= ${DEVICE_ENABLE}) "
if [ "${ENABLED}" == "0" ]; then
    echo "disabled."
else
    echo "enabled."
fi

case $1 in
    0)
        xinput set-prop ${ID} ${DEVICE_ENABLE} 0
        echo "Touch pad disabled!"
        ;;
    1)
        xinput set-prop ${ID} ${DEVICE_ENABLE} 1
        echo "Enable touch pad..."
        ;;
    *)
        if [ "${ENABLED}" == "0" ]; then
            echo "Switch to enable..."
            xinput set-prop ${ID} ${DEVICE_ENABLE} 1
        else
            echo "Switch to disable..."
            xinput set-prop ${ID} ${DEVICE_ENABLE} 0
        fi
        ;;
esac

2011年11月9日 星期三

解決用 usb 搖桿不能玩無雙蛇魔的問題

問題:
    接上 usb 搖桿後進入遊戲會自動按下 enter 導致無法選擇其它項目

解決方法:
    1. 不要接 usb 搖桿進入遊戲
    2. 選擇儲存建立儲存檔後離開遊戲
    3. 接上 usb 搖桿進入遊戲
    4. 到設定中設定控制器, 用手動的方式進行設定, 如果要用自動的方式, 則需要檢查一下把不存在的搖桿按鈕移除

2011年11月4日 星期五

建立 patch 檔

建立 patch 檔的步驟:
1. 準備修改前後的檔案,如 file.c.org 和 file.c.new
2. 下指令產生檔案即可
diff -Naur file.c.org file.c.new > file.c.patch

參數說明:
-N  --new-file                不存在的檔案以空白檔案方式處理。
-a  --text                    所有檔案都以文字檔方式處理。
-u  -U 行數  --unified[=行數]  顯示指定<行數>(預設 3 行)unified 格式的上下文
-r  --recursive               連同所有副目錄一起比較。

2011年10月31日 星期一

Android 程式: Make Your Clock Widget Beta

用了新手機一陣子,想要找個簡單的 4x1 的 widget 卻找不到合適的...
本來打算自己來寫一個好了,也想了個可以讓使用者自訂大小位置的 idea, 卻在今天發現有人已經寫了,且功能比我想的還多,真是該檢討了...^^"
Make Your Clock Widget Beta 做的還不錯,先用一陣子再來看看要不要自己寫...

Javascript 的字串格式化

因工作需要,要找個好方法來做字串的格式化...
原本的方法是用 string1+string2+string3 的方式做的,但這在某些處理上會有問題,所以需要有個像 C 的 printf 一樣的方式來處理 javascript 字串
在網路上找到了 JavaScript-String.format 這篇文章,裡面的做法可以符合我們的需求,所以在此記錄一下

2011年10月28日 星期五

常用的 vim 設定

把需要的功能加入 ~/.vimrc 再重啟 vim 即可

將 tab 設為4個空白的大小
set tabstop=4

搜尋時不要 highlight 搜尋的字串
set nohlsearch

不要儲存備份檔
set nobackup

使用滑鼠做字串複制時不要自動縮排
set paste

在狀態列顯示游標所在處之行列狀態
set ruler

使用空白取代 tab (如需要 tab 則按 Ctrl-V 再按 tab 鍵即可)
set expandtab

開啟語法顏色功能
syntax on

開啟 vim 時會回到上次開啟時所在的位置
if has("autocmd")
  autocmd BufRead *.txt set tw=78
  autocmd BufReadPost *
    \ if line("'\"") > 0 && line ("'\"") <= line("$") |
    \   exe "normal g'\"" |
    \ endif
endif
如果要將檔案內的 tab 換成空白,則在開啟檔案後輸入以下指令
:retab

2011年10月27日 星期四

使用 Javascript code prettifier

Javascript code prettifier 可以在 blog 內崁程式碼

步驟:
1. 下載檔案
2. 將解壓縮後的檔案放到網路空間上
3. 修改版型在 <head> </head> 間加上下面二行 link, 其中 href 的部份要依實際連結做修改
    <link href="prettify.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="prettify.js"></script>
4. 要使用時用 <pre class="prettyprint"> </pre> 將字串包起來即可

效果:
for( i=0; i<10; i++)
{
    printf("test %d\n");
}