2010年8月1日 星期日

[XML schema] simple element, attribute, restriction

在撰寫XML時, 我們或許會定義一份格式檔

他的功用就是說明你的XML裏面元素的結構是如何

讓讀者可以透過這份格式檔來快速理解你的XML內含甚麼元素、元素的類型代表甚麼

這樣的格式檔, 現時有兩種: XML schema與DTD

因為XML schema完全使用XML原本語法的關係,在使用上已經漸漸取代掉DTD了
我不太想要學快被淘汰沒用的東西, 在這裏就記錄一下XML schema基本的使用方法吧


simple element
simple element代表這個物件裡只含有單一的值(如"string, integer, date, time "等), 而不會再有階層式的其他物件

<xs:element title="my blog" type="string" />

而type的類型共有以下幾種:
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time

-----------------------------
Attribute跟 restriction

<xs:attribute name="letter" type="xs:string" use="required" default="A">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]|[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>

其中,
<xs:attribute name="letter" type="xs:string" use="required" default="A" />
use的值為required代表這個attribute是必要的屬性, 而使用optional則是選擇性的
default="A" 則是說這個attribute預設的值為"A"

<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]|[a-z]"/>
</xs:restriction>
這是限制的部份, 定義letter這個attribute值的範圍
base="xs:string"代表這個是限制字串的屬性
pattern value 說明這個限制字串的屬性是只能填大或小寫的一個英文字母



2010年5月2日 星期日

安裝與設定SVN server

當常常會在不同地方工作時,會常常需要把手中的資料在每台電腦上同步後才能繼續工作
而對於寫程式來說,更加需要版本控管來減低把自己的code改爛後無法復原的情況發生

實驗室的學長以前架了CVS server, 但其實CVS已經越來越少人在用了..
大家都改用SVN, 雖然不知道主要原因是甚麼, 但應該至少是用起來比較方便

記錄一下如何架設SVN

基本上要架設SVN, 都會一並使用svn server端跟client端
最普遍的, server 端使用Subversion, 而client端則使用TortoiseSVN

先把TortoiseSVN安裝好後
我們再來安裝Subversion (Subversion需配合Apache使用, Apache的安裝請自己再找文章吧)

安裝完Subversion後, 請把目錄資料夾裏 Subversion/bin 底下的
mod_dav_svn.so
mod_authz_svn.so
libdb4X.dll <--因版本不同, X可能會不一樣, 我下載的版本就是libdb44.dll
libeay32.dll ssleay32.dll
這5個檔案copy到Apache底下modules的目錄裏

然後開啟 Apache底下conf目錄裏的 httpd.conf 檔案apache的設定
找到以下這兩行
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
然後把其前的 '#' 刪掉, 讓apache執行時讀取這兩個模組

接著, 再加上下面這兩行指令
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

再來, 我們需要設定SVN存放版本資料的位置,
繼續在httpd.conf裏加入以下
####SVN設定###########
<Location svn/code>        #設定網址, ex: http://localhost/svn/code
DAV svn
SVNPath c:/svn/myCode #設定SVN資料在本機裏的絕對路徑, 待會我們再來建這個檔


# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"

#進行帳號驗證時的帳號、密碼資料
AuthUserFile "c:/svn/myCode/conf/passwd.ini"

# only authenticated users may access the repository
#操作時要進行帳號驗證,拿掉此行就不會進行驗證
Require valid-user

# our access control policy
# authz.ini 是設定帳號對各 Project 可讀/寫權限的設定檔
AuthzSVNAccessFile "c:/svn/myCode/conf/authz.ini"
</Location>

儲存好之後, 我們接下來使用
按照剛剛打的路徑建立一個 C:/svn/myCode 的資料夾, 以放置SVN的資料

成功建立repository後, myCode內應該會有以下檔案
因為要提供網路存取的關係, 需要把這個c:/svn 資料夾共用出去, 使用者為everyone


剛剛設置 httpd.conf 時應該有注意到我們有設SVN的存取密碼及權限檔
現在先利用Apahce來建立密碼檔 - passwd.ini
開啟cmd, 輸入
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd.exe" -c passwd.ini [帳號]
輸入帳密後, 在apache/bin 裏應該就會產生一個passwd.ini的檔案
裏面就會有剛建的帳號跟加密過的密碼
把passwd.ini 放到 c:/svn/myCode/conf/passwd.ini

接著我們建立存取權限的檔案authz.ini
自己手動新增這個檔, 然後修改內容為以下
# 先定義群組
[groups]
developer = user1,user2,user3
art = user4
everyone = *

# 預設拒絕所有人進入瀏覽
[/]
* = # *為annoymous, *= 即匿名不可存取
# 設定儲存庫訪問權限,語法:[儲存庫:專案路徑]

[ProjectName:/]
@developer=rw #可讀寫
@art=r #僅可讀取

存檔.

以上步驟皆完成後, 現在便來重開Apache, 更新設定吧.

最重要的時刻來了, 我們連到 http://localhost/svn/myCode
如果SVN成功的話, 將會出現 Revision 0:/ 的畫面


如果不成功的話...可能就要檢查:
1. svn的資料夾的共用設定
2. 在httpd.conf設置讀入模組那4行程式的順序
3. 環境參數中是否有Subversion的路徑

再不行的話, 我也不知道了...再砍掉重練吧

2010年4月4日 星期日

架端web server不能連結至localhost的問題

之前在windows vista上架了一個Apache2.2 http server.
剛架設完後, 當然是很興奮地開啟 http://localhost
來測試一下有沒有出現"It works!"的畫面呀

因為再之前也有架過, 即使在httpd.conf設置後路徑前, 大概至少也看得到it works吧
但我錯了, 事情絕非單純

我開始http://localhost後
IE竟然是顯示404 page not found的頁面
這代表連不到這一頁.


於是便進行了以下測試

  1. 確認Apache monitor有否正常啟動apache server, 亮綠燈 (綠燈呀! 但如果是紅燈但restart後也一直不能正常運作, 可能就要重灌一次apache了, 因為可能灌的時候某些程序出錯了)
  2. 檢查Apache目錄裏htdocs裏是否有index.html (有的, 所以應該是路徑設定有問題)
  3. 再檢查conf裏的httpd.conf,檢查一下各種Directory跟root的路徑有沒有跟真實檔案位置不一樣,這有可能是因為在案裝過程中打錯了路徑或甚麼的(都正確呀,見鬼了@@)
  4. 然後再檢查防火牆跟防毒的設定,確定沒有因為中毒或奇怪地被設定把自己的IP位址給封鎖掉...orz(都好好的呀...)

真是百思不得其解,但後來發生
我打自己的IP(http://140.xxx.xxx.xxx)卻是成功的出現It works!
所以如果跟我遇到同樣的情況,上面檢查的第1,2,3點,應該都不用進行了
基本上應該是localhost這個遮罩沒有對應到本機的IP

後來我去請教高手
高手請我輸入 http://127.0.0.1/ 試試看
結果真的成功,証明應該是跟Apache的設定沒關係
然後高手判斷這應該是localhost沒對應到本機IP的問題

他告訴我開啟
windows/system32/drivers/etc/hosts 這個檔案
然後加上一行
127.0.0.1 localhost
意即把IP對應到後面的host name

儲存後我再開啟 http://localhost/

It works了耶!! 太感動了QQ
雖然我也不知道為甚麼我電腦原本的設定沒有把127.0.01跟localhost對應起來
不過以後再遇到這種不能開localhost的情況, 大概就可以試這些方法吧.

2010年1月11日 星期一

安裝使用wiiusej


wiiusej是一個可以供java讀取wiimote事件的JAVA API
使用wiiusej這個套件, 可以讀到wiimote中各種訊號
如x, y, z各軸的加速度, 轉動量、按了哪顆鍵等
joystick的資訊也可以抓得到

此套件還實作了一個詳細的UI來讓使用者看到各種訊號的變化

而且撰寫者還加入了一個可以支援guitor hero3三介面

wiiuseJ的快速使用教學

1) import wiiusej.jar in your java project.

2) put the 2 dlls files libWiiUseJ.dll and wiiuse.dll at the root of your project (or the two .so files if you are under linux).Connect your wiimote to your bluetooth stack.

3) In your code : Wiimote[] wiimotes = WiiUseApiManager.getWiimotes(X, true);//x is the number of wiimotes to connect. True : make it rumble the first time you get the wiimotes.

4) Make a class (MyListener) implementing the WiimoteListener interface.

5) wiimote[0].addWiiMoteEventListeners(new MyListener());//register my class as a listener of the first wiimote.

===> MyListener will receive events from the wiimotes is registered on.


wiiuseJ的官網

2009年10月17日 星期六

在Eclipse上安裝SVN

1. Help -> Software update -> Find and Install

2. select the item "Search for new features to install", press next

3. press button "New Remote Site".

4. Name: SubEclipse
URL: http://subclipse.tigris.org/update_1.6.x
 press OK

2009年8月29日 星期六

我的研究方向 - 在互動敘事環境中攝影機的動態規畫

整個系統分為三個部份:

1. 互動敘事部份,建立描述腳本的script語言,

主要是一個可以用來清楚描述一個故事應包函故事的元件(who, where, what, when),

把人物與事件的關連,用動作來連結起來,以表達其目的或者會加上所謂的人物情緒和情節的波動值

2. script analyizing

把script中的元素解讀出來,從中建構對攝影學(cinematographics)有幫助的資訊如主角是誰,

主場景在哪,主角的動作是哪種類型其實就是攝影師的工作這部份就是最難的地方,

因為根本就很難找到劇本跟攝影技術可以完全對應的規則所以或者先了解攝影學中的一些規本技法如兩人對話的過肩拍(over soulder shot)表達主角觀看一物件的主觀鏡頭先歸納出一些是有規律的法則,

再採用適當的Camera idiom

3. camera path planning

有了analyizing的結果後,便知道要使用哪種camera idiom來針對特定的場景然後就開始在環境中開始進行planning找出最有適當的拍攝位置當然也要解決occlusion的問題,希望camera model可以很輕易地建立在強哥的研究之上...= =

---------------------------------------------------------------------

最富動態及最有趣的地方是在於供提使用者一個含有既定故事情節,但可以選擇其發展順序的敘事架構然後按照事件發展的順序不同,使發展中的流程和故事張力有所差異或許同樣的事件但在不同的順位會引起不同的效果,從而影響拍攝的手法現在大概就是這個樣子了。

Powered By Blogger

Label Cloud

2009 (1) 不能連localhost (1) 內嵌音訊 (1) 求職 (1) 面試 (1) 音樂 (1) 動畫師 (1) 帳號管理 (1) 排程 (1) 畢展 (1) 創意市集 (1) 惡意程式 (1) 電腦動畫 (1) 權限管理 (1) adobe (1) android (4) animation (1) animator (1) apache (3) art (5) art taipei 2008 (1) audio (2) bbs (1) birthday (1) black and white (1) browser (2) career (2) certification (1) cgw (1) cinematography (1) code (3) Collie (1) color (2) command (16) competition (1) computer science (3) connection (1) cover (1) crafyJS (1) creative (1) CSS (1) DBN (2) design (7) developer (1) display (1) drawing (1) eclipse (3) embed (1) engine (1) EntityJS (1) exception (1) exhibition (1) flower (1) frame (1) freebsd (11) french (1) friends (3) function (1) game (1) google (2) graphic (3) html (2) HTML5 (1) https (1) illustrator (1) image processing (1) interactive storytelling (1) internet (3) interview (1) introduce (1) ip (1) japan (1) java (4) javascript (3) JIT (1) jmonkey (1) job (1) jquery (1) LAMP (1) LimeJS (1) linux (8) liquid galaxy (1) ListView (1) localhost (1) log (1) mail (1) marquee (1) midi (1) mime-type (1) mis (1) MIT (2) mo-cap (1) mobile (1) Modernizr (1) motion capture (1) movie (1) music (3) narrative (2) NCCU (3) news (1) note (10) originality (1) otaku (1) painting (4) performance (1) photography (2) photoshop (7) php (1) player modelling (1) poster (1) postfix (1) programming (5) QuarkJS (1) resource (1) schema (1) scroll (1) self aware (1) semantic (1) server (1) share (1) sketch (2) software (4) solve (2) Sonivox (1) speaking (1) ssl (1) SSLPeerUnverifiedException (1) streaming (1) Subversion (1) sunspider (1) SVN (3) svn server (1) system (1) taipei (1) test (1) tfam (1) tool (1) TortoiseSVN (1) tutor (1) ubuntu (3) update (1) uri (1) video (1) vim (1) w3c (1) wap wcss css css2.0 (1) web (8) WebGL (1) webkit (2) well-form (1) wiimote (1) wiiusej (1) workshop (1) xhtml (1) xml (2)