2008年12月11日木曜日

Function.apply と Function.call

applyは_parentよりましかな、というなにか。他の人に処理のカーソルを渡したい、みたいな。
スコープの人(そのfunctionをメンバとして持つ人)、呼び出すタイミング、実際の処理をそれぞれ別々に書ける。
好きなタイミングで
(実際の処理を定義してあるfunctionオブジェクト).apply(スコープの人, パラメータ);
ってすればいい。

applyもそうだけど、callメソッドも変わってる!
自分のメンバ変数にあるクラスで、そのクラスの中で新しいメソッドを定義したくても手が出せないとき、
なんかに良さそう。
extendsできないときとか?そんな時ってあるの?

com.xfactorstudio.xml.xpath

For more info about this library:
http://osflash.org/xpath4as2

http://www.trick7.com/blog/2006/09/28-092340.php

・サンプルを動かしてみた
サンプル用のクラスを作ってBaseクラスから呼んでみたところ、
XMLの読み込みがBaseクラスの処理と別スレッドで進むことがわかった。
ので、XMLから読み込んだ値を渡す処理はXML.onLoadの中で書く必要がある。

Flash 素敵サイト

Flash関連ウォッチするのに良さそう。
http://www.link-log.net/archives/flashactionscri/

2008年12月10日水曜日

mx.xpath.XPathAPI

・AS2でコンパイルしてみる
まあ、使えます。

・Flash Lite3.0でコンパイルしてみる
使えるが、制限が適用される場合があります、ってのは、どんな場合なんだ。
・以下、標準出力
FTPS033: loadVariables(SampleLEDControl.xml) の呼び出しが見つかりました。制限が適用される場合があります。
file://C:UsersMinako_KuboDocumentsLEDControlSampleLEDControl€81210SampleLEDControl.xml に接続中です。
file://C:UsersMinako_KuboDocumentsLEDControlSampleLEDControl€81210SampleLEDControl.xml からデータをロードしました。
file://C:UsersMinako_KuboDocumentsLEDControlSampleLEDControl€81210SampleLEDControl.xml の要求は終了しました。
窓側
・属性の文字列を数字と文字と混ぜるとアクセスできない
など

・同じ名前のタグが続いても大丈夫


など

・属性の値をとってくる
(XML文書)

<room name="'9F">
<folder name="'海側'"></folder></room>

のような場合、
(AS2コード)
var nList:Array;
var XPathString:String ="/room/*";
nList = XPathAPI.selectNodeList(this.firstChild, XPathString);
for( var i = 0; i < nList.length ; i++ ){
var idNum = nList[i].attributes.name;
trace([idNum, typeof(idNum)]);
}

とすれば、
(標準出力)
海側,string
町側,string
ファシリティスペース,string

と返ってくる。

http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=6326&forum=6&post_id=32372


なお、「adobeが提供しているものはxpathをほとんど実装していない」のでxfactorstudioの方がおすすめらしいです。実際スクリプトぱっと見た感じ、属性値とってくるのもxfactorstudioのが楽そう。

2種類のXPath on Flash

1)com.xfactorstudio.xml.xpathと
参考:http://www.trick7.com/blog/2006/09/28-092340.php

2)mx.xpath.XPathAPIとある
参考:http://itpro.nikkeibp.co.jp/article/COLUMN/20061130/254416/
(リファレンスは特に見つからず。。)


・flash拡張版はimportするだけじゃだめだからちょっと面倒、
xfactorstudio版はimportするだけでいいから楽、というのがググってみた結果。
http://blog.cellfusion.jp/as20/
http://www.anycreative.net/itoh/2006/09/

ActionScript2.0 OOPに初トライ 【2008.12.04】

・前日からの問題が解決
やっぱりスコープのミスだった。
チュートリアルも読んだので、今後はカスタムクラス内でのスコープの問題でそう困ることはなくなりそう。
・落ち着いてやってみると、実はなんとなく知っていた知識の範疇で問題が解決できた。

・なんだかASファイルのクラスの中でムービークリップを生成すると、
それへの参照を持っている配列が上書きされてしまう。その配列をstatic宣言しているわけでもないのに。。
生成するのはフレームアクションで行って、それをクラスに渡す、というやり方がマストという感じ。
・でなければ、リンケージやObject.registerClassメソッドを使うか。
しかしこの2つの動作を調べて良いものを選択する、というのはとりあえず今はキャパオーバーなので、
やめておきます。

ActionScript2.0 OOPに初トライ 【2008.12.03】

・AS2の復習(AS2でオブジェクト指向らしくコーディングしたことがないので)
http://www.adobe.com/jp/devnet/flash/articles/actionscript_guide.html

・AS2でオブジェクト指向するときは、大元のmainメソッドのある場所(コントローラ)はどう配置すればいいんだろう。
今のところやっぱり1フレーム目に書くような作法しか見つからない。

・ASファイルからステージ上のインスタンスを参照する方法が分からず苦戦。

flash lite on Sony mylo

ステージサイズは720*480位がいいかも。
フォントはデバイスフォントにしておくのが一番きれいらしい。

HTML+CSS on Sony mylo

・myloはHTMLをおくと勝手に縮小表示してくれる
・myloはCSSファイルの読み込みに時間がかかる
 CSSはHTMLの中に入れる形にすれば問題ない。

2008年10月8日水曜日

CISCO社見学

1.Unified Solutionについて
・自分たちの製品をまず自分たちが使う
-->働き方を変える
-->その経験をお客様に伝える営業スタイル
(CISCO on CISCOという事例集をたくさんWEBに載せて、営業にも使っている)
・テレワークの推進

2.CISCO社員の一日(ビデオ)

3.社内見学
・テレプレゼンスルーム
UIデザインは非常にしっかりしている。米国本社にデザインチーム。
映像・音声の圧縮技術がものすごい。
値段も高いがエクスペリエンスもすごい、という売り方。営業力に自信があるからか。
・Infillを利用したフロア
弊社より使い方がうまい。新川4Fもこれくらいかっこよくするべきなのでは。

org.apache.commons.validator

GenericValidatorクラスにいろんなvalidationをしてくれるメソッドがある。
http://www.jajakarta.org/commons/validator-1.0.2/ja/withPrimary/org/apache/commons/validator/package-summary.html#doc.Usage
・org.apache.commons.collections
・org.apache.commons.digester
・org.apache.commons.logging
のダウンロード&インストール
・XMLパーサはjavax.xml.parsers.SAXParserがJ2EEに入ってる
・サンプル
http://634.ayumu-baby.com/commons/oss_jakartacommons_validator_sample.html
・ValidatorResourcesInitializer
サンプルにあるValidatorResourcesInitializerクラスが、最新リリースの1.3.1にない。
1.1.4まで遡ったらようやくあった。
とはいえ、ValidatorResourcesInitializerは非推奨になっているみたいだったので、
英文のJavadocみて、1.3.1を用いてやってみる。

バリデートルールのXMLのデプロイ場所、DTDのありかが不明でかなり手間取った。
デプロイ場所は参照元のクラスと同じパッケージの中。
DTDは以下に発見した。
http://commons.apache.org/dtds/
あと、設定XMLファイルのサンプルがなく、書き方が不明な点が多い。
他にもいくつか引っかかったが、それらは比較的簡単に解決できる。
全体に資料が非常に少ない(日本語はもちろん、英語のドキュメントもない)ため、
ひとつひとつのステップを確認しながらとなった。
基本的にStrutsの中にあるものに近いようだ。

正規表現がマッチしない。。。

JSPとheadタグ, CSS

・やっぱりJSPは入れ子にしても最終的にきれいなHTMLが生成されるべきらしい。
・それと、CSSが複数あって、それらにまたがるdivがあったりときは、idで指定するんじゃなくてクラスで指定しておいた方がいいみたいだ。

JNDI(Java Naming and Directory Interface)

http://www.javaroad.jp/opensource/js_tomcat8.htm
http://www.thinkit.co.jp/cert/article/0708/2/9/3.htm
環境に依存する(かつアプリケーション内で共通して使用する)情報をアプリケーション上で一元的に管理する
個々の「.jsp」「.java」ファイルにいちいち接続情報を記述する必要はなくなる
・server.xmlの設定
・Tomcat web.xmlの設定
http://www.thinkit.co.jp/cert/article/0708/2/9/3.htm
・web.xmlの

このあたりの設定をしようとすると、Tomcatの勉強をそれなりにしないといけなくなる・・・
もうちょっと実装してから勉強したいなあ。
http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/jndi-datasource-examples-howto.html
http://commons.jakarta.jp/dbcp.html

DBUtils

http://www.atmarkit.co.jp/fjava/javatips/101java013.html
Connection、Statement、ResultSetの代わりになる。
close()を毎回書く&例外時にも書く、のをしなくてよくなる

2008年10月7日火曜日

あいまい検索

・preparedStatementのsqlのパラメータ部分を、
LIKE '%?%' → ps.setString(1, keyword) とするとうまく行かない。
?がシングルクオートで囲まれてるのがよくないようだ。
LIKE ? → ps.setString(1, "%" + key + "%")とすればOK.

beanをコレクションに入れて渡す

・スクリプトレットでアクセス
<%ProductBean p = (ProductBean)a.get(0);
String name = p.getName();
%>
<%=name%>
・ELでアクセス
${a[0].name}
・JSPの中でbeanの扱いが楽みたいなのは、jsp:usebeanタグとbeanのマジックパワーのおかげなのかと思ったけど、がんばっているのはむしろELみたいだ。

普通のaタグのリクエストをPOSTで送る方法が分からない。。

さっぱり分からなかったので、とりあえずGETにしておいてみる。
もしくはHTTPリクエストのヘッダか何かで、遷移元のページがどうにかして分かればよかったんだけど・・・。

Iteratorは、Collectionのiterator.

でもインデックスを指定する役割はない。

2008年10月2日木曜日

DAOの中にロジックが入ってきてしまう

どのようなSQLを発行するかはビジネスに依存するのだから、はっきりと切り分けにくいのは本質的に仕方ない。
インタフェース(引数、戻り値)が安定していればよい?
あまりDAOを純粋にすることにこだわりすぎても、逆に大変になってしまう(デザインパターンの意味がない)。

DAOパターン

sqlはどこに書くべき??
結論としてはやっぱりDAOの中がいい。
最近ではDataAccessMethodパターンというのがあるらしい。
http://codezine.jp/article/detail/349?p=1

例を書くときはexample.com

http://ja.wikipedia.org/wiki/Example.com

JSTL(coreライブラリ)入門

使わなくても実装はできるけれど、せっかくの研修の機会なので、coreライブラリくらいは試してみることにした。
http://www.javaroad.jp/opensource/js_taglibs2.htm
・taglibs
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
のuriが、たいていの解説Webに載っているのは
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
になっている。
しかし、JSTL1.0から1.1になってディレクトリが変わったらしく、そのままだと
「TLD又はタグファイル中のattribute指示子に従って属性valueはどんな式も受け付けません」
というエラーが出てコンパイルできない。
以前同じ問題にはまった香川さんに教えてもらって解決。

2008年10月1日水曜日

JavaBeans

使いこなせるようになるのは今回は難しそう。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html
まずはあまりJavaBeansのことは考えずに実装を進めてみる。
そのうち自分自身の理解のキャパシティに余裕ができたら、Beansに突っ込んでいってみたらいいかもしれない。

header部の条件分岐

ユーザ名、権限はsessionにしまっておくとして、他にはどんな条件があるのかな?
それぞれ、どこにパラメータしまっといたらいいのかな。
session, request, , ...

認証処理の流れ

・servletは値を受け取って認証処理するクラスに渡す
・認証処理クラスはDAOにbean返させる、認証チェック、servletに可否を渡す
・servletは結果次第でそれぞれのJSPにforward
・成功用JSPはuseBean?
てゆう流れのがいいのかな。ロジックとコントローラと分けた感じだ。

【ログインしているかしていないか&ユーザ権限の種類】の状態保持

ログインしたら->sessionにしまっておく
ログアウトしたら->sessionの属性変更(削除)

・とりあえずsessionに。
>>この辺りまでどうにか。
・権限別にJSP表示
・ログインできなかったとき
・(このあたりでServletが大変なことになってきたら下記処理)

insert したらそのレコードのidを返してほしい

returning
postgresとoracleでは使える
(香川さん情報)

Filter

sessionやrequestからgetAttribute
何か処理
(基本的にservletでしてる前処理)
必要なら条件分岐でデフォルトとは別のページ(エラーページなど)へforward
chain.doFilter(req, res);
(次のfilterがあれば移動、もうなければもともとのアクセス先(servlet)へ)
(チェーンの順番はweb.xmlで指定。)

ServletからJSPにBeanを渡す。

・BeanのクラスはJSPのpageディレクティブのimport属性でimportする必要がある。
なので、Beanは無名パッケージではなく、何かしら名前のあるパッケージに入れる必要がある。
このとき、Servletはそのパッケージに入れると使えなくなるので入れない。
Servletの最初でそのパッケージをimportする。
・request.setAttribute("u", u)の属性名とのオブジェクトIDはそろえる。
・Beanは、sessionとかrequestに乗っていれば、JSPがincludeタグで入れ子になっていても、JSP間で渡す処理をする必要はない。
Beanが必要なJSPでuseBeanタグを書けばいい。

JSP表示

・forwardするとき、ServletContextは通しても通さなくてもいい。
通す必要が今回出てくるのかは分からないけれど。ロギングしないし。
・getRequestDispatcher()の引数は、"/ファイル名"でいいっぽい。
"/WebContent/ファイル名"だとうまくいかなかった。。

2008年9月30日火曜日

SQL関連組み込みクラスの利用

使えそうなパッケージ
【java.sql】
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/jdbc/getstart/preparedstatement.html
http://www.atmarkit.co.jp/fjava/rensai/jdbc04/jdbc04_1.html
・preparedStatementとstoredProcedure
preparedStatement:Javaに処理をためておく。
preparedStatementやコネクションをクローズしたらもう同じSQL文は使えないみたい。
storedProcedure:DBに処理をためておく。Javaからは外部の関数みたいな感じで呼べる。
システム全体で使いまわしたいならstoredProcedure使ったほうが楽になるかもしれない。変更の手間は大きくなってしまうけれど。

【javax.sql】
RowSetが使える。
Rowset:ResultSetと同等のデータベース・カーソル機能を持つJavaBeansコンポーネント。
http://www.atmarkit.co.jp/fjava/kaisetsu/j2eewatch06/j2eewatch06.html
今回のことだけを見れば、使うメリットはあまり無いように思う。
JavaBeansをきっちり理解したい、極めたいという目的ならやる価値はありそう。

・とりあえずSQLをDAOへ
・DAO内でPreparedStatement
sql文の?のところでは’とか”とか気にしなくていい。

beanのプロパティが埋まったことをlistenした方がいいんだろうか?

基本的にシングルスレッドと考えていいので大丈夫、かもしれない。

postgreSQL

7.テーブル作成
AmaterasERDでDDLをエクスポート、psql内部コマンド\iでインポートした。
8.\iコマンドがなぜかeclipseで作成したSQLファイルに対しては使えない
Permissionがないらしい。
ファイルのパーミッションを変えればOK.
9.CSVをCOPYでインポートする
・postgres(スーパーユーザ)じゃないとCOPYコマンドが使えない。
・ディレクトリの区切りは\じゃなくて/。''で囲むのを忘れないように。
・普通にCOPYしようとするとserialの扱いで引っかかる。
csvファイルだとすべて文字列として扱われてしまって、空の文字列になってしまう。
少しずるいけど解決策。
http://www.hoge256.net/2008/08/179.html

DBUtils

http://www.atmarkit.co.jp/fjava/javatips/101java013.html

Beans

・DBの連携について
特に何か特別なことがあるようではないらしい。
・Beanであるための条件
既出の2つ以外には特にないようだ。

JUnitとCVS

3.JUnit
・単体テスト向けのフレームワーク
JUnitには、テスト処理のための便利なメソッド、管理機能が用意されている。
単体で使用することもできますが、多くの統合開発環境(IDE)と連携することもできる。
・今回はあまり使うチャンスがない気がする。。
4.CVS(Concurrent Versions System)
・バージョン管理ソフト
・こちらも今回使う機会があるのかどうか。。

WARとは

WARファイルはWebアプリケーションに必要なHTML、JSP、classなどのファイルを一まとまりにまとめたもので、主にWebアプリをアプリケーションサーバに配置する際に使用します。WARファイルをアプリケーションサーバの所定の位置に配置することで(Tomcatの場合は、$CATALINA_HOME\webapps)、WARファイルが自動展開され、Webアプリを実行可能な状態にすることができます。
http://www.javaroad.jp/opensource/js_eclipse6.htm

2008年9月29日月曜日

JavaBeans, EJB

・JavaBeans: ローカル環境で動くBean
EJB(Enterprise JavaBeans):リモート環境で動くBeanの2種類
http://www.atmarkit.co.jp/fjava/rensai/smartj01/smartj01_0.html
・Beanがどのように使われるか、処理の流れ
http://www.atmarkit.co.jp/fjava/rensai/smartj01/smartj01_1.html
・何のために?
プログラムの生産性や使い勝手のよいシステムができるといわれている。
・はじめてのJavaBeans
http://www.javaroad.jp/servletjsp/sj_beans1.htm
・基本的に、主な処理は全部Beanの中にある。
アクセッサ以外にもいろいろなメソッドがあるなら、それはentityクラスではなくなるのでは?
それとも、処理をするBeanとentityクラスとは分けるべきなのか?
・entityクラス、としてはエンティティBeanというのもある
EJBの1種。
・今回は
同じBeanにエンティティの機能と主な処理の機能と、両方入れる形ではじめてみる。
もし、途中で分けたほうがいい、となったら分ければいい。

CEATEC JAPAN 2008

10月8日(土)

http://www.ceatec.com/2008/ja/

クラス図について

・多重度の書き方がよく分からない。。
インスタンスでどうなっているかを意識して書く。
(外部設計の段階でも、オブジェクト指向言語、というくらいは技術のことを考える必要がある)
ER図と外部設計のクラス図は同じではない。

・関連するクラスは属性には書かないらしいが、書かないと混乱しそう。
分かりにくければ書くべき。
分かりきっていれば省略してもOK。

入力制限

HTMLでの入力制限はまずはすべき。
JavaScriptでもすべきではある。
JavaScript--入力したものは、OKだったら送信する。

・どの程度すべきなのか?
調べてみたら?
無印:50字以内、記号は通す。
IKEA:文字数制限なし、記号も通す

eclipseの使い方

・どんな種類のプロジェクトにするかが重要
http://www.atmarkit.co.jp/fjava/rensai3/eclipse31_02/eclipse31_02_1.html
・同じファイルを2つのエディタで開くことができる。大きなファイルを編集しているときに便利。
・[コードの断片]の実行
ちょっとコードを試したいときに便利。
・関連するクラスへの移動
コンテキストメニューからメソッドの実行部分→宣言部分など、ジャンプできる。

WTP

「Eclipseを用いたJavaサーバサイドアプリケーション開発環境の大本命」
WST(Web Standard Tools) + JST(J2EE Standard Tools)
http://www.atmarkit.co.jp/fjava/rensai3/eclipse31_03/eclipse31_03_1.html
・WTP 0.7.xでは、日本語Windows環境でも既定の文字コードがWindows-31JではなくShift_JISになってしまう
パッチフラグメントがあるようだけれど、今回はとりあえずインストールしないで進める。
(WTPのバージョンが分からないし、Shift-JISでもいいのでは?)

2008年9月26日金曜日

JSP pageディレクティブのerrorPage属性

設定しなければ、デフォルトのエラーページを出してくれる。
とりあえず、実装時にはデフォルトページにさせておくのがよい気がする。
運用時には、何か作ったほうが、ユーザに変なもの見せなくてすむのでよいかも。

JSPの文字コード

とりあえずShift-JISにしておく。
・どうしてUTF-8じゃだめなのか
・JSP, Servlet, Tomcat, postgreSQLの文字コードの仕組み
について、理解できれば得るものは大きいと思う。
とはいえ、今日は上記調べた内容でいっぱいいっぱいなので、
実装時に引っかかったら、その時にきちんと勉強することにします。

<jsp:include>について

・<jsp:include page="ファイル" flush="true | false"/>のflush属性について。
インクルードするコンテンツを読み込む前に、存在する任意のバッファーをフラッシュするかどうかを指示。
フラッシュが重要な問題になることはあまりない。
http://www.ibm.com/developerworks/jp/java/library/j-jsp04293/index.html
・includeされる方のファイルも、単独で成立している必要がある。
(単独でコンパイルされるから)
http://www.javadrive.jp/servlet/jsp_action/index4.html
CSSもきちんと適用されている必要がある。

Servlet+JSP+JavaBeansの復習

まずは教科書(http://www.javaroad.jp/servletjsp/index.html)を読んでみる。
・init()、destroy()はどういう使い方をするんだろう?
・スコープにはrequest, session, applicationの3つがある。どれも使うことになりそうだが、使い分け、必要なシーンについては把握できていない。
sessionはクライアント単位、applicationはアプリケーション全体の単位で、複数のサーブレットをまたぐことができる、という意味ではどちらも同じ、という解釈でいいのかな?
・web.xmlに初期パラメータを書いておけるみたい。ハードコーディングしなくてよくなる♪
・WebアプリケーションでのJavaBeansの役割
は、MVC2(JavaのWebアプリ)のモデル部、ということでいいらしい。

JSPタグライブラリ

・カスタムタグ
http://www.javaroad.jp/servletjsp/sj_jsp13.htm
http://www.hellohiro.com/customtag.htm
JSPで繰り返し行う処理、見た目が複雑になりそうな処理をJavaで別途書いておく感じ。
http://www.itmedia.co.jp/enterprise/0307/24/epn23.html
今回使うとしたらカスタムタグだが、設計段階でそこまでフォローできる自信はまったくない。
・JSTL (Java Standard Tag Library)
式の評価、繰り返し、条件分岐、日付や数値のフォーマットなどができる。
http://www.fk.urban.ne.jp/home/kishida/kouza/kishou/jspjstl.html
JSPだけでプログラムを作りたい状況には必須のよう。
・Taglibs
Jakarta製。JSTLは、この一部のよう。
JSPカスタムタグを用いて、結果として出力されるHTMLを自由自在に操りたい、という場合には、非常に有用そう。

DreamWeaverでJSPを作成する要領をよくしたい。

http://www.atmarkit.co.jp/ad/adobe/adobe0610/01.html
DreamWeaverの機能をほとんど使いこなせていない。
Webアプリケーション作成、JSP作成に役立つ部分だけでも少しは学びたい。

Jude

論理設計のビューと物理設計のビューが切り替えられない。
もう一枚クラス図を描こうとしたが、
モデルのステレオタイプをエンティティにしておいたら、モデルをドラッグ&ドロップしても属性や操作が見られない・・・。
仕方ないので、画像としてだけ保存して、後はそのまま作り変えてしまうことにした。
Judeは、Javaのスケルトンクラスを作成してくれるのは便利だが、この点では不便だ。
もっといいツールはないのだろうか。

ユーティリティクラス

Utilsクラスについては、JakartaCommonsがよいらしい。
http://www.nulab.co.jp/designPatterns/designPatterns4/designPatterns4-1.html
http://commons.apache.org/components.html
今回使えそうなものには、DBCP, DBUtils, Validatorがある。

JSP設計

・何度も出てくる部分は別ファイルに分けることにする。

  

http://www.javaroad.jp/servletjsp/sj_jsp4.htm
で変数を渡して実行・表示できるみたいなので。
(includeディレクティブと似ているので、間違えないように。)
・経理担当者、店員のページについては、
どの程度、ページに含まれる要素をまとめるのが適切なのか、
よくつかめない。

filterについて

http://www.ibm.com/developerworks/jp/java/library/j-pj2ee10/index.html#IDA00M0B
・認証もできる
http://www.stackasterisk.jp/tech/java/filterAuth01_01.jsp
・URLのリライトもできる
http://journal.mycom.co.jp/articles/2007/05/21/urlrrewrite/menu.html
クラス作ってから、最後にまとめたほうがいいのかな?
現状で、ぱっと使えそう、という感じなのは、
・ユーザ認証
・(セッション管理)
・文字コード管理
の3つくらい。
とはいえ、自分で機能を一から作れるので、これ以外にも何かあったら使えばよいと思う。
・複数のページに一気にフィルタをかけるには
http://www.sk-jp.com/java/servlet/webxml.html#h22
・web.xmlリファレンス
http://www.sk-jp.com/java/servlet/webxml.html

2008年9月22日月曜日

日経産業新聞

Casio EX-FH20
1秒40コマ連射。8万円台。小型。
いいかも。重さによる。
http://dc.casio.jp/product/exilim/ex_fh20/