2007-12-04

File upload with ajax (form base async)

使用ajax傳送檔案回去server, 找了一下ajax 相關的東西, 發現只能用form 的上把資料傳回去.
這一次的研究希望能夠做到 google mail 那樣的單檔上傳的功能.所以, 預計要達到的目的是, html page 不用重新由server 端產生, 並且可以回傳上傳檔案的相關資料.

client code
















server code

FileUploadParser parser = new FileUploadParser("big5", -1);

Model model = parser.parse(request);
Model fields = (Model)model.get("FormValues");
Model files = (Model)model.get("Files");
Object[] filenames = files.getKeys();

ArrayModel f = new ArrayModel();
for(int i=0;i {
SimpleModel m = new SimpleModel();
m.set("FileName",filenames[i]);

FileItem item = (FileItem)files.get(filenames[i]);
m.set("FileSize",String.valueOf(item.getSize()));

File file = new File(");
try
{
item.write(file);
item.delete();
}
catch (Exception e)
{
e.printStackTrace();
}
f.add(m);
}
model.set("Files",f);
response.setContentType("text/html");
response.getWriter().write(model.toJSON() );

2007-11-11

PDF-XCHANGE VIEWER

用了好久的 adobe pdf reader, 發現他已經越來越大了, 打開一個pdf file 要好久了. 後來想要一個比較方便用的 pdf reader, 看到其他有人在討論另一個 pdf reader.

pdf x-change viewer 算是一個還可以用的reader, 暫時把他紀錄下來.

2007-11-06

UFT-8 on Web

最近, 開發網頁被要求採用UTF-8 編碼方式, 不再像以前可以直接使用big5的方式了.
但是, 編碼這種東西就是很傷腦經, ?何全世界不快一點統一電腦裡面的編碼. 不要在這樣搞程式設計師了.
下面是自己試過的幾個作法, 做一個紀錄來保存.
開發環境:
1. Tomcat 5.0
2. Java 1.4 5.0
3. notepad++ , pspad, UltraEdit

1. 用ultraedit 編輯 ansi 格式的html
只有在檔案前面加註, <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
失敗, 這樣的作法 並沒有產生正確的作法
2. 用 notepad++ 編輯 utf8 的 html
只有在檔案前面加註, <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
成功, 這樣會正確的顯示中文.
3. 用 notepad++ 編輯 utf8 的 jsp
失敗, 這樣產生還是亂碼.
4. 用 notepad++ 編輯 utf8 的 jsp
並在檔案前面加註, <%@ page language="java" pageEncoding="UTF-8"%>
成功, 正確顯示中文

上面的案例看起來, html 一定要用 utf-8 方式去編輯檔案, 存檔成utf-8 的檔案, 才有機會做到正確的編碼. 如果要改用jsp編碼, 就一定要在每一個檔案前面加註 pageEncoding.
再去研究jsp 被編輯成 java 以後, 會有讀取文字編碼的問題. 其他文件中說到, 可以藉由修改tomcat JAVA_OPTS -Dfile.encoding=UTF-8 來達到目的. 但是我試驗過了失敗, 這部份要在研究才行.

參考資料:
  1. UTF-8 字符處理在 Web 開發中的應用
  2. JSP/Servlet 中的漢字編碼問題
  3. Tomcat/UTF-8

2007-09-12

Investment English

Accrued interest應得利息
All-Ordinaries Index所有普通股指數
Arbitrage套戥
Ask Price買價
Asset-Backed Securities具資產保證的證券
At-the-money剛到價
Automatic Order Matching And Execution System自動對盤及成交系統
Basis Point基點
Bear Markets熊市
Bid Price賣價
Bid-ask Spread買賣差價
Blue Chips藍籌股
Bond債券
Book Value賬面值
Broker經紀
Brokerage Fee經紀佣金
Bull Markets牛市
Call Option好倉期權/買入(認購)期權
Callable Bonds可贖回債券
Capital Gain資本增值
Capital Markets資本市場
Central Clearing and Settlement System中央結算系統
Central Money Market Units債務工具中央結算系統
Certificate of Deposits存款證
Closed-end閉端基金
Collateral抵押品
Commercial Paper商業票據
Common Stock普通股
Compound Interest復息
* Contract Note成交單
Controlling Shareholder控制股東
Convertible Bond可換股債券
Corporate Bond公司債券
Coupon票息
Coupon Frequency派息次數
Coupon Rate票面息率
Covered warrants備兌認股權證
Credit Rating信用評級
Currency Board貨幣發行局
Current Yield現價息率
Custody of Securities證券託管
Default Risk不能收回本金的風險
Derivative Call衍生認購(認沽)認股權證
Derivative Instrument衍生產品
Direct Business直接成交
Discount Bond折扣債券
Diversification分散風險
Duration期限
Earnings收益
Earnings per Share每股盈利
Earnings Yield盈利率
Equity股本
Equity Call Warrants股本認購認股權證
Ex-dividend除息
Face Value/ Nominal Value面值
Fixed Rate Bonds定息債券
Fixed-income securities定息證券
Floating Rate Bonds浮息債券
Fundamental Analysis基本分析
Future Value未來值
Future Value of an Annuity定期供款之未來值
Futures contract期貨合約
Hedge對沖
Income收入
Index Fund指數基金
Initial Public Offering首次公開招股
Inside Information內幕消息
Insider Trading內幕交易
Intrinsic Value內在價值
Investment投資
Investment Adviser投資顧問
IPO price首次公開招股價
Junk Bond垃圾債券
Leverage Ratio槓桿比率
Limit Order限價指示
Limited Company有限公司
Liquidity變現能力
Listing掛牌
Listing Date上市日期
Margin Call補倉
Market Capitalisation市價總值
Market Maker莊家
Market Order市場指示
Money Market貨幣市場
Mutual Fund互惠基金
Net Asset Value資產淨值
Offer For Sale公開發售
Offer For Subscription公開認購
Open Offer公開供股
Open-end開放基金
Option期權
Oversubscribed超額認購
Par Bond平價債券
Par Value票面值
Perpetual Bonds永久債券
Placing配售
Portfolio投資組合
Preference Shares優先股
Premium溢價(認股證)
Premium Bond溢價債券
Present Value現時值
Present Value of An Annuity定期供款之現時值
Price/Earnings Ratio市盈率
Privatisation私有化
Professional Conduct Regulations專業操守規例
Prospectus招股書
Put Option淡倉期權/賣出(認沽)期權
Rate of Return收期率
Real Interest Rate實質利率
Red Chip紅籌股
Redemption Value贖回價值
Reinvestment Value再投資利率
Relative Strength Index/RSI相對強弱指數
Repurchase Agreement回購協議
Resistance Level阻力價位
Return回報
Rights Issue供股發行
Risk-Averse, Risk-Neutral, Risk-Taking風險厭惡,風險中立,追求風險
Securities And Futures Commission證券及期貨事務監察委員會
Securities Dealers Representatives證券交易商
SEHK聯交所
Senior Bond優先債券
*Settlement結算
Short Hedge空頭對沖
Short Position空倉
Short Selling拋空/沽空
Speculation投機
Stock Splits股票分拆
Subordinated Bond後償債券
Substantial Shareholder大股東
Support Level支持價位
Technical Analysis技術分析
The Stock Exchange of Hong Kong Ltd.香港聯合交易所有限公司
Time Horizon投資期
Trading Hours of SEHK聯合交易所的交易時間
Trading Rules交易規則
Trust Deed信託契約
Underlying Security認股權證相關的股份
Unified Exchange Compensation Fund Scheme聯合交易所賠償基金
Valuation估價
Warrant認股權證
Window Dressing粉飾櫥窗
Yield盈利率
Yield To Maturity到期孳息率
Zero Coupon Bond無息債券

參考資料
1. 投資英語詞彙翻譯

2007-09-09

Apache with SSL 設定篇

設定apache ssl 主要工作有下面:
1. 產生 SSL keys files.
2. 設定 apache conf with ssl.

1. 產生SSL keys files.
如果有公開的信任網站的認證檔, 就可以直接使用. 如果像我沒有的就自己產生. 先建立一個目錄存放ssl files.

cd ${Apache_conf}
mkdir ssl
cd ssl
openssl genrsa -out server.key 1024
openssl rsa -in server.key -out server.pem
openssl req -new -key server.pem -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt


2. 設定 apache conf with ssl.
a. 修改 /etc/apache2/modules.d/41_mod_ssl.default-vhost.conf

SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

b. 修改 /etc/conf.d/apache2
add
"-D SSL -D SSL_DEFAULT_VHOST" to APACHE2_OPTS


參考資料

1. Apache Modules mod ssl - Gentoo Linux wiki

2007-08-29

X61 ED2

為了要開發一些東西,還要配合老婆可以在家上網, 所以挑一個以前就很喜歡的X系列的notebook.
這一款式沒有藍芽沒有內建OS的版本, 但是電池是8 cells 比台灣其他的X61 多4 cells. 用起來真的可以撐的比較久說.
價格: $39500 NTD. (原價要40000, 不過我不要袋子所以少500)
廠商: 小高黑店







2007-08-04

adidas black shoe

好久沒有打球了, 最近跟同事報名參加三對三籃球. 所以 就去買一雙球鞋摟.

價格: $1500 NTD
商店: 新竹愛買 adidas 專賣店.









2007-07-24

Jant Note : JSON encode and decode

描述:
用ajax + json 方式來當作web app 的資料傳遞的架構已經一陣子了. 但是, 一直有一個問題會產生, 那就是特殊字碼跟換行的資料輸出. 首先講到特殊字碼, 一般在http request 裡頭 ? % / 這三個會是一個很大的傳輸問題. 另一個就是, 如果傳輸的資料裡頭有換行, 從client 傳到 server 不會有問題, 但是當資料要由 server 傳回 client ,換行會導致 javascript 在 eval 成 object 有錯誤.

思考:

希望能有一個client 和 server 統一的解法不用針對每一個應用作個別加解密. client再傳送資料的時候可以針對HTTP Request 特殊字碼作編碼, server 在產生JSON String 可以作標準編碼.

解法:
HTTP Request 特殊字碼
找了一下 JavaScript 的文件, 裡頭已經有encodeURI, encodeURIComponent,escape 三種的function來做 http request encode. encodeURI 是針對要傳送的 url , 所以不能自己放string 下去encode, encodeURIComponent 放入一個String 會自己作encode. escape 沒有試過. 所以, 找到的解法就是 使用ajax 傳輸前, 把要傳送資料作encodeURLCompoent 再傳出去就可以了. server 端使用 tomcat 所以, tomcat 會自己做解譯後端程式不用作相對應處理.
JSONString
先前使用自己寫的JSONString function, 裡頭只能應付簡單的字元. 後來去找到 json.org的lib. 使用裡面的JSONObject.quote 來做資料的轉換, 就可以正確的解出資料傳送到client, 換行符號就可以備正常的解譯了.

2007-06-27

Java Note : Base64 encode and decode

最近用Ajax做系統, 比過去處理網頁的東西方便多了. 但是後續衍生的問題也出來, 就是當傳輸的資料包涵Enter時, 會出一些小問題. 尤其是在server端將資料用json 方式傳回到client端後, 用一般的json object 去解的時候, 會產生錯誤.
想到的方法就是在server端將資料作base64編碼, client 收到資料後再做解碼. 要用到這樣的技術,就必須完成 client and server 端的 Base64 encode and decode. 所以, 找了一個 Java 的 Base64 解法, 另外也有人將 Base64 用javascript 寫好了function.
1. apache commons codec
2. Base64.js

2007-06-20

竹北第一次遇到同好

在竹北騎了一年多的strida, 終於讓我遇到同號了. 很可惜只是聊一下天,沒有進一步的溝通. 下依次遇到一定要跟他要聯絡方式.

2007-06-06

Jant Note : FTPFileReader

說明:
在做資料傳遞的系統, 需要用到 FTP 到某一個site 去抓取特定的檔案回來做處理. 爲了省去這樣的code, 寫了一個 FTPFileReader Command. 只要給予參數就可以抓到單一檔案回來local.
如果ftp 過程中發生錯誤, 不會有任何的錯誤訊息. RemoteFile 不存在的話, 會在local 存放一個空的檔案.
使用:

Model =
{
"FTPSite":"${FTPSite}", // ftp site domain name or ip
"Account":"${Account}", // ftp account
"Password":"${Password}", // acount password
"Chdir":"${Chdir}", // change dir path, refer to ftp login root
"RemoteFile":"${RemoteFile}", // ftp site file name
"LocalFile":"${LocalFile}" // local path file name
}

new FTPFileReader().execute(Model);

2007-06-05

Linkstation 改機 2007-06-05

今天拿到leo 下載的 linkstation 1.61 improved EM telnet 版本.
1. 把該檔案解開放在一個目錄裡面.
2. 執行 HD-HGLAN FWUpdate.exe
3. 執行後會建議你關掉window 防火牆. (一定要關掉不然會出甚麼事情,不知道)
4. 開始更新, 更新完後會有訊息.
5. 執行telnet, 就可以 直接進入 linkstation console model.

裝完了上面的版本, 才發現他沒有一些工具軟體.
所以,就安裝了 openlink-0.51b 版本. 不過update 程式會檢查相關的version, 都會顯示不需要再更新韌體. 所以, 是了好多方式, 最後用欺騙的方式, 就是在openlink解開的目錄裡面有一個linkstation_version.txt 把裡面的,VERSION=1.61改成這樣就可以更新韌體, 更新後linkstation裡面的韌體編號還是1.45. 結論就是, linkstation_version.txt 是安裝參考用的.

2007-05-29

LinkStation HD-H160LAN

在家裡架的網站, 是用一般的PC 下去做的, 算一算也是蠻耗電的.
從網站上看到有一款KuroBox可以改來作為BT client 用,也可以改來當作一般的server. 聽說耗電量只有11W, 就想買壹台來改. 可是台灣買不到, 只有同樣的機器只是不好拆裝硬碟跟改機的機器, LinkStation. 就買了一台來試試看摟.
開機照摟
正面


斜側面


背面


底面保固貼紙

2007-05-28

林強 交心單曲

最近看到林強出了一款單曲 交心, 爲了一個公益活動做的單曲. 林強當年做了向前行的歌曲發表時,這是我高中時期, 裡頭的歌曲真的道出了我當時的心境. 當年離家到台北唸高中, 聽到這一條歌真是寫的太棒了. 幾年後, 林強就沒有再出自己的專輯了, 好像是轉到幕後去當製作了. 有點可惜, 他那台灣話的歌實在是很好聽. 下面就是這一個公益活動的推廣網站.

2007-05-19

IDEF 20070519

自己買了新房子以後, 就只有冬天的大棉被. 現在天氣開始熱了, 繼續蓋大棉被也不是辦法.
趁著在台中閑晃的時候, 買了一件涼被. 在台中衣蝶買的, 雖然力霸出了事情,不過看起來衣蝶因該可以再撐一陣子巴.
開箱照
包裝袋


收藏袋


夏天薄被

2007-04-29

Gibson Cool Fan 16 inch

天氣慢慢熱了, 但是還沒到開冷氣的時候. 就只好用電風扇來消熱摟. 逛了愛買, 看到在促銷的電風扇, 這一款是比較便宜的機種, 看起來CP 值因該會很高. 跟老婆商量以後, 想說買太貴的萬一明年壞了就很浪費, 就選一個 可以接受的價格摟. Gibson 這一款看起來就是, 價格可以接受功能可以接受. $399 因該很划算.
開箱照
外箱


所有零組件

2007-04-23

MJ-E180VX

搬到竹北以後, 不知道是因為大樓的關係還是竹北的地緣關係? 家裡覺得很潮濕, 還長了一些黴菌. 就上網找找看有沒有除濕機的推薦, 在Mobile01 爬了好幾天, 看上了幾款, 另外同事也推薦後, 決定買這一款MJ-E180VX.
接著就到拍賣網去看看有沒有人在賣, 怪怪還真的有比外面一般的便宜3000元, 就直接給他下單買摟.

按照慣例 來個 開箱照.
外箱


打開


正面


右側面


背面


左側面


標籤說明


操控面板

2007-04-11

Jant Note : PathController 說明

說明:
在一般的網頁中, url 是相對路徑所以在網頁中最原始的方式就是要能記住相關的目錄. 如果透過副檔名的方式來連結相對應的網頁, 會是在網頁內部寫作一個方便的功能.
PathController 就是透過 URL最後的副檔名來 dispatcher HTTP , 現在有用到的應用就是在網頁的URL傳送與 Ajax 的應用.

使用:
在web.xml 中做下面的設定.
參數
  • Path -> server 上面的路徑.
  • FilterExt -> URL 上最後的 副檔名.
  • ForwardExt -> server上真正的副檔名.
  • Encoding -> 針對request 做字元編碼的動作.
For webpage redirector


ViewPathController
com.jant.web.PathController

Path
/view/


FilterExt
.view


ForwardExt
.jsp


Encoding
UTF-8



ViewPathController
*.view



For ajax request redirector


ServicePathController
com.jant.web.PathController

Path
/service/


FilterExt
.service


ForwardExt
.jsp


Encoding
UTF-8



ServicePathController
*.service




在webpage 中如果同一個網頁, 可以直接使用 test.view來做網頁的更換.
Ajax 可以直接呼叫 test.service 來做資料的傳遞.

Jant Note : CharacterEncodingFilter 說明

說明:
tomcat 5.0 以後對於 request 送過來的編碼有了不同的處理方式, 爲了讓 Post method 的編碼可以正確的被編輯, 利用這一個Filter 將所有傳送過來的request 作統一的編碼動作, 不需要在程式中撰寫相關的編碼動作.

使用:
在web.xml 中 放入下面描述.


CharacterEncoding
com.jant.web.CharacterEncodingFilter

encoding
Big5



CharacterEncoding
/*


encoding 參數要放編碼的代號 : Big5, UFT-8, .....

利用Fon觀念建立一個FonPhone

最近收到了FON router, 已經把它裝起來了. 啟動的機制也很簡單, 讓我可以到其他地方去上網(台灣好像還沒有很盛行). 以前到世貿中心發現有無線網路可以連接, 但是就是不能上網因為要付費. 有了FON我就可以到處去玩了.
最近一個新聞提到, NCC要求各家電信公司降低她們的基地台. 這樣因該會引響到一些人的收訊吧, 我的亞太最近就很不穩, 大概公司要倒了. 如果, 有一家電信公司可以利用FON這樣的觀念推出一個FON phone的觀念, 來補足3G基地台的不足. 提供一個叫做個人化無線網路固網觀念. 簡單的說, 推出手機的網路電話, 藉由FON這樣的分享機制來打電話, 每一個分享無線網路頻寬的用戶就都會是一個基地台.
基於上面的觀念, 替中華電信想了一個方案就叫做CHTFONPhone project. 首先, 將所有中華電信的ADSL modem 改裝成CHTFON, 讓願意分享自己頻寬的ADSL用戶換上這樣的Modem. 然後, 跟ADSL用戶打合約, 看有多少採用CHTFon 的流量從他這邊流出去, 看是怎樣去計算金錢. 接下來發行無線的FonPhone, 強調網內互打不用錢, 配給070 或者真正的大哥大門號. 只要FonPhone用戶可以接收到CHTFon可以通電話, 但是只能是固定地點的撥話方式因為換基地台就會斷線. 再近一步, 改善一般的大哥大手機, 改為大哥大與FonPhone手機並存.
第二步進軍公司, 替每一家公司管理她們的電話總機系統. 就是透過CHTFon, 讓公司不用在建立自己的電話系統. 學校系統一樣利用CHTFon, 建立學校內部的電話系統.

2007-04-10

Java Note : Form Encode for Tomcat 5

最近想要把運作中的 Tomcat 4.1 換成 Tomcat 5.0 在測試的環境中一換過去, 發生了編碼轉換上面的問題. 原本在4.1 中可以正常輸入中文到Server端, 但是5.0中卻發生亂碼的問題. 解決 Tomcat 5.0.19 中文參數傳遞問題這一篇的討論中, 說明了 5.0 在處理 Reuqest QueryString 的編碼的差異性. 其中比較大的差異性在5.0 將QueryString 拿出來編碼, 如果沒有特別指定編碼的話就會以ISO-8859-1來編碼.
總結文章裡面的說法, 寫了一個簡單的測試網站來做實驗. 歸納下來解題的重點主要是放在兩個地方, 一個是 URL 裡面的編碼, 另一個是在request 的內容編碼.
首先, 在一般的HTML Form 裡頭傳送資料的方式有 Get and Post. Get 主要是將要傳送的資料附加在URL後面(Example: http://www.google.com/search?Key=ABC). Post 則是將要傳送的資料附加在Request 最後面的一個地方. 在5.0預先的編碼方式就是用ISO-8859-1, 如果你在取資料的時候沒有特別註明編碼, 就會得到ISO-8859-1的編碼資料. 所以, 最簡單的解決方式就是 request.setCharacterEncoding("Big5"), 但是在5.0裡面這樣只是用在Post的方式, Get的會因為QueryString被分開處理, 所以並不能正確的轉換到正確的編碼. 所以要解決Get 的編碼問題, 就必須動到URIEncode, 讓server將收到的request URL 做相對的編碼, 整個解法就是圍繞在這裡.

解法:
1. Get Method : 運用URIEncoding來解決, 由server針對URL 預先編碼.
2. Post Method : 運用 request.setCharacterEncoding 來對request 內容編碼.

實驗內容:
1. 只使用 request.setCharacterEncoding 是否就可以解決問題?
2. 只使用 URIEncoding 是否就可以解決問題?
3. request.setCharacterEncoding and URIEncoding 並用來解決問題?

實驗設計:
1. 只用 request.setCharacterEncoding 觀察 Get and Post.
2. 只用 URIEncoding 觀察 Get and Post.
3. request.setCharacterEncoding and URIEncoding 觀察 Get and Post.
4. 運用 SetCharacterEncoding Filter 省去 request.setCharacterEncoding.

實驗結果:
1. 沒有在server.xml 加入 URIEncoding Tag, 在 .jsp 中加入 request.setCharacterEncoding .
a. Get : Normal 亂碼, String.encode 正常.
b. Post : Normal 正常, String.encode 亂碼.
2. 在server.xml 加入 URIEncoding Tag, 在 .jsp 中加入 request.setCharacterEncoding.
a. Get : Normal 正常, String.encode 亂碼
b. Post : Normal 正常, String encode 亂碼

3. 在web.xml 裡頭 加入SetCharacterEncoding Filter.
結果與 實驗二相同.

結論:
1. 針對Post 的採用 CharacterEncoding, 建議加在Filiter裡頭.
2. 針對Get 才用URIencoding 方式, 可以免除在程式中做轉碼動作.

設定 URIEncoding 範例: 找到Tomcat\conf\server.xml 裡頭 Connector 的tag 加入 URIEncoding="${EncodeCode}"

minSpareThreads="25" maxSpareThreads="75" maxThreads="150" maxPostSize="0" URIEncoding="Big5">



設定 SetCharacterEncoding Filter 範例: 找到Tomcat\webapps\${site}\WEB_INF\web.xml 加入.


SetCharacterEncoding
filters.SetCharacterEncodingFilter

encoding
Big5



SetCharacterEncoding
/*

2007-04-02

Jant Note : ResourceFileter 說明

說明 :
運用J2EE 在 Web container 可以新增Filter 的功能, 用路徑來區分不同的檔案需求. 藉由/resource/ 開頭的request 來省略網頁上相對路徑的維護.

使用:
在web.xml 中 放入下面的description


ResourceFilter
com.jant.web.ResourceFilter


ResourceFilter
/resource/*


在 web page 中呼叫相關的檔案

<link href='resource/jant.css' rel='stylesheet' type='text/css' />
<script src="resource/com.jant.Test.js" language="JavaScript" type="text/javascript"></script>

com.jant.Test.js 是放在 WEB-INF/classes/com/jant/Test.js

改版計劃:
目前的ResourceFilter並沒有辦法正確的傳回二位元檔案如圖檔, 下一版的計畫將讀取檔案的方式改為可讀二進位檔.

2007-03-21

W850i

上禮拜買了K800i, 這禮拜換幫老婆買一支W805i. 是一支MP3手機, 購買的時候已經有贈送1G的記憶卡了, 不過裝了幾首歌以後發現, 1G 還真是太少了.
下面就是 W850i的開機照.
正面


右側面


上側面


左側面


下側面


背面


滑蓋打開摟


K800i and W850i


疊疊樂

2007-03-16

HTML Note : Canvas Tag 簡介

這一篇JavaScript Ray-Tracing裡頭提到用到一個新的HTML:TAG Canvas, 可以在網頁上面多一個畫布的功能. 其中有一個Mozilla Developer CenterCanvas tutorial有詳細說明如何運用JavaScript 畫出你想要的東西. 不過目前為止, 我手上有FireFox 1.5 和 IE 6.0, 只有FireFox 支援. 詳細有哪些瀏覽器有支援就要看一下裡面的內容.

Canvas 主要提供一些簡單的繪圖功能, 另外可以將img放進Canvas 中作為一個元件使用.

2007-03-14

K800i 開箱照

2007-03-14
到新竹中央路 vibo 直營門市買了這一支 SE K800i, 花了我12000元. 不過, 換來一支手機和189元的65個月的月租費. 月租費可以抵通話費跟上網費, 算是可以啦 .
下面就是 我的K800i 開箱照.

盒子裡面所有的主配件

K800i 跟盒子

右側面


正面


上側面

左側面

下側面

T610i and K800i 下側面

疊疊樂

疊疊樂

疊疊樂

疊疊樂