2010年5月10日 星期一

Javascript 與 JSON 的範例


YAML 內嵌JSON 語法,故也可使用YAML 於 Javascript

  你可從此處得到相關資訊 http://yaml-javascript.sourceforge.net/


Javascript with JSON 




  


2010年4月21日 星期三

初探 YAML (1)

YAML的語法和其他高階語言類似,並且可以簡單表達清單、雜湊表,純量等資料形態。
因為其語言特性,可以讓人眼很容易且清楚的識別其資訊。


特色
  它使用空白符號縮排和大量依賴外觀的特色,特別適合用來表達或編輯

  • 資料結構
  • 各種設定檔
  • 傾印除錯內容
  • 文件大綱(例如:許多電子郵件標題格式和YAML非常接近)。
  • 儘管它比較適合用來表達階層式(hierarchical model)的資料結構,不過也有精緻的語法可以表示關聯性(relational model)的資料。
  • 由於YAML使用空白字元和分行來分隔資料,所以特別適用於script language (Ex: grepPythonPerlRuby)。
  • 其讓人最容易上手的特色是巧妙避開各種封閉符號 (EX: 引號、各種括號等,這些符號在巢狀結構時會變得複雜而難以辨認。

安裝

2. 解壓至PyYMAL-3.09
3. cd PyYMAL-3.09
4. 執行下列指令
python setup.py install

範例


# 筆者特別愛用 Python 來使用YAML. 因為資料結構可直接套用。
# yaml_test1.py




執行結果

$ python py_yaml_test.py 
a: 1
b: {c: 3, d: 4}

cost: 50000
depth: 5
flags: [INT, WIS, SPEED, STEALTH]
name: The Cloak 'Colluin'
rarity: 45
weight: 10


Reference for PyYAML


 更新

  • update syntax 已測試 Python 2.7.12, Python 3.5.2



2010年4月3日 星期六

使用者介面自動化測試使用sikuli

MIT 的學生開發一個使用視窗截圖來代替程式碼的方法。
你可很容易使用它的圖形化介面來進行自動化的測試。
它可大幅簡化你重覆測試程式的時間。

例如: 

# jPython syntax
# 關閉 find 找不到圖示的錯誤

setThrowException(False)
# 設定搜尋圖示的時間 (ms)
setAutoWaitTimeout(3000)

# 找到桌面上的VIM的圖示

xs = find()
# 若圖示存在, 則以雙擊開啓
if xs:
    doubleClick(xs)

# 等待程式開啟到下列畫面
wait()
# 按'a' 進入編輯模式
type('a')
# 輸入'hello'
type('hello')
# 按ESC鍵, 回到命令模式
type(Key.ESC)
# 儲存檔案
type(':wq D:\hello.txt')
type(Key.ENTER)

以文字內容來看
# text openvim.py
setThrowException(False)
setAutoWaitTimeout(3000)
xs = find("1270226485109.png")
if xs:
  doubleClick(xs)
wait("1270227406546.png")
type('a')
type('hello')
type(Key.ESC)
type(':wq D:\hello.txt')
type(Key.ENTER)

Download
你可以從此處下載測試版:
http://groups.csail.mit.edu/uid/sikuli/

2010年3月15日 星期一

有效率 TCP/IP 程式設計

一本不錯的書,最近又重看Effective TCP/IP Programming。
此書提供44個提示來改進你的網路程式。

你可參考下列連結:
http://www.amazon.com/Effective-TCP-IP-Programming-Programs/dp/0201615894/ref=sr_1_1?ie=UTF8&s=books&qid=1268599171&sr=8-1

2010年2月20日 星期六

如何寫自己的作業系統使用開源軟體(一)?

此書中有描述了電腦的啟動及如何進入x86的保護模式。

非常有參考的價值。
你可從下列網址,下載電子書及範例檔。
http://code.google.com/p/writeos/downloads/list

2010年2月8日 星期一

在 MAC OS X中,使用msgget() ENOSPC錯誤

如果你使用 msgget() 函式時, 你必須清楚瞭解到預設值為40。
你可使用使用 'ipcs -q' 指令來查看目前message queue 的當前狀況。

假如沒有處理好使用完的queue之回收,你的msgget()將會回傳 ENOSPC錯誤

原文為 
"message queue has to be created but the system limit for the maximum number of message queues would be exceeded"

意思是"已超過系統上限。"

你可使用 msqctl來移除未被正確移除的queue。

2010年2月4日 星期四

如何重設你的Mac OS X (Leopard)的密碼?

有時你可能忘記你系統密碼時,而你手邊卻沒有OS X 安裝 DVD. 我試了一下網路相關的資料,整理出下列步驟:


1.開機進入安全模式(single user mode) (請按 "Command-S"在開機之後,直到灰蘋果畫出現。)

2.Type fsck -fy

3.Type mount -uw /

4.Type launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist

5.Type dscl . -passwd /Users/username password

6.重新開機

請注意:
*這是一個利用安全漏洞的方法來重設密碼, 請確定你瞭解可能的風險再進這個步驟。
*如果你不希望任何人使用此方法登入你的電腦, 你可能必須結合使用File Vault, firmware password, 及外殼鎖。