2011年8月21日 星期日

Liquid Galaxy

http://code.google.com/p/liquid-galaxy/

昨天在coscup2011看到這個計劃的介紹
Demo影片說明了這個計劃在做些甚麼事情


介紹的人,說liquid Galaxy主要就是用了
Google Earth和WebGL
讓google earth可以在web上面流暢地檢視3D的場景
同時透過同步多台電腦,設定誰是master,誰是slave
就做到這樣子的類似電視場的效果

以我的理解,基本上他就是做了一個可以同步化多台畫面
省了支援多顯的顯卡

但就是...幾個螢幕就要幾台電腦的樣子

蠻有趣的,而且聽介紹者說,要自己安裝設定也不難
只要透過修改google earth裡的driver.ini檔就可以了

可惜我沒有這麼多台電腦呀....

2011年5月6日 星期五

[jquery] 網頁內嵌音訊檔

最近接的兩個case中,一個要在網頁裏放影片,一個要在網頁裏放影片加音樂

翻了一下一些網路上的jquery liberary,也試了好幾個,不過不知道是我沒有翻到他們的API還是我太弱不知道怎麼用,好幾個都只是很簡單播放功能而已

因為我那兩個的case是某研究的實驗問卷性質,,所以都需要限制使用者的瀏覽行為
像是一定要看完影片或是聽完音樂才能按下一步,又或是要看播了網頁上的「我已看完說明」的按鈕就馬上開始播放音樂,諸如此類的...

音樂播放的話,我個人會推薦 jplayer
它是一個適用於html5 和Flash的jquery liberary

我推薦它的原因有幾個

  • 官網上的說明蠻詳細的,有很多教學的範例
  • 它可以控制影音的功能夠齊全,最基本的播放、停止、暫停,然後比較進階的像是從幾秒開始播放、重覆播放、靜音等等
  • 有齊全的event事件可以抓取, 只要設定特定事件的listener, 便可作很多控制了!
  • player interface有豐富的css module可供使用,都在官網上面可以找到


在這來個簡單的範例好了

首先要把jquery.jplayer.min.js載下來,嵌到你的網頁裏,'js/'是我自己放javascript的目錄
要是想要用遠端檔案的話也是可以。

當然...jquery.js是必要的,不過我懶得貼上來了

然後,最簡單的嵌進一個音樂mp3檔


至於UI方面的話, 因為我還沒有需要用到, 所以也沒有特別去看
便大概應該就是設定一些CSS屬性而已
有需要的人可以去官網裡, 有教學

至於影音方面,比較遺憾的是他只支援 .m4v 跟 .ogv 檔

下次再來介紹一次有甚麼好用的video player liberary

2010年11月28日 星期日

Bonjour! 法文筆記 (1)

今天終於去實現去學法文的第一步了

去了台灣法國文法協會學初級法文

課堂上都用全法文授課

老師叫做 Thierry, 感覺就是一個法國人, 然後很浪漫的會一邊上課

一邊哼歌, 然後慢慢地優雅地擦掉白板上的字


今天雖然第一次上課, 但還是一口氣就上了三小時, 中間有兩次十分鐘的休息時間
而且教得不少耶, 一到十, 簡單問候, 字母A~N, 一些簡單的名詞


~A跟B兩人簡單對話~

A: Bonjour. 嗨
B: Bonjour. 嗨

A: Ça va? 你好嗎? (Ç, 這個有尾巴的c是一個像s的氣聲)
B: Ca va. 不錯

A: Je m'appelle Thierry, et vous ? 我叫Thierry, 你呢?
B: Je m'appelle Zen. 我叫Zen.

A: J 'habite à Paris, et vous ? 我住在Paris, 你呢?
B: J 'habite à Marseille. 我住在Marseille.

A: Au revoir 再見!
B: Au revoir! 再見!

就是很莫名的問完住哪裏然後就say goodbye了....XD


~字母~
A B C D E F G H I J K L M N
其中,
A, H, K→ 聲母為[a]
B, C, D, G→[e]
E→[ɜ]
F→好像跟英文唸法一樣
L, M, N → 跟本來英文差不多, 但最尾會有個[Lɜ]音, L唸起來就像Ella

~名詞~ 法文的物件會分陽性跟陰性, 所以量詞也有差別
陽性
Un sac 背包
Un tableau 畫板,黑板
Un stylo 筆
Un livre 書
Un garçon 男生

※Un 是陽性量詞, 一個

陰性
Une radio 收音機
Une télévision 電視
Une chaise 椅子
Une table 桌子
Une fille 女生

※Une就是陰的一個囉~

Qu' est-ce que c'est? 這是甚麼?
C'est un stylo 是一支筆呀


~數字~

0 zéro
1 un
2 deux
3 trois
4 quatre
5 cinq
6 six
7 sept
8 huit
9 neuf
10 dix


還教了幾個聲母consonnes, 感覺跟英文的聲母唸法差不多
b d f k, l m n


老師最後下課叫我們回去要自己先複習, 要寫一篇, 這樣才記得

總括來說
蠻有趣的, 雖然一開始先教的不是聲母韻母
而是簡單的對話, 然後讓我們跟隔壁的同學互相練習
這樣學起來比較有親切感.

現在每天都聽法文歌好了!


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的官網
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)