Dec 26, 2005

[Misc] 2005 年のまとめ

あと数日で 2005 年も終わり。 というわけで、2005 年に話題になったトピックの中で個人的に興味深かったものをまとめてみた。 Web 系アプリケーション開発(特に Java)に関係するものが中心。

2005 年のトピック TOP5

  1. 個人情報保護 & 情報漏洩
  2. Web サービス
  3. Ajax
  4. Web2.0
  5. 新しい開発用ツール
個人的な TOP 5 はこの辺り。 この辺りを抑えておけば個人的には満足なので、後でそれぞれおさらいしよう。

個人情報保護法 & 情報漏洩

個人的には個人情報保護法関連が一番インパクトが大きかった。 困るのは、個人情報保護が従来のセキュリティ(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 等々。 それなりにサービスが揃ってきたので、色々と工夫のしがいが出てきた感じがする。

Google
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 年はそんな一年だった。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 20, 2005

[Misc] GeoURL にチャレンジ

GeoURL とは

GeoURL は、地理情報とサイトを連携するサービス。 GeoURL にサイトを登録すると、そのサイトの "地理的に" 近いサイトが分かる。 余り意味があるとも思えないが、ご近所さんのサイトが分かるということがメリットなのだろうか。 面白そうなので試してみた。

GeoURL
http://geourl.org/
GeoURL - サイトの追加方法
http://geourl.org/add.html

GeoURL にサイトを登録

  1. 位置情報を決定する
    まずは、登録する位置情報を決定する。どういう方法でも良いが、緯度と経度が必要。ここでは 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" の部分が緯度と経度の情報になるのでメモしておく。
  2. サイトに情報を埋め込む
    HTML の HEAD ブロックに以下の様な META タグを埋め込む。
    <meta name="ICBM" content="35.66586, 139.89309">
    <meta name="DC.title" content="in-vitro.jp">
    ICBM の値は Google Map でメモした値そのままで良い。但し、桁数が違うので、小数以下を 5 桁にする。 DC.title の値はサイトの名前を指定する。
  3. GeoURL へ PING を打つ
    GeoURL - PINGでサイトの URL を入力して PING!!
  4. ご近所さんを確認
    PING を打つと http://geourl.org/near?p=[サイトの URL] でご近所さんが分かるようになる。
ちなみに、このサイトのご近所さんはこちら→in-vitro.jp のご近所さん

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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/

試してみる

試してみた。

  1. 最初に del.icio.us トップ から del.icio.us のアカウント登録を行う。
  2. リクエスト用の URL を作成する。
  3. 早速リクエストを送ってみる。リクエスト 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>

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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) にチャレンジ で使用したものと同じ。

  1. 最初に アプリケーション ID の登録 を行う。登録には Yahoo! ID が必要。
  2. リクエスト用の URL を作成する。クエリに 1 で取得したアプリケーション ID を指定する必要がある。例) "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=[アプリケーションID]&query=Yahoo%20Web%20Search"
  3. 早速リクエストを送ってみる。2 で作成した URL を呼び出す。
[Yahoo! 検索 Web サービス の呼び出し]

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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 は↓に添付する。

  1. 最初に Google Web APIs license key の取得 を行う。
  2. リクエスト用の SOAP メッセージを作成する。メッセージには 1 で取得したライセンスキーを埋め込む必要がある。Google Web APIs Developer's Kit をダウンロードするとサンプルの SOAP メッセージが入っているので、それを参考にするとラク。
  3. 早速リクエストを送ってみる。"http://api.google.com/search/beta2" に対して 2 で作成した SOAP メッセージを送信する。
[Google Web APIs の呼び出し]

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>

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 15, 2005

[Misc] Unicode の取り扱いについて (3)

結局、Unicode を使う場合には

  1. 文字列を OS に渡すと JVM と異なる認識をすることがある。
  2. OS における Unicode のサポート状況により、OS 毎に挙動が異なる。
    (しかも、OS の種類が同一でもインストール時のオプションによって差異が出ることがある)
という問題があることが分かった。

というわけで、安全でない文字列をパスとして利用する場合はかなり様々な注意が必要となる。 HTML に Unicode 系の文字エンコーディングを指定している Web アプリケーションは要注意。 パスとして利用できる文字列は「半角英数字のみ」くらいの厳しい制約をかけておくのが無難だろう。 OS のシステムの文字エンコーディングが Unicode 系でない場合は、OS のシステムの文字エンコーディングで表現できる文字、くらいの縛りでも良いかもしれない。


「本来文字コードでフォレンジックに関係しそうな領域はそれほど広くないはずだが、実際には非常に深い世界で、変な深海魚のようなものが出てくる(笑)」と語り、今後この分野はさらに研究が必要であるとの見解を示して講演を終えた。

(http://pcweb.mycom.co.jp/articles/2005/11/07/blackhat/001.htmlより抜粋)


ということなので、判定を厳しくしておくに越したことはなさそう。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 13, 2005

[Misc] Unicode の取り扱いについて (2)

昨日のコードを今度は Debian(Sarge) で動かしてみた。

実験環境

  • Debian Sarge
  • Java 1.5.0_05

実行結果

[エクスプローラの表示]

実験環境の Sarge はシステムの文字エンコーディングを EUC-JP でインストールしているので、当然のように Unicode 制御文字は '?' 扱いとなった。 結局何が言えるかというと、同じコードでも OS 毎に挙動が異なるということ。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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());
}

実行結果

[エクスプローラの表示]
エクスプローラでは全く見分けが付かない("dummy" に見える)ディレクトリが 3 つ作成された。

[CMDの表示]
cmd で見ると違うディレクトリであることが分かる。

というわけで、簡単に利用者を欺くようなファイル/ディレクトリを生成できてしまった。 具体的にどういう被害が想定できるか思いつかないが、いたずらくらいは簡単に出来てしまいそう。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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 ファイル名をユーザー入力にする場合はかなり気をつけねば。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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

書籍(和書・洋書)

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 03, 2005

[Misc] 青空文庫に貢献したい

青空文庫は著作権の切れた作家の作品をボランティアで入力・校正して公開してくれているサイト。 「著作権が切れたから皆の共有財産にしよう」という活動は本当に有り難い。 何かお手伝いしてみたいとは思っているのだが、なかなか継続的にリソースを確保するのも難しいので二の足を踏んでいる。 ここは一つコーダーらしいお手伝いをしてみよう、ということで青空文庫用のブラウザを作ってみた。

青空ブラウザ

↓のリンクをクリックすると青空ブラウザが起動する。
青空ブラウザを起動

青空ブラウザ 使用上の注意

このソフトは・・・

  1. オレオレ証明書で署名されている。 → 正式な証明書を所有していない && 署名しないとセキュリティ制約で動作しないため
  2. 外部へのネットワークアクセスを要求する。 → 青空文庫にアクセスするため
  3. ムヤミヤタラと使用して青空文庫に無用な負荷をかけないよう注意が必要
このソフトを利用する際には・・・
  1. J2SE 5.0 以上の JVM が必要。
  2. ネットワークのアクセス権限が必要。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

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 分程かかった。

結果

デフラグ自体は何の問題もなく終了。 デフラグ後も動作に問題はなさそう。まだ確信を持って言える状況ではないけれど。 動作速度は体感できるレベルで改善された。 具体的には、メニューの切り替わりがキビキビするようになった。 今まではメニュー画面切り替え時につっかかるような挙動をしていたのだが、デフラグ後はそれがなくなった。 意外にデフラグの効果が大きかった。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |