Dec 26, 2005
[Misc] 2005 年のまとめ
あと数日で 2005 年も終わり。 というわけで、2005 年に話題になったトピックの中で個人的に興味深かったものをまとめてみた。 Web 系アプリケーション開発(特に Java)に関係するものが中心。
2005 年のトピック TOP5
- 個人情報保護 & 情報漏洩
- Web サービス
- Ajax
- Web2.0
- 新しい開発用ツール
個人情報保護法 & 情報漏洩
個人的には個人情報保護法関連が一番インパクトが大きかった。
困るのは、個人情報保護が従来のセキュリティ(XSS 脆弱性対策、セッションライディング対策、SQL Injection対策)とは異なるレイヤーに属していること。
セキュリティを今までよりも高いレイヤーで取り扱う必要が出てきた。
これは意外と大変なことになる気がする。後々、色々と。
個人情報保護法が施行されてから、個人情報の取り扱いが劇的に変わった。
さて、個別のシステムではこの動きにどう対応していく必要があるのか。
今後の大きな課題。
後は、Winny絡みの個人情報 & 機密情報の漏洩。
原発、警察、保険会社など色々なところからありえない様な情報が何度も漏洩した。
システム開発とは関係ないけれど、技術者の端くれとしては色々と考えさせられた。
- 個人情報の保護に関する法律の概要
- http://www5.cao.go.jp/seikatsu/kojin/gaiyou/index.html
- 個人情報の保護に関する法律(平成一五年五月三十日法律第五十七号)
- http://www5.cao.go.jp/seikatsu/kojin/houritsu/index.html
- 個人情報保護法の解説
- http://www5.cao.go.jp/seikatsu/kojin/kaisetsu/index.html
- Google 先生による情報漏えい事例集
- http://www.google.com/search?q=%2B%E6%83%85%E5%A0%B1+%2B%28%E6%BC%8F%E3%81%88%E3%81%84+OR+%E6%B5%81%E5%87%BA%29+%2BWinny
Web サービス
Web サービスが一気に面白くなってきた気がする。 WSDL、UDDI、SOAP云々の技術話ではなく、Google Maps、del.icio.us API 等々。 それなりにサービスが揃ってきたので、色々と工夫のしがいが出てきた感じがする。
- http://www.google.com/apis/
- Yahoo!
- http://developer.yahoo.co.jp/search/
- Technorati
- http://www.technorati.com/developers/
- del.icio.us
- http://del.icio.us/help/api/
- はてな
- http://www.hatena.ne.jp/info/webservices
- Bidders
- http://blog.dena.ne.jp/bws/
- Flicker
- http://flickr.com/services/api/
Ajax
Ajax が大きな流れになった。 リッチクライアントを駆逐するかとも思えるくらいの勢いになってきたので少々驚いている感じ。 個人的には、お遊びで使うにはいいけれど・・・という感想。 どうも Ajax は HTML 4.01 に対する付け焼刃な気がする。 HTML 5 で部分更新だの何だのを規格に取り込んでほしい。 HTML 5 は策定されないのだろうか??
新しい開発用ツール
Eclipse 3.1系、3.2系、Maven 2 が大きかった。 後は Continuum などの Maven 関連ツール。 開発環境に欲しい機能は十分以上にフリーで揃うようになった。 Maven2 辺りは思い通りにカスタマイズできるレベルまで遊び倒しておきたい。
Web2.0
2005 年の Buzz Word 大賞か。 単なるビジネス話だと感じるので、とりあえずは多少追いかけておけば良いかな、という感じ。
- What Is Web 2.0
- http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
- Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(前編)
- http://japan.cnet.com/column/web20/story/0,2000054679,20090039,00.htm
その他 & 総括
- ハードウェア系は縮小路線な感じがした。とりあえずは一段落なのだろうか??
- OS も静かだった。個人的には Debian Sarge のリリースだけだった。
- サービス系が元気だった。Mixi、Google 各種サービス、Amazon なか見検索、iTunes等々。
私の 2005 年はそんな一年だった。
Dec 20, 2005
[Misc] GeoURL にチャレンジ
GeoURL とは
GeoURL は、地理情報とサイトを連携するサービス。 GeoURL にサイトを登録すると、そのサイトの "地理的に" 近いサイトが分かる。 余り意味があるとも思えないが、ご近所さんのサイトが分かるということがメリットなのだろうか。 面白そうなので試してみた。
- GeoURL
- http://geourl.org/
- GeoURL - サイトの追加方法
- http://geourl.org/add.html
GeoURL にサイトを登録
-
位置情報を決定する
まずは、登録する位置情報を決定する。どういう方法でも良いが、緯度と経度が必要。ここでは Google Map を利用する。
Google Map にアクセスして、適当に場所を選択する。場所が決まったら、「このページへのリンク」というリンクの URL を見る。 "http://maps.google.com/maps?ll=35.665865,139.893090&spn=0.006252,0.005015&hl=ja" の様な URL になっているはず。 この中で、"ll=35.665865,139.893090" の部分が緯度と経度の情報になるのでメモしておく。 -
サイトに情報を埋め込む
HTML の HEAD ブロックに以下の様な META タグを埋め込む。
ICBM の値は Google Map でメモした値そのままで良い。但し、桁数が違うので、小数以下を 5 桁にする。 DC.title の値はサイトの名前を指定する。<meta name="ICBM" content="35.66586, 139.89309"> <meta name="DC.title" content="in-vitro.jp">
-
GeoURL へ PING を打つ
GeoURL - PINGでサイトの URL を入力して PING!! -
ご近所さんを確認
PING を打つと http://geourl.org/near?p=[サイトの URL] でご近所さんが分かるようになる。
Dec 18, 2005
[WebService] del.icio.us API にチャレンジ
del.icio.us API とは
ソーシャル・ブックマークサービスの del.icio.us が公開している API。 ブックマークの登録、削除などの操作ができる。 方式は Yahoo! 同様 REST を採用している。
- del.icio.us
- http://del.icio.us/
- del.icio.us - Reference
- http://del.icio.us/help/api/
試してみる
試してみた。
- 最初に del.icio.us トップ から del.icio.us のアカウント登録を行う。
- リクエスト用の URL を作成する。
- 早速リクエストを送ってみる。リクエスト URL 実行時に BASIC 認証によるログインが要求されるので 1 で登録したアカウントで認証を行う。
ブックマークの登録
- http://del.icio.us/api/posts/add?url=http://www.in-vitro.jp/blog/index.cgi/index.rss&description=in-vitro.jp
-
<?xml version='1.0' standalone='yes'?> <result code="done" />
ブックマークの取得
- http://del.icio.us/api/posts/get?
-
<?xml version='1.0' standalone='yes'?> <posts dt="2005-12-16" tag="" user="invitro.jp"> <post href="http://www.in-vitro.jp/blog/index.cgi/index.rss" description="in-vitro.jp" hash="e885a76a691ce90ff1626c1bd5c41a26" others="1" tag="system:unfiled" time="2005-12-17T14:44:59Z" /> </posts>
ブックマーク先 URL の取得指示
- http://del.icio.us/api/posts/update
-
<?xml version='1.0' standalone='yes'?> <update time="2005-12-17T14:54:38Z" />
ブックマークの削除
- http://del.icio.us/api/posts/delete?url=http://www.in-vitro.jp/blog/index.cgi/index.rss
-
<?xml version='1.0' standalone='yes'?> <result code="done" />
del.icio.us 呼び出し用 HTML
Google Web APIs (beta) にチャレンジ で使用した HTML を BASIC 認証に対応させて使用した。
<html>
<head>
<script>
<!--
var req;
function sendRequest() {
var url = document.myform.url.value;
var param = document.myform.request.value;
var username = document.myform.username.value;
var password = document.myform.password.value;
req = prepareXMLHttpRequest();
if (req == null) {
alert('XMLHttpRequest is not supported');
return;
}
var encodedParam = '';
var splitParam = param.split('&');
for(i = 0; i < splitParam.length; i++) {
var tmp = splitParam[i].split('=');
encodedParam += '&' + encodeURIComponent(tmp[0]) + '=' + encodeURIComponent(tmp[1]);
}
req.onreadystatechange = showResponse;
if(username != null && password != null) {
req.open("POST", url, true, username, password);
} else {
req.open("POST", url, true);
}
req.setRequestHeader("Content-Type" , "text/xml");
req.send(encodedParam);
}
function showResponse() {
if (req.readyState == 4) {
if (req.status == 200) {
document.myform.response.value = req.responseText;
} else {
document.myform.response.value = 'FAILURE!! ' + req.status + ':' + req.statusText;
}
}
}
function prepareXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
//-->
</script>
</head>
<body>
<form name="myform">
<input type="button" value="POST!!" onclick="sendRequest();"><br>
<br>
URL: <input type="text" name="url" size="100"> <span style="font-size: xx-small;">[REQUIRED]</span><br>
USERNAME: <input type="text" name="username" size="30"> <span style="font-size: xx-small;">[OPTIONAL]</span><br>
PASSWORD: <input type="text" name="password" size="30"> <span style="font-size: xx-small;">[OPTIONAL]</span><br>
<br>
REQUEST: <span style="font-size: xx-small;">[OPTIONAL]</span><br>
<textarea name="request" cols="100" rows="25"></textarea><br>
<br>
RESPONSE:<br>
<textarea name="response" cols="100" rows="25"></textarea>
</form>
</body>
</html>
Dec 17, 2005
[WebService] Yahoo! 検索 Web サービスにチャレンジ
Yahoo! 検索 Web サービスとは
Yahoo! が公開している検索用 API。 Google は SOAP を採用しているが、それに対し Yahoo! は REST(HTTP リクエストに対して XML レスポンスが返される) を採用している。 Yahoo! が SOAP ではなく REST を採用した理由は、「なぜYahoo! JAPAN WebサービスはRESTを使用しているのですか? 」に記載されている。 対応しているサービスは、ウェブ検索、画像検索、動画検索。
- Yahoo! 検索 Web サービス
- http://developer.yahoo.co.jp/search/
- Yahoo! 検索 Web サービス - Reference
- http://developer.yahoo.co.jp/search/web/V1/webSearch.html
試してみる
試してみた。 リクエストの送信に使用した HTML は Google Web APIs (beta) にチャレンジ で使用したものと同じ。
- 最初に アプリケーション ID の登録 を行う。登録には Yahoo! ID が必要。
- リクエスト用の URL を作成する。クエリに 1 で取得したアプリケーション ID を指定する必要がある。例) "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=[アプリケーションID]&query=Yahoo%20Web%20Search"
- 早速リクエストを送ってみる。2 で作成した URL を呼び出す。
Dec 16, 2005
[WebService] Google Web APIs (beta) にチャレンジ
Google Web APIs (beta) とは
Google が公開している Webサービス用の API。 Google に SOAP でリクエストを送ると、SOAP レスポンスで処理結果が帰ってくる。 対応しているサービスは、キャッシュの取得、検索、スペルチェック。
- Google Web APIs (beta)
- http://www.google.com/apis/
- Google Web APIs (beta) - Reference
- http://www.google.com/apis/reference.html
- License
- http://www.google.com/apis/api_terms.html
試してみる
試してみた。 Google Web APIs の呼び出し方は色々あるが、とりあえず今回は直接 POST でリクエストを送り込むことにする。 POST の送信に使用した HTML は↓に添付する。
- 最初に Google Web APIs license key の取得 を行う。
- リクエスト用の SOAP メッセージを作成する。メッセージには 1 で取得したライセンスキーを埋め込む必要がある。Google Web APIs Developer's Kit をダウンロードするとサンプルの SOAP メッセージが入っているので、それを参考にするとラク。
- 早速リクエストを送ってみる。"http://api.google.com/search/beta2" に対して 2 で作成した SOAP メッセージを送信する。
Google Web APIs 呼び出し用 HTML
POST の送信には JavaScript を利用して ajax っぽく(笑)してみることに。
<html>
<head>
<script>
<!--
var req;
function sendRequest() {
var url = document.myform.url.value;
var param = document.myform.request.value;
req = prepareXMLHttpRequest();
if (req == null) {
alert('XMLHttpRequest is not supported');
return;
}
req.onreadystatechange = showResponse;
req.open("POST", url, true);
req.setRequestHeader("Content-Type" , "text/xml");
req.send(param);
}
function showResponse() {
if (req.readyState == 4) {
if (req.status == 200) {
document.myform.response.value = req.responseText;
} else {
document.myform.response.value = 'FAILURE!! ' + req.status + ':' + req.statusText;
}
}
}
function prepareXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
//-->
</script>
</head>
<body>
<form name="myform">
<input type="button" value="POST!!" onclick="sendRequest();"><br>
<br>
URL:<br>
<input type="text" name="url" size="100"><br>
<br>
REQUEST:<br>
<textarea name="request" cols="100" rows="25"></textarea><br>
<br>
RESPONSE:<br>
<textarea name="response" cols="100" rows="25"></textarea>
</form>
</body>
</html>
検索用 SOAP リクエスト(サンプル)
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:doGoogleSearch xmlns:ns1="urn:GoogleSearch"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<key xsi:type="xsd:string">[Google Web APIs license key]</key>
<q xsi:type="xsd:string">Google Web APIs</q>
<start xsi:type="xsd:int">0</start>
<maxResults xsi:type="xsd:int">10</maxResults>
<filter xsi:type="xsd:boolean">true</filter>
<restrict xsi:type="xsd:string"></restrict>
<safeSearch xsi:type="xsd:boolean">false</safeSearch>
<lr xsi:type="xsd:string"></lr>
<ie xsi:type="xsd:string">latin1</ie>
<oe xsi:type="xsd:string">latin1</oe>
</ns1:doGoogleSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Dec 15, 2005
[Misc] Unicode の取り扱いについて (3)
結局、Unicode を使う場合には
- 文字列を OS に渡すと JVM と異なる認識をすることがある。
- OS における Unicode のサポート状況により、OS 毎に挙動が異なる。
(しかも、OS の種類が同一でもインストール時のオプションによって差異が出ることがある)
というわけで、安全でない文字列をパスとして利用する場合はかなり様々な注意が必要となる。
HTML に Unicode 系の文字エンコーディングを指定している Web アプリケーションは要注意。
パスとして利用できる文字列は「半角英数字のみ」くらいの厳しい制約をかけておくのが無難だろう。
OS のシステムの文字エンコーディングが Unicode 系でない場合は、OS のシステムの文字エンコーディングで表現できる文字、くらいの縛りでも良いかもしれない。
「本来文字コードでフォレンジックに関係しそうな領域はそれほど広くないはずだが、実際には非常に深い世界で、変な深海魚のようなものが出てくる(笑)」と語り、今後この分野はさらに研究が必要であるとの見解を示して講演を終えた。
(http://pcweb.mycom.co.jp/articles/2005/11/07/blackhat/001.htmlより抜粋)
ということなので、判定を厳しくしておくに越したことはなさそう。
Dec 13, 2005
[Misc] Unicode の取り扱いについて (2)
昨日のコードを今度は Debian(Sarge) で動かしてみた。
実験環境
- Debian Sarge
- Java 1.5.0_05
実行結果
実験環境の Sarge はシステムの文字エンコーディングを EUC-JP でインストールしているので、当然のように Unicode 制御文字は '?' 扱いとなった。 結局何が言えるかというと、同じコードでも OS 毎に挙動が異なるということ。
Dec 12, 2005
[Misc] Unicode の取り扱いについて
ついでに以前読んで気になっていた Unicode 問題も試してみた。 ここでは、Unicode 制御文字や似通ったグリフを持つ文字を利用して「表示上」簡単に区別できない文字列を生成出来てしまうことが問題点として取り上げられている。
- Black Hat Japan 2005 - Unicode文字によるDirectory Traversal攻撃
- http://pcweb.mycom.co.jp/articles/2005/11/07/blackhat/
実験環境
- Windows XP Professional
- Java 1.5.0_05
サンプルコード
public static void main(final String[] args) {
File file0 = new File("dummy"); // "dummy"
File file1 = new File("dummy\ufeff"); // "dummy"の後に表示されない文字を付加
File file2 = new File("\u202eymmud\u202c"); // "ymmud"を逆に表示
System.out.println("" + file0.mkdirs());
System.out.println("" + file1.mkdirs());
System.out.println("" + file2.mkdirs());
}
実行結果
![[エクスプローラの表示]](/blog/entries/Misc/20051212_01/explorer_01.png)
エクスプローラでは全く見分けが付かない("dummy" に見える)ディレクトリが 3 つ作成された。
![[CMDの表示]](/blog/entries/Misc/20051212_01/cmd_01.png)
cmd で見ると違うディレクトリであることが分かる。
というわけで、簡単に利用者を欺くようなファイル/ディレクトリを生成できてしまった。 具体的にどういう被害が想定できるか思いつかないが、いたずらくらいは簡単に出来てしまいそう。
Dec 09, 2005
[Misc] File アクセス時における Unicode の取り扱いについて
遅ればせながら、産総研グリッド研究センター 高木浩光さんによる「安全なWebアプリ開発の鉄則2005」を読んだ。 その中に実は全く認識していなかった問題があったので、Java の環境で実際に起こり得るのか確かめてみた。 「安全なWebアプリ開発の鉄則」の 2005 年度版は Web 上で公開されていないようなので、↓は 2004 年度版へのリンク。 同様の記述は既に記載されている。
- 安全なWebアプリ開発の鉄則2004
- http://www.nic.ad.jp/ja/materials/iw/2004/proceedings/T5.pdf
実験内容
"c:\tmp\dummy.txt\u0000.html" というファイルを読み込んだ際に、ファイルシステム上で実際に読み込まれるのはどのファイルなのかをチェックする。 拡張子を String#endsWith でチェックして・・・というのはありがちな処理。 "c:\tmp\dummy.txt" が読み込まれてしまうと拡張子チェックをすり抜けてしまうことになるので、セキュリティホールの原因になる。
実験環境
- Windows XP Professional
- Java 1.5.0_05
- c:\tmp\dummy.txt を作成し "this file is c:\tmp\dummy.txt" と書き込んである
- c:\tmp には dummy.txt 以外のファイルは存在しない
サンプルコード
public static void main(final String[] args) throws IOException {
String fileName = "c:\\tmp\\dummy.txt\u0000.html";
File file = new File(fileName);
System.out.println("Exists: " + file.exists());
System.out.println("Absolute Path: " + file.getAbsolutePath());
System.out.println("ends with \".html\": " + file.getAbsolutePath().endsWith(".html"));
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader(fileName);
br = new BufferedReader(fr);
String line = null;
System.out.println();
while ((line = br.readLine()) != null) {
System.out.println("" + line);
}
} finally {
try {
if (br != null) {
br.close();
}
} finally {
if (fr != null) {
fr.close();
}
}
}
}
実行結果
Exists: true Absolute Path: c:\tmp\dummy.txt□.html ends with ".html": true this file is c:\tmp\dummy.txt
・・・というわけで
パスに '\u0000' が入ると、JVM と OS で認識するファイルが異なってしまうことが分かった。 ユーザ入力の文字列をパスの一部として利用するような場合は注意が必要となる。
それにしても、あっさりと自分の認識不足が露呈してしまったorz ファイル名をユーザー入力にする場合はかなり気をつけねば。
Dec 06, 2005
[Misc] Web アプリケーションのセキュリティに関する情報源をメモ
Web アプリケーションのセキュリティに関するリソースをリストアップ。 オンラインコンテンツだけでも結構な量なので、書籍はとりあえずパス。
リンク集
- セキュリティエンジニアリング
- http://www.ipa.go.jp/security/awareness/vendor/software.html
(無断リンク、ディープリンク禁止なのでリンクしない)
一般論 - 総合
- The World Wide Web Security FAQ
- http://www.w3.org/Security/Faq/001031wwwsfj.ja.sjis.html
- Web アプリケーションの脆弱性 トップ10 2004 Update
- http://prdownloads.sourceforge.net/owasp/OWASP_Top_Ten_2004_Japanese.pdf?download
- WEBセキュアプログラミング ~脆弱性を作らないWEBアプリ開発~
- http://www.soi.wide.ad.jp/class/20020036/slides/19/index_1.html
- インターネットセキュリティに関する RFC の日本語訳
- http://www.ipa.go.jp/security/rfc/RFC.html
- JNSAセキュアシステム開発ガイドライン 「Webシステム セキュリティ要求仕様(RFP)」編 β版
- http://www.jnsa.org/active/2005/active2005_1_4a.html
- ISO/IEC 15408 の翻訳文書
- http://www.ipa.go.jp/security/jisec/evalbs.html
- RFC 2109 - HTTP State Management Mechanism (4.2.2 に Cookie の secure 属性に関する記述)
- http://www.ietf.org/rfc/rfc2109.txt
一般論 - クロスサイトスクリプティング脆弱性
- Webサイトにおけるクロスサイト スクリプティング脆弱性に関する情報
- http://www.ipa.go.jp/security/ciadr/20011023css.html
- クロスサイトスクリプティング攻撃に対する電子商取引サイトの脆弱さの実態とその対策
- http://securit.gtrc.aist.go.jp/research/paper/css2001-takagi-dist.pdf
- Cross-Site Scripting Vulnerabilities
- http://www.cert.org/archive/pdf/cross_site_scripting.pdf
- なぜCSSXSSに抜本的に対策をとることが難しいか
- http://tdiary.ishinao.net/20060331.html#p01
一般論 - クロスサイトリクエストフォージェリ
- クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法
- http://takagi-hiromitsu.jp/diary/20050427.html#p01
- CSRF - クロスサイトリクエストフォージェリ
- http://d.hatena.ne.jp/hoshikuzu/20050130#D20050130CSRF
- 開発者のための正しいCSRF対策
- http://www.jumperz.net/texts/csrf.htm
プログラミング - Java
- セキュア・プログラミング講座
- http://www.ipa.go.jp/security/awareness/vendor/programming/index.html
- セキュア・プログラミング講座 2- J2EE
- http://www.ipa.go.jp/security/fy14/contents/trusted-os/programming-2.pdf
- Software Vulnerabilities in Java
- http://www.sei.cmu.edu/publications/documents/05.reports/05tn044.html
Dec 05, 2005
[Misc] UI に関する情報源をメモ
UI に関する情報源をメモ。 とりあえずアクセシビリティもユーザビリティもごちゃ混ぜ。 意外と書籍が多いので、どれを購入しようか悩む。
オンラインコンテンツ
- Jacob Nielsen 博士の Alertbox
- http://www.usability.gr.jp/alertbox/
- useit.com: Jakob Nielsen's Website
- http://www.useit.com/
- WEB STYLE GUIDE, 2nd edition
- http://www.webstyleguide.com/index.html?/contents.html
- User Interface Design and Development
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/anch_uidesigndev.asp
- 桑原政則オンライン ウェブアクセシビリティのページ
- http://www.aoikuma.com/webevaluationpg.htm
- ユーザインターフェースデザイン研究室
- http://www.phenomena.co.jp/phenomena/uid_lab/index.html
- 富士通ウェブ・アクセシビリティ指針
- http://jp.fujitsu.com/webaccessibility/
- JIS X 8341
- http://www.jisc.go.jp/app/pager?id=120242&NEXKN_vJISJISNO=X8341
書籍(和書・洋書)
-

ウェブ・ユーザビリティ辞典 ソシオメディア -

ウェブ・ユーザビリティ―顧客を逃がさないサイトづくりの秘訣 ヤコブ ニールセン -

ウェブ・ユーザビリティ&アクセシビリティ・ガイドライン―誰もが使いやすく、アクセスしやすいウェブサイトをデザインするための80の指針 石田 優子 -

ウェブユーザビリティの法則―ストレスを感じさせないナビゲーション作法とは スティーブ クルーグ -

構造化ユーザインタフェースの設計と評価―わかりやすい操作画面をつくるための32項目 山岡 俊樹 -

スタイルシート スタンダード・デザインガイド―SEO/ユーザビリティ/アクセシビリティを考慮した実践的HTML&CSSデザイン術 -

誰のためのデザイン?―認知科学者のデザイン原論 ドナルド・A. ノーマン -

ヒューマンインターフェースの発想と展開―人間のためのコンピューター ブレンダ・ローレル, 上条 史彦 -

ヒューマンデザインテクノロジー入門―新しい論理的なデザイン、製品開発方法 山岡 俊樹 -

ヒューメイン・インタフェース―人に優しいシステムへの新たな指針 ジェフ ラスキン -

ホームページ・ユーザビリティ ~顧客をつかむ勝ち組サイト32の決定的法則 ヤコブ ニールセン -

ユーザビリティエンジニアリング原論―ユーザーのためのインタフェースデザイン ヤコブ ニールセン -

ユーザインタフェースデザインの実践―応用人間工学の視点に基づく 山岡 俊樹, 岡田 明 -

ユーザー優先のデザイン・設計―新しい商品開発の考え方 山岡 俊樹 -

ユーザインタフェースデザインの実践―応用人間工学の視点に基づく 山岡 俊樹, 岡田 明 -

ユーザ工学入門―使い勝手を考える・ISO13407への具体的アプローチ 黒須 正明 -

About Face Alan Cooper -

Design of Everyday Things Don Norman -

GUIデザイン・ガイドブック―画面設計の実践的アプローチ 菊池 安行, 山岡 俊樹 -

Human Interface Guidelines - The Apple Desktop Interface(日本語版) Inc. Apple Computer -

ISO13407がわかる本 黒須 正明 -

Windowsユーザーインターフェイス事典 スーザン ファウラー -

Webデザインユーザビリティ 池谷 義紀 -

Webサイトユーザビリティハンドブック ― Webビジネス成功に不可欠なサイトの「使いやすさ」を検証する Mark Pearrow -

WebアクセシビリティJIS規格完全ガイド -

Windowsユーザーインターフェイスデザインガイド マイクロソフトプレスシリーズ -

Windows95ユーザーインターフェイスプログラミング マイクロソフトプレスシリーズ -

Web Style Guide - Basic Design Principles for Creating Web Sites Patrick Lynch -

The Elements of Friendly Software Design Paul Heckel
Dec 03, 2005
[Misc] 青空文庫に貢献したい
青空文庫は著作権の切れた作家の作品をボランティアで入力・校正して公開してくれているサイト。 「著作権が切れたから皆の共有財産にしよう」という活動は本当に有り難い。 何かお手伝いしてみたいとは思っているのだが、なかなか継続的にリソースを確保するのも難しいので二の足を踏んでいる。 ここは一つコーダーらしいお手伝いをしてみよう、ということで青空文庫用のブラウザを作ってみた。
青空ブラウザ
↓のリンクをクリックすると青空ブラウザが起動する。
青空ブラウザを起動
青空ブラウザ 使用上の注意
このソフトは・・・
- オレオレ証明書で署名されている。 → 正式な証明書を所有していない && 署名しないとセキュリティ制約で動作しないため
- 外部へのネットワークアクセスを要求する。 → 青空文庫にアクセスするため
- ムヤミヤタラと使用して青空文庫に無用な負荷をかけないよう注意が必要
- J2SE 5.0 以上の JVM が必要。
- ネットワークのアクセス権限が必要。
Dec 01, 2005
[Misc] iPod をデフラグメンテーションする
面白いネタを知った→HOW TO MAKE YOUR IPOD FASTER(ネタ元 iPodをデフラグして高速化する方法)
iPod をデフラグすると動作が速くなるらしい。
フォーラムの書き込みをざっと眺めてみると、Windows のデフラグツールでも OK らしい。
まぁ、iPod とは言え実際のところは単なるマスストレージ対応の HDD だし。
というわけで、実際に試してみた。
使用した iPod / OS
- iPod
- 第 5 世代 iPod (いわゆる Video iPod) 60G ← FAT32 でフォーマットされたもの
- OS
- Windows XP Professional
デフラグの風景
普通にエクスプローラから iPod のプロパティを表示。
とりあえず分析。デフラグの必要は無いと言われるがメゲずに開始。
デフラグ終了。手元の環境では約 30 分程かかった。
結果
デフラグ自体は何の問題もなく終了。 デフラグ後も動作に問題はなさそう。まだ確信を持って言える状況ではないけれど。 動作速度は体感できるレベルで改善された。 具体的には、メニューの切り替わりがキビキビするようになった。 今まではメニュー画面切り替え時につっかかるような挙動をしていたのだが、デフラグ後はそれがなくなった。 意外にデフラグの効果が大きかった。

![[エクスプローラの表示]](/blog/entries/Misc/20051213_01/terminal_01.png)


