Ads 468x60px

Pages

2010年8月6日 星期五

Linux 提示符號 - Fancy Prompt & Color Theme

在 iTerm 及 linux command line mode 底下,預設的提示符號及色彩(無色彩),要辨別訊息,不是那麼容易,於是就來給它改造一番。底下分三個種類來說(我的 login shell 一律使用 bash):

一、Mac OS X iTerm 底下的提示符號 (Regular Prompt)
底下是我的 ~/.bash_profile 的一部份

if [ "$PS1" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
        fi
        ;;
    screen)
        if [ -e /etc/sysconfig/bash-prompt-screen ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
        else
            PROMPT_COMMAND='echo -ne "\033_${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"'
        fi
        ;;
    *)
        [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
        ;;
    esac
    # Turn on checkwinsize
    shopt -s checkwinsize
    PS1="\[\033[0;32m\][\u@\h:\[\033[0;33m\\w\[\033[0;32m\]]$\[\033[0m\] "
fi

export LANG=zh_TW.UTF-8
export CLICOLOR=1

粗體的部份,
PS1="\[\033[0;32m\][\u@\h:\[\033[0;33m\\w\[\033[0;32m\]]$\[\033[0m\] "
是用來改造命令提示符號的,

export CLICOLOR=1

是用來啟動色彩的。

二、Linux 底下的提示符號 (Fancy Bash Prompt)
原文請參考這裡 http://www.debian-administration.org/articles/205
簡單的說,就是把那一串 shell script 存成一個檔,例:~/.fancy_bash_prompt ,然後,在你的 ~/bash_profile 的最後面,加上

. ~/.fancy_prompt

就可以了。

三、Mac OS X 下 iTerm 的 color theme (對投影來說,特別容易辨別)
原文請參考這裡 http://kpumuk.info/mac-os-x/customizing-iterm-creating-a-display-profile-with-pastel-colors/

先關閉你的 iTerm, 接著啟動 Terminal.app,然後

你可以使用以下方式,安裝最新的 pastel theme

$ bash  (curl http://gist.github.com/raw/473731/iterm_pastel_theme.sh)


Enjoy ~~

2010年7月15日 星期四

iPad Jailbreak (JB)

7月初,拿到滾燙燙的 iPad wifi 64G 之後,就想到直接上 JB,免得跟 iPhone 3G 一樣,一開始沒有JB,日後怕出問題,一直沒有上 JB.

在爬了文,及詢問過同事之後,大家都說現在 JB 跟吃飯一樣,幾個 click 就好了。於是就下定決心開始了......

系統/環境資訊:

- Mac OS X 10.6.3
- iTune 9.2
- iPad OS 3.2

步驟一,備份 SHSH:
- Open iTune Apps on Mac.
- Connect iPad to USB, then iTune will detect it.
- Download and install backup application: TinyUmbrella (google it)

- Open TinyUmbrella, then it will detect your iPad and your OS version.
- Click on "Advanced Options" in TinyUmbrella Apps.
  - you will see your "ECID" on screen, which is Exclusive Chip ID.
  - select "Location" to "Cydia"
  - click "Save My SHSH"
    -The file will be saved in your local machine ($HOME/.shsh/) and Cydia server.
- Done.

步驟二,JailBarek:
- Download and install "SPIRIT" software.
- Open SPIRIT.
- SPIRIT will detect that your iPad is connected.
- Just click "Jailback". within 1 sec and it's done. (三小,這樣就完成了喔!)
  - Don't click "Close" yet until iPad has been rebooted.
  - iPad is rebooting.
- JB is done, Quit SPIRIT.

步驟三,Initializing Cydia:
- on iPad, click "Cydia" to initialize. 
- Done

步驟四,安裝 AppSync , 讓 *.ipa (Apps 檔案格式)可以直接裝到 iPad 上:
- Open Cydia
- Click Manage, and click Source
- Add a source: http://cydia.hackulo.us
- After that, Click Hackulo source, then select AppSync OS 3.2 to install.
- Done.

~~~~~~ Happy Play Around Your iPad ~~~~~~

2010年6月2日 星期三

Add Additional YUM Repository to Redhat EL5

在標準的 Redhat EL5 底下,yum 的 repository 只提供官方的版本。日前,因為工作需要要裝以下的 library or package 給 PHP 使用,

pecl/json
pecl/imagick

可是在官方版本底下,找不到相關的套件;嘗試用 'pecl install imagick' 重新編譯時,又會發生找不到 libWand.so 相關的函式庫。在網路上 google 了一番,發現在 EPEL(Extra Package for Enterprise Linux) 有現在的 rpm 可用,所以就試著把它裝起來,以下是所有的步驟。

--------------------------------------------------------------------
Add the following two files into '''/etc/yum.repos.d'''

filename: /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 5 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch
failovermethod=priority
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 5 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch
failovermethod=priority
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

filename: /etc/yum.repos.d/epel-testing.repo
[epel-testing]
name=Extra Packages for Enterprise Linux 5 - Testing - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/testing/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel5&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

[epel-testing-debuginfo]
name=Extra Packages for Enterprise Linux 5 - Testing - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/testing/5/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-debug-epel5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

[epel-testing-source]
name=Extra Packages for Enterprise Linux 5 - Testing - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/testing/5/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-source-epel5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

Also you need to import the gpg key for the repository as follows: (check out latest location of file: https://fedoraproject.org/keys)
$ cd /etc/pki/rpm-gpg
$[/etc/pki/rpm-gpg] wget -o RPM-GPG-KEY-EPEL https://fedoraproject.org/static/217521F6.txt
$[/etc/pki/rpm-gpg] sudo rpm -import RPM-GPG-KEY-EPEL

2010年5月20日 星期四

在 Chrome on Mac 上移除擾人的 google translate bar

最近用 Google Chrome 的時候,被那個惱人的 translate bar 搞得很火,所以就辦法看能不能把它 disable 掉;找來找去,遍尋不著。後來,想到直接到檔案系統裡,找出它的設定檔來改。

設定檔位置:  ~/Library/Application Support/Google/Chrome/Default/Preferences

裡頭會有幾個跟 translate 相關的設定,如下:


   "translate_language_blacklist": [ "zh-TW" ],
   "translate_site_blacklist": [ "xfalcons.blogspot.com", "mail.google.com", "www.facebook.com", "www.plurk.com", "udn.com", "www.google.com.tw", "tw.yahoo.com" ],

我的設定方式是將所有 zh-TW, googe.com, yahoo.com ... 等,不想要 translate bar 的站,都加到裡面去,這樣,就不會被那個 bar 一直推來推去了。

2010年4月13日 星期二

[PHP] upload file 的同時,存取其他的 parameters

幾天前,被問到 html form 在 upload file 的同時,如何存取其他的參數?太久沒寫 code ,一時也無法確定,所以寫了個測試程式。結果是可以用 $_POST 拿到。

[upload_form.html]
------
....

form action="http://192.168.0.1:80/ws/uploadFile" enctype="multipart/form-data" method="post"
input name="t" type="hidden" value="1271143058" 
input name="expire" type="hidden" value="1271143063" 
input name="routerAccessKeyId" type="hidden" value="05f6adb19e46f06ef0515f24e2dc586e" 
input name="sig" type="hidden" value="e53a274015c4ab6670faa98775827c3b" 
input name="path" type="hidden" value="/usb1/muchiii/photo" 
input name="callback" type="hidden" value="_getdata_123456" 

input name="filename" type="file" 
...
...
------

[uploadFile.php]
------
var_dump($_POST);
print "\n";
var_dump($_FILES);
------

得到以下結果。
------
array(6) {
  ["t"]=>
  string(10) "1271143058"
  ["expire"]=>
  string(10) "1271143063"
  ["routerAccessKeyId"]=>
  string(32) "05f6adb19e46f06ef0515f24e2dc586e"
  ["sig"]=>
  string(32) "e53a274015c4ab6670faa98775827c3b"
  ["path"]=>
  string(19) "/usb1/muchiii/photo"
  ["callback"]=>
  string(15) "_getdata_123456"
}

array(1) {
  ["uploadedfile"]=>
  array(5) {
    ["name"]=>
    string(18) "OverallSystem1.png"
    ["type"]=>
    string(9) "image/png"
    ["tmp_name"]=>
    string(14) "/tmp/phpNbiLMY"
    ["error"]=>
    int(0)
    ["size"]=>
    int(86265)
  }
}
------