Nov 06, 2012

[Misc] クライアント証明書による ssh 接続設定をメモ

Server 側の設定

$ ssh-keygen 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

Client 側の設定

Server から Client に ~/.ssh/id_rsa をコピーし、以下を実行。

$ ssh-add ~/.ssh/id_rsa

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

Aug 19, 2012

[Misc] underscore_notation をお手軽に CamelCase に変換する方法

正規表現で underscore_notation を CamelCase に変換する方法をメモ。

$ echo "foo_bar_hoge" | gsed 's/_\([a-z]\)/\u\1/g' 
fooBarHoge

で、これを更にお手軽にするために

pbpaste | gsed 's/_\([a-z]\)/\u\1/g' | pbcopy
OS X では pb* と組み合わせて使うと便利。 Alfred の Extension 化しておくと更に便利。

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

Nov 01, 2011

[Misc] CalDAV メモ

CalDAV とは

CalDAV
http://ja.wikipedia.org/wiki/CalDAV
iCalendar
http://ja.wikipedia.org/wiki/ICalendar

Java から CalDAV を利用するには

CalDAV4j
http://code.google.com/p/caldav4j/

Google Calendar の CalDAV 関連情報

Sync with iCal or Sunbird
http://www.google.com/support/calendar/bin/answer.py?answer=99355

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

Jul 08, 2011

[Misc] astah の「ファイルがオープンできません」に対応する方法

astah で過去に作成したファイルを読み込もうとすると「ファイルがオープンできません」というエラーで一切読み込めなくなった。 公式サイトを見てみたらお知らせに情報が掲載されていた。

astah - Javaアップデート後に発生する問題について
http://astah.change-vision.com/ja/java-trouble.html
お知らせに記載されている回避方法はかなりざっくりなので、MacOS X での対応方法をメモしておく。

対応方法

  1. ADCから "Java for Mac OS X 10.6 Update 4 Developer Package" をダウンロードする。
  2. ダウンロードした dmg から JDK 1.6.0_24 をインストールする。
  3. インストールされたことを確認する。
    $ cd /Library/Java/JavaVirtualMachines/1.6.0_24-b07-334.jdk/Contents/Commands
    $ ./java -version
    java version "1.6.0_24"
    Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3425)
    Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
    
  4. astah の Info.plist を編集する。
    $ cd /Applications/astah\ professional/astah\ professional.app/Contents/
    $ cp ./Info.plist ./Info.plist.original
    $ vi ./Info.plist
    $ diff ./Info.plist.original ./Info.plist
    56c56
    < 		<string>1.6+</string>
    ---
    > 		<string>1.6.0_24</string>
    
これで今まで通り "astah professional.app" (もしくは "astah community.app") から astah を起動して問題無く利用することができるはず。

それにしても既存ファイルが一切読み込めなくなる、というのは致命的すぎる。 Apple は古い環境を躊躇無く切ってくるから Lion で JDK 1.6.0_24 以前が動作するのか不安。 Lion 発売までに .astah ファイルのコンバータが提供されると良いのだけれど・・・。

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

Jun 28, 2011

[Misc] Firefox 5 の起動時オプション

Firefox 5 (MacOS X) の起動時オプションをメモ。

$cd /Applications/Firefox.app/Contents/MacOS/
$./firefox-bin -version
Mozilla Firefox 5.0
$./firefox-bin --help
Usage: ./firefox-bin [ options ... ] [URL]
       where options include:

  --g-fatal-warnings Make all warnings fatal

Firefox options
  -h or -help        Print this message.
  -v or -version     Print Firefox version.
  -P        Start with .
  -migration         Start with migration wizard.
  -ProfileManager    Start with ProfileManager.
  -no-remote         Open new instance, not a new window in running instance.
  -UILocale  Start with  resources as UI Locale.
  -safe-mode         Disables extensions and themes for this session.
  -jsconsole         Open the Error console.
  -browser           Open a browser window.
  -new-window   Open  in a new window.
  -new-tab      Open  in a new tab.
  -preferences       Open Preferences dialog.
  -search      Search  with your default search engine.
  -private           Enable private browsing mode.
  -private-toggle    Toggle private browsing mode.
  -setDefaultBrowser Set this app as the default browser.

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

Jun 27, 2011

[Misc] Firefox 5 で Ubiquity を利用する方法

Ubiquity 0.6 は Firefox 4/5 ではサポートされない。 そのため、Firefox を 3.6 からアップグレードしようとすると「Ubiquity は無効化される」旨メッセージが表示される。

Firefox 5 で Ubiquity を利用するには以下の手順で最新版(2011/06/27 現在で 0.6.1pre.20110619) をインストールする必要がある。

インストール方法

  1. https://bitbucket.org/satyr/ubiquity/downloadsから tip.xpi をダウンロード
  2. Firefox 5 のメニューより「ファイル > ファイルを開く...」 を実行し、tip.xpi を開く
  3. インストーラの指示に従いインストールを行う

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

Aug 27, 2010

[Misc] システムの色覚異常への対応について

色覚異常対応について調べたのでメモ。

色覚異常

色覚異常には先天色覚異常と後天色覚異常がある。

先天色覚異常

先天赤緑色覚異常は先天色覚異常の中で最も多く存在し、赤系統や緑系統の色の弁別に困難が生じる人が多いといわれる。 日本人では男性の4.50%、女性の0.165%が先天赤緑色覚異常で、日本全体では約290万人が存在する。 白人男性では約8%が先天赤緑色覚異常であるとされる。
(Wikipedia - 色覚異常)
2型色覚(2型2色覚と2型3色覚)の人が間違えやすい組み合わせは、赤と緑、オレンジと黄緑(きみどり)、緑と茶、青と紫、ピンクと(しろ)・灰色、緑と灰色・黒です。 1型色覚(1型2色覚と1型3色覚)の場合これに、赤と黒、ピンクと青が加わります。
(目と健康シリーズ - 色覚の異常)

後天色覚異常

後天色盲は遺伝的背景に関わらず、誰にでも発症する可能性があるものが多いのが特徴と言える。 その原因は、角膜、水晶体、硝子体といった中間透光体の着色によるもの、網膜病変によるもの、緑内障によるもの、視神経病変によるもの、大脳性病変によるもの、心因性要因によるものなど様々であるが、何よりもすべての人に関係する問題として、加齢に伴う色覚の変化がある。

後天色盲でもっとも多い、後天青黄色盲の色感覚をまとめると次のようになる。
  • 青の範囲が広く、健康な眼の 青紫〜青〜青緑〜緑〜黄緑 までを青として知覚し、緑の感覚を失う。
  • 黄色は彩度が低下して白っぽく見える。
  • 低明度、低彩度の色は、ほとんど青または無彩色に見える。
  • 「黄色」→「白」、「緑」→「青または黒」、「茶」→「紫または黒」、「紫」→「青、茶、黒」、「青」→「黒」などの色誤認をする。

(色覚の多様性と視覚バリアフリーなプレゼンテーション - 色覚が変化すると、どのように色が見えるのか?)

Web サイトにおける色覚異常対応のガイドライン

w3c が策定している Web Content Accessibility Guidelines (WCAG) 2.0 に色覚異常対応に関する記載がある。ここでは Level A/AA/AAA の 3 レベルが定義されており、想定するユーザが必要とするレベルの対応を行う。

1.4.1 Use of Color: Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. (Level A)
1.4.3 Contrast (Minimum): The visual presentation of text and images of text has a contrast ratio of at least 4.5:1, except for the following: (Level AA)
  • Large Text: Large-scale text and images of large-scale text have a contrast ratio of at least 3:1;
  • Incidental: Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.
  • Logotypes: Text that is part of a logo or brand name has no minimum contrast requirement.
1.4.6 Contrast (Enhanced): The visual presentation of text and images of text has a contrast ratio of at least 7:1, except for the following: (Level AAA)
  • Large Text: Large-scale text and images of large-scale text have a contrast ratio of at least 4.5:1;
  • Incidental: Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.
  • Logotypes: Text that is part of a logo or brand name has no minimum contrast requirement.

各レベルの詳細な情報は下記を参照。
Understanding Guideline 1.4
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast.html
Understanding Success Criterion 1.4.1 [Use of Color]
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-without-color.html
Understanding Success Criterion 1.4.3 [Contrast (Minimum)]
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html
Understanding Success Criterion 1.4.6 [Contrast (Enhanced)]
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast7.html


WCAG 2.0 準拠の評価

WCAG 2.0 の各レベルではコントラスト比が規定されているので、システムがそのコントラスト比を満たすことを確認する。 コントラスト比の算出方法は以下を参照。

WCAG 2.0 - contrast ratio
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html#contrast-ratiodef
WCAG 2.0 - relative luminance
http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
The Web KANZAKI - 色の組み合わせをチェックしてみる
http://www.kanzaki.com/docs/html/color-check

色覚異常をシミュレートする

ImageJ と VischeckJ を使用することで色覚異常をシミュレートすることができる。

ImageJ
http://rsb.info.nih.gov/ij/
Vischeck
http://www.vischeck.com/


ImageJ と VischeckJ のインストール

  1. ImageJ をダウンロード、解凍する。解凍先を $IMAGEJ_HOME とする。
  2. VischeckJ をダウンロード、解凍する。解凍先を $VISCHECKJ_HOME とする。
  3. $VISCHECKJ_HOME/*.class を $IMAGEJ_HOME/plugins/VischeckJ/ にコピーする。


シミュレーションの実施

  1. シミュレートしたい画面をキャプチャし、画像として保存する。
  2. ImageJ を起動し、画像を開く。
  3. Plugins > VischeckJ > &Vischeck Panel を選択。
          [ImageJ]
  4. Deuteranope(緑色覚異常)、Protanope(赤色覚異常)、Tritanope(青黄色覚異常) ボタンをクリックする。
          [imagej]
[original]
オリジナル
[deuteranope]
緑色覚異常
[protanope]
赤色覚異常
[tritanope]
青黄色覚異常

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

Aug 12, 2010

[Misc] CSS による印刷制御に関するメモ

CSS による印刷制御に関して個人的に抑えておきたいことをメモ。

改ページ

page-break-before, page-break-after で改ページの制御が可能。 指定可能な値は auto、always、avoid、left、right のいずれか。

<div class="page" style="page-break-after: always;">
  ここが 1 ページ分。
</div>
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification - 13 Paged media
http://www.w3.org/TR/CSS2/page.html#page-break-props

A4 に印刷する場合は 649px x 891px

A4(210mm x 297mm) に印刷する場合は、1 ページを 649px x 891px 以内に抑える。

その他参考

参考になるサイトをメモ。素晴らしい情報に感謝。

ADP: 印刷用CSSの書き方(基本編)
http://adp.daa.jp/archives/000690.html
無限の翼 : IE6、7用対応:A4サイズで印刷出来るスタイルシート指定
http://mtw.cocotte.jp/blog/diary/html/2009/05/07-2234.php
PHP × Ajax = Cool CMS - [CSS] 印刷用ページを実装する方法
http://blog.aidream.jp/css/css-print-javascript-67.html
BlogでHTML日進月歩 - 印刷用CSSの導入
http://cellery.blog21.fc2.com/blog-entry-14.html

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

Dec 18, 2009

[Misc] 脅威の分類 / Threat Classification

Web サイトのセキュリティに対する脅威を体系化した資料。 WASC (Web Application Security Consortium) によるもの。 Version 1.00 が公開中、Version 2 が現在(2009/12/18) 作業中。

Threat Classification
http://www.webappsec.org/projects/threat/
WASC Threat Classification V2.0
http://projects.webappsec.org/Threat-Classification-Working

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

Jul 01, 2009

[Misc] Eclipse 3.5 Galileo は Mac OS X 10.4 (Tiger) では動作しない

Eclipse 3.5 Calileo を Mac OS X 10.4 (Tiger) 上で起動しようとすると、下記の様なエラーダイアログが出て強制終了される。

This application requires Mac OS X 10.5 (Leopard) or greater.

[エラーダイアログ]

Eclipse Project Release Notes 3.5 を確認したところ、Mac OS X 10.4 (Tiger) はやはり動作環境に含まれていなかった。

確かに Leopard が出てからかなり経つが、これは厳しい。 Mac OS X で Java を使うと色々起きるな・・・。

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

Jun 26, 2009

Jun 10, 2009

[Misc] TLD "ru" からのコメントスパムが酷い

TLD "ru" からのコメントスパムが酷いので、"ru" 圏内からのアクセスを全てフィルタリングしておくことにする。 方法は以下のサイトを参照のこと。多謝。

krfilter - deny accesses from .kr
http://www.hakusan.tsg.ne.jp/tjkawa/lib/krfilter/index.jsp
― 世界の国別 IPv4 アドレス割り当てリスト ―
http://nami.jp/ipv4bycc/
さて、効果は上がるだろうか。

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

Jun 08, 2009

[Misc] アンチウィルスのテスト用ダミーファイル

アンチウィルスのテストに使用できるダミーファイル。 アンチマルウェア用のものもある。

This test file has been provided to EICAR for distribution as the "EICAR Standard Anti-Virus Test File", and it satisfies all the criteria listed above. It is safe to pass around, because it is not a virus, and does not include any fragments of viral code. Most products react to it as if it were a virus (though they typically report it with an obvious name, such as "EICAR-AV-Test"). The file is a legitimate DOS program, and produces sensible results when run (it prints the message "EICAR-STANDARD-ANTIVIRUS-TEST-FILE!").
The Anti-Virus or Anti-Malware test file
http://www.eicar.org/anti_virus_test_file.htm

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

Jun 07, 2009

[Misc] Load Average の判断基準

Load Average の判断基準について調べてみた。 結論から言うと、

  1. Load average は CPU 数(CPU コア数) で割って 1 を超えないことを目安とする。
  2. Load average の最大値は CPU 数(CPU コア数) + 1 を超えないことを目安とする。
  3. 但し、上記 1 & 2 はケース・バイ・ケースで柔軟な判断が必要。
ということになりそうだ。ただ、見付かった情報がかなり少ないので少々心許ないが。

System Administration Toolkit: Monitoring a slow system
http://www.ibm.com/developerworks/aix/library/au-satslowsys.html
In a multi-CPU (or multi-core) system, divide the load average by the number of CPUs. To determine if the machine is over stressed, use the same principles as above. An alternative way of looking at the figures is to treat them as a percentage; in other words, if the figures above were from a single-CPU system, then the machine would be able to cope with the load if it was 224 percent faster. Within a multi-CPU system, you should use the number of CPUs plus one to determine the maximum load. For example, a four-CPU system would have a maximum load average of 5.

Examining Load Average
http://www.linuxjournal.com/article/9001
The point of perfect utilization, meaning that the CPUs are always busy and, yet, no process ever waits for one, is the average matching the number of CPUs.If there are four CPUs on a machine and the reported one-minute load average is 4.00, the machine has been utilizing its processors perfectly for the last 60 seconds.

naoya のはてなダイアリー - マルチコア時代のロードアベレージの見方
http://d.hatena.ne.jp/naoya/20070518/1179492085
4CPU ならロードアベレージ 4.00 まで OK、は鵜呑みにしないほうがよさそう。状況によって異なるのでその他の指標も使って細かく統計を分析したほうがよい。 * nr_running > 1 のときはロードバランスが適切に働く。そのため 4CPU なら 4.00 で割れ、というのは負荷があるときはそれなりに正しい。

livedoor Knowledge の 「複数CPUで稼動するlinuxのload averageの目安に関する信頼できるソース」 が参考になった。多謝。

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

Jun 06, 2009

[Misc] Capacity Planning に関するメモ

Capacity Planning に関する資料をメモ。

Carpe Diem - The Art of Capacity Plaining
http://www.sssg.org/blogs/naoya/archives/996
Wikipedia - Capacity planning
http://en.wikipedia.org/wiki/Capacity_planning
capacity planning for LAMP
http://www.kitchensoap.com/talks/MySQLConf2007-Capacity.pdf
Capacity Planning for Web Operations - Web20 Expo 2008
http://www.slideshare.net/jallspaw/capacity-planning-for-web-operations-web20-expo-2008
Performance Management with Free and Bundled Tools
http://www.slideshare.net/adrianco/capacity-planning-with-free-tools
Tomcat Capacity Planning
http://www.devshed.com/c/a/BrainDump/Tomcat-Capacity-Planning/
Tomcat Tuning
http://oreilly.com/catalog/9780596101060/chapter/ch04.pdf

今度この書籍を買っておかないと。 翻訳版は出ていないのかな??
The Art of Capacity Planning (ペーパーバック)

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

Jun 05, 2009

[Misc] Google の検索結果画面に Wolfram Alpha 検索フォームを追加する GreaseMonkey スクリプト

Wolfram Alpha が OpenSearch に対応していないので、Google の検索画面に検索フォームを追加する Grease Monkey スクリプトをでっち上げてみた。これで Wolfram Alpha が少し楽に使える様になった。早く OpenSearch に対応してくれないものか。

waog.user.js


[Google 検索画面]

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

[Misc] Google Chrome for Mac リリース!!

ようやく Google Chrome for Mac がリリースされた。 正式リリースではなく Developer Release なので制約やバグ有り状態だけれども。

・・・ Tiger では動かない orz 自宅の Leopard 環境でないと試せないか。無念。 帰宅後の楽しみに取っておこう。

Google Chrome for Mac Developer Release
http://www.google.com/chrome/intl/en/eula_dev.html?dl=mac

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

Jun 03, 2009

[Misc] コードサイニング証明書に関するメモ

Java で利用可能なコードサイニング証明書を入手できる業者をメモ。

商用利用の場合(有償)

業者 製品 価格
VeriSign Object Signing対応Digital ID ¥ 94,500(1年間有効)
グローバルサイン(旧日本ジオトラスト株式会社) Object signing 対応コードサイニング証明書 Java 対応バージョン ¥ 59,850(1年間有効)
¥ 113,400(2年間有効)
¥ 163,800(3年間有効)
ChosenSecurity Sun Java Signing Degital ID $ 399.00(1年間有効)
thawte JavaSoft Developer Certificate $ 299.00(1年間有効)
$ 549.00(2年間有効)
ソートジャパン株式会社 コードサイニング証明書 JavaSoft デベロッパーサート ¥ 94,500(1年間有効)
※ 価格は 2009/06/03 時点でサイトに掲載されていた金額。

個人利用の場合(無償)

個人利用の場合、無償でコードサイニング証明書を入手することができるらしい。 提供してくれるのは 上記でも触れた thawte。

thawte - Personal E-mail Certificates
http://www.thawte.com/secure-email/personal-email-certificates/index.html
Convert the Java JKS key - store to Microsoft PFX format
http://www.crionics.com/products/opensource/faq/signFree.htm
日々是開発:SQS Development さんの 無償で正統的なコードサイニング証明書を入手する方法 にあった情報。多謝。

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

Jun 01, 2009

[Misc] Clickjacking に関するメモ

Clickjacking に関してメモ。 完全ではないにせよ、Web アプリケーションでは下記の Framekiller に対応しておきたい。

Clickjacking
http://en.wikipedia.org/wiki/Clickjacking
Framekiller
http://en.wikipedia.org/wiki/Framekiller
ちなみに、Twitter は Clickjacking に対応している。 iframe や frame 内に Twitter を表示しようとすると書き込み内容が表示されなくなる。

(2009/12/21 追記) Twitter の Clickjacking 対策が変更された模様。コンテンツの非表示ではなく親フレームの URL 差し替えになっている。Twitter に飛ばされてしまうのでサンプルは削除。

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

May 30, 2009

[Misc] Sender Policy Framework メモ

Wikipedia によると、SPF(Sender Policy Framework) というのは

Sender Policy Framework(センダー・ポリシー・フレームワーク)とは、電子メールにおける送信ドメイン認証のひとつ。差出人のメールアドレスが他のドメインになりすましていないかどうかを検出することができる。 SPF もしくは SPF認証 とも呼ばれる。
というものらしい。 稼働中のメールサーバが SPF に対応したメールサーバにメールを転送しようとしてエラーメールを返してきたのでメモ。 Wikipedia の記載にある通り、DNS に txt レコードを追加すれば対応できる様だ。 DNS の設定はしたが、故あって未テスト。 なので、本当に DNS の設定だけで大丈夫なのかは現時点では未検証。
Sender Policy Framework
http://ja.wikipedia.org/wiki/Sender_Policy_Framework
Sender Policy Framework
http://www.openspf.org/
ちなみに、Apache James が SPF で転送を拒否された時に送信してきたエラーメールはこんな感じ。
Hi. This is the James mail server at example.co.jp.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.  Below
I include the list of recipients and the reason why I was unable to deliver
your message.

hoge@example.co.jp
Remote mail server told me: 550 See http://spf.pobox.com/why.html?sender=me%40example.com&ip=192.168.1.1&receiver=example.co.jp (#5.7.1)

The original message is attached.

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

May 27, 2009

[Misc] SnortAlog で snort のレポート出力

Snort を入れてはあるものの。 レポートはデイリーでメールされてくるものの。 最近は全く見ていなかったりする。 Snort を入れてある意味が全然無いので、Snort のレポートに目を通す気になるようにすべく SnortAlog を入れてみた。

SnortAlog : IDS/IPS and Firewall log Analyzer
http://jeremy.chartier.free.fr/snortalog/

SnortAlog のインストール

Debian にインストールしたときのログ。 HTML 形式のレポート作成には GD Graph が必要なので、予め apt でインストールしておく。

$ apt-get install libgd-graph-perl
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  libgd-gd2-noxpm-perl libgd-text-perl libgd2-noxpm
Suggested packages:
  ttf-dustin libgd-tools
The following NEW packages will be installed:
  libgd-gd2-noxpm-perl libgd-graph-perl libgd-text-perl libgd2-noxpm
0 upgraded, 4 newly installed, 0 to remove and 3 not upgraded.
Need to get 835kB of archives.
After unpacking 2232kB of additional disk space will be used.
Do you want to continue [Y/n]? y

  (SNIP)

Setting up libgd-text-perl (0.86-3.1) ...
Setting up libgd-graph-perl (1.43.08-2.1) ...
$ wget http://jeremy.chartier.free.fr/snortalog/downloads/snortalog/snortalog_v2.4.2.tgz
--23:38:54--  http://jeremy.chartier.free.fr/snortalog/downloads/snortalog/snortalog_v2.4.2.tgz
           => `snortalog_v2.4.2.tgz'

  (SNIP)

23:38:59 (165.67 KB/s) - `snortalog_v2.4.2.tgz' saved [795050/795050]

$ tar zxvf ./snortalog_v2.4.2.tgz 
snortalog/CHANGES
snortalog/conf/

  (SNIP)

snortalog/picts/p_27.gif
snortalog/snortalog.pl
$ mv ./snortalog ./snortalog-2.4.2
$ mv ./snortalog-2.4.2 /opt
$ ln -s /opt/snortalog-2.4.2 /opt/snortalog
$ 

デイリー HTML レポートの作成

以下の様なシェルスクリプトをでっち上げてデイリーで HTML レポートを作成する。

$ cat /etc/cron.daily/snortalog
#!/bin/sh

SNORTLOG_DIR=/var/log/snort
SNORTALOG_HOME=/opt/snortalog
OUTPUT_DIR=/var/www/html/snort
REPORT_HTML=index.html

DATE=`date --date 'yesterday' +'%Y%m%d'`

mkdir -p ${OUTPUT_DIR}/${DATE}/picts

cd ${SNORTLOG_DIR}
gzip -d ./alert.1.gz

cd ${SNORTALOG_HOME}
./snortalog.pl -file ${SNORTLOG_DIR}/alert.1 -3 -r -pictsdir ../picts -g gif -report -o ${OUTPUT_DIR}/${DATE}/${REPORT_HTML}
mv ./*.gif ${OUTPUT_DIR}/${DATE} 

cd ${SNORTLOG_DIR}
gzip ./alert.1

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

May 25, 2009

[Misc] IE6, IE7, IE8 の共存方法メモ

Microsoft 謹製の比較ツール。

Microsoft Expression Web SuperPreview for Windows Internet Explorer
http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-dccff3fae677&displaylang=en

おなじみ IETester。

IETester
http://www.my-debugbar.com/wiki/IETester/HomePage

それぞれインストールする方法も。こちらは IT戦記さんの 「IE6 と IE7 と IE8 を同じマシンで共存させる方法」 からの情報。多謝。ただ、残念なことに Windows XP Professional (on Parallels) + IE8 環境で試してみたら IE6 のテキストボックスがキー入力を受け付けなかった orz

Internet Explorer 7 running side by side with IE6.
http://tredosoft.com/IE7_standalone
Install multiple versions of IE on your PC
http://tredosoft.com/Multiple_IE

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

May 21, 2009

[Misc] iCalendar メモ

iCalendar とはスケジュールや TODO, イベントといったカレンダーで扱われるデータを相互交換するための標準フォーマット。RFC にて仕様が規定されている。

RFC2445 Internet Calendaring and Scheduling Core Object Specification (iCalendar)
http://www.ietf.org/rfc/rfc2445.txt
RFC2446 iCalendar Transport-Independent Interoperability Protocol (iTIP)
http://www.ietf.org/rfc/rfc2446.txt
RFC2447 iCalendar Message-Based Interoperability Protocol (iMIP)
http://www.ietf.org/rfc/rfc2447.txt
Wikipedia - iCalendar
http://ja.wikipedia.org/wiki/ICalendar
iCalendar を扱う Java 用のライブラリも公開されている。
iCal4j
http://ical4j.sourceforge.net/

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

Mar 19, 2009

[Misc] OpenSearch に対応する方法

OpenSearch とは

OpenSearch.org によると、OpenSearch とは

OpenSearch is a collection of simple formats for the sharing of search results.
You can use OpenSearch formats to help people discover and use your search engine and to syndicate search results across the web.
というものらしい。 対応すると Firefox の検索バーに Google や Yahoo と並んで自分のサイトを表示できる様だ。 早速遊んでみることに。
OpenSearch.org
http://www.opensearch.org/Home
Creating OpenSearch plugins for Firefox
https://developer.mozilla.org/ja/Creating_OpenSearch_plugins_for_Firefox

OpenSearch description document の作成

まずは OpenSearch description document を作成する。 詳細は OpenSearch description document に譲ることにして、ここではこのブログ用の内容をメモしておく。

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  <ShortName>in-vitro.jp blog search</ShortName>
  <Description>in-vitro.jp blog search</Description>
  <InputEncoding>UTF-8</InputEncoding>
  <Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAPSGlDQ1BJQ0...(略)</Image>
  <Url type="text/html" method="GET" template="http://www.in-vitro.jp/blog/google.cgi">
    <Param name="key" value="site:www.in-vitro.jp/blog/"/>
    <Param name="q" value="{searchTerms}"/>
  </Url>
  <moz:SearchForm>http://www.in-vitro.jp/blog/</moz:SearchForm>
</OpenSearchDescription>
以下の 2 点だけ気をつければ作成自体は特に難しいことではない。
  1. 検索のクエリ文字列は {searchTerms} で置換される。
  2. アイコン 16 x 16 で作成し、Base64 でエンコードして <Image> 内に埋め込む。サーバに置いて参照することもできる様だ(上の例では埋め込んでいる)。アイコンを Base64 でエンコードするのは The data: URI kitchen を使うと楽。
作成できたら適当なファイル名でサーバ上に設置する。

HTML ヘッダにリンクを設定

HTML ヘッダに OpenSearch description document へのリンクを設定する。

<html>
  <head>
    ...
    <link rel="search" type="application/opensearchdescription+xml" title="in-vitro.jp blog" href="/blog/opensearch.xml" />
  </head>
  ...
</html>

Firefox で検索

OpenSearch に対応したサイトを開き、Firefox 検索バーのプルダウンを開くと

[Firefox検索バー]

の様に検索バーへの登録メニューが表示される。登録を行い、検索をしてみると・・・

[検索を実行]

検索できた。

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

Mar 18, 2009

[Misc] P3P に関するメモ

The Platform for Privacy Preferences 1.0 (P3P1.0) Specification
http://www.w3.org/TR/P3P/
P3P 1.0 の公開について (W3C 勧告)
http://www.w3.org/2002/04/p3p-pressrelease.html.ja
P3P Validator
http://www.w3.org/P3P/validator.html
P3P 1.0 Implementations
http://www.w3.org/P3P/implementations
【絵で分かるキーワード】P3P(The Platform for Privacy Preferences Project、ぴーすりーぴー)
http://review.ascii24.com/db/review/soft/web/2003/06/01/643973-000.html

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

Mar 16, 2009

[Misc] CentOS 5 に memcached をインストール

CentOS 5 に memcached をインストールしたときのメモ。 ・・・メモと言っても yum を流しただけ。

# yum search memcached
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile

  (略)

python-memcached.noarch : A Python memcached client library
memcached.i386 : High Performance, Distributed Memory Object Cache
memcached-selinux.i386 : SELinux policy module supporting memcached

# yum install memcached.i386
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
 * epel: ftp.jaist.ac.jp
 * extras: ftp.nara.wide.ad.jp

  (略)

Running Transaction
  Installing: memcached                    ######################### [1/1] 

Installed: memcached.i386 0:1.2.5-2.el5
Complete!

# /etc/init.d/memcached start
Starting memcached:                                        [  OK  ]
#

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

Mar 09, 2009

[Misc] Eclipse 3.5 M5 の更新内容が素晴らしい。

2009/02/03 に Eclipse 3.5 M5 がリリースされていた。 今更更新内容を確認してみて驚いた。 素晴らしすぎる。

Eclipse 3.5 M5 - New and Noteworthy
http://download.eclipse.org/eclipse/downloads/drops/S-3.5M5-200902021535/eclipse-news-M5.html

テキストエディタのブロック選択サポート

Platform Text - Block selection mode in textual editors
    Textual editors now support block (aka column or rectangular) selection mode:
テキストエディタでブロック選択がサポートされた。 Java エディタでも当然ブロック選択できる。 Mac OS X の場合、alt + command + a でブロック選択モードに入る。解除も同じ。
これでわざわざ Windows と秀丸を立ち上げて、という作業から少し解放される。 次はキーボードマクロを是非!! (Emacs 覚えろよ、という提案は聞こえないふりで・・・)

[Block Selection]

コンペアエディタで文字エンコーディング指定をサポート

Compare - Set encoding in Compare Editor
    The Set Encoding... action has been added to the Compare Editor context menu. This allows you to change the encoding of each side of the comparison.
コンペアエディタで文字エンコーディングを指定出来るようになった。

[Compare(0)]
UTF-8 と Windows-31J のファイルを比較してみる。片方が化けている。
[Compare(1)]
化けている方のコンテクストメニューから "Set Encoding..." を選択して・・・
[Compare(2)]
正しい文字エンコーディングを指定。
[Compare(3)]
比較できた!!

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

Nov 05, 2008

Oct 24, 2008

[Misc] Google, Yahoo からサイトを削除する方法

Google, Yahoo からとあるサイトを削除したので、関連ページをメモしておく。 個人情報が漏れた、とかではない。念のため。

Google のインデックスにコンテンツが登録されないようにする、またはインデックスからコンテンツを削除する方法を教えてください。
http://www.google.com/support/webmasters/bin/answer.py?answer=35301
robots.txt ファイルでサイトのアクセスを管理する
http://www.google.com/support/webmasters/bin/answer.py?answer=40360&cbid=-qq8531usfzqy&src=cb&lev=answer
インターネットからウェブページを削除せず、検索結果に表示されないようにする
http://info.search.yahoo.co.jp/archives/002869.php
サイト単位、ディレクトリ単位での巡回の拒否設定 1
http://info.search.yahoo.co.jp/archives/002849.php
検索結果から非表示にするには(インデックス操作)
http://help.yahoo.co.jp/help/jp/siteexplorer/siteexplorer-17.html

サイト側での対応

全検索エンジンに対してクロールを中止し、アーカイブを削除する様にする設定方法。

/robots.txt を作成する。全検索エンジンにサイト全体を disallow する。

User-agent: *
Disallow: /
HTML ヘッダ内にアーカイブ禁止のメタ情報を埋め込む。
<head>
  <meta name="robots" content="noarchive">
</head>

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

Oct 20, 2008

[Misc] jQuery で "selected プロパティを設定できませんでした。未定義のエラーです。" エラー

Windows XP SP3 + IE6 の環境で、jQuery を使用して select タグ内の option を操作すると "selected プロパティを設定できませんでした。未定義のエラーです。" というエラーが発生する。 調べてみたところ、jQuery の既知のバグの様だ。 ちなみに、IE7 on Windows XP SP3 や Firefox on Mac OS X では発生しなかった。
この問題に関しては むつらつれづれさんの「jQueryでoption要素を追加した際の諸問題」というエントリに原因から解決策まで書いてある。多謝。

私は

option要素を増やした直後に
$('#target').width();
で回避した。

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

Oct 14, 2008

[Misc] WEP の完全な終焉

WEP によるセキュリティが誰にでも簡単に破れてしまう時代がやって来た様だ。 一年程前に WEP を 1 分で破ることが出来るという論文が発表されていたが、今回は 10 秒程度で破ることが出来、しかもその作業に特殊な制約が要らないという恐ろしい論文が発表された。 とりあえず前回と今回の論文に関する情報を集めてみた。

2008 の論文 : "現実的なWEPの鍵導出法"

CSS2008において,WEPを一瞬にして解読する方法を提案しました.
http://srv.prof-morii.net/~morii/#CSS20081009
我々の方法を用いることによって,任意のIPパケットを1万パケットから2万パケット収集することによって,WEP鍵(104ビット)を導出することが可能です.数年前からWEPの危険性が指摘されているとはいえ,現在でも多くの組織,機関,企業,それに個人がWEPを利用しています. 無線LANを導入している企業の50%以上がWEPを利用しているという報告 もあります.現実にはWEPが今だ利用されているわけです.この主たる理由は,脆弱性があるとはいえ,実際には瞬時に解くことはできず,それなりの準備と不正アクセスを行う等の能動的な攻撃(行為)が必要であり,簡単には解けなかったのです.我々が提案した方法によって,安価なノートパソコンを用いて,簡単にWEP の104ビット鍵を導出することができるようになりました.

一般的な環境で10秒でWEPを解読できる手法が登場
http://slashdot.jp/security/08/10/14/0726252.shtml
一瞬にして無線LANのWEPを解読する方法がついに登場、まもなく解読プログラムを公開予定
http://gigazine.net/index.php?/news/comments/20081013_wep_morii/

2007 年の論文 : "Breaking 104 bit WEP in less than 60 seconds"

Breaking 104 bit WEP in less than 60 seconds
http://eprint.iacr.org/2007/120.pdf
We demonstrate an active attack on the WEP protocol that is able to recover a 104-bit WEP key using less than 40,000 frames with a success probability of 50%. In order to succeed in 95% of all cases, 85,000 packets are needed. The IV of these packets can be randomly chosen. This is an improvement in the number of required frames by more than an order of magnitude over the best known key-recovery attacks for WEP. On a IEEE 802.11g network, the number of frames required can be ob- tained by re-injection in less than a minute. The required computational effort is approximately 220 RC4 key setups, which on current desktop and laptop CPUs is negligible.

aircrack-ptw
http://www.cdc.informatik.tu-darmstadt.de/aircrack-ptw/
104ビットWEPは1分あれば破れる
http://slashdot.jp/security/07/04/03/2243222.shtml
「104ビットのWEPを60秒足らずで破る」論文が公開
http://www.atmarkit.co.jp/news/200704/05/wep.html
暗号化技術WEP、今度こそ最期を迎えるか
http://www.atmarkit.co.jp/news/200704/09/wep.html

WEP の危険性に関する情報

Stop using WEP encryption!
http://www.sophos.com/blogs/gc/g/2008/10/08/stop-using-wep-encryption/
Tips for securing your wireless connection
http://www.sophos.com/security/best-practice/wi-fi.html
英Sophos、WEPの利用禁止を呼びかけ
http://internet.watch.impress.co.jp/cda/news/2008/10/09/21123.html

さて、ではどうしようか

これで、Nindo DS が 2000 万台以上出荷されている我が国は、国内全土がフリースポット化されたわけだ。 便利な世の中と言えなくもないが、流石に見ず知らずの人間が自宅内 LAN にローカルアクセスしてくるのは避けたい。 とは言え、Nintendo DS、Wii のネットアクセスも捨てがたい、という場合にはどうしたら良いだろうか?

  • Mac アドレスフィルタリングを使う。
  • ルータを 3 台設置する。
    1. ISP に直接接続されるルータ (A)。無線 LAN は使用しない。
    2. 自宅内 LAN 環境を提供するルータ (B)。ルータ A にぶら下がる。無線 LAN は WPA2 などセキュアなものを使用。ルータ C からのパケットは受け付けない。
    3. WEP 環境を提供するルータ (C)。ルータ A にぶら下がる。セキュアではないという前提で利用。
Mac アドレスは詐称できるのでルータ C への侵入は防ぎようがないが、少なくともルータ B のセグメントはかなり安心して使用できる。 現実的にはこの程度が妥協点だろうか。 無線 LAN クライアント毎に接続方式を変えるルータも発売されている様なので、費用対効果を考えればこれを使用するという手もある。 「WEP接続子機からAES/TKIP接続子機にアクセスできないよう制限可能」と書いてあるし。 ただ、ソフトウェアレベルでの制限だろうからどこまで信用できるのか、というのは気になるところではある。 やはりルータを複数台設置する方が個人的には良さそうだ。

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

Oct 04, 2008

[Misc] Eclipse 3.5 メモ

気付いたら Eclipse 3.5 も既に M2 が出ていた。 M2 なので乗り換えるわけにはいかないが、とりあえずどういう機能が追加されているのか確認してみた。

eclipse project downloads
http://download.eclipse.org/eclipse/downloads/
Eclipse 3.5 M1 - New and Noteworthy
http://download.eclipse.org/eclipse/downloads/drops/S-3.5M1-200808071402/3.5M1/eclipse-news-M1.html
Eclipse 3.5 M2 - New and Noteworthy
http://download.eclipse.org/eclipse/downloads/drops/S-3.5M2-200809180100/eclipse-news-M2.html

今のところ、個人的に嬉しい機能は特に追加されていないな。

試しにダウンロードしてみたら、3.5M2 では Subclipse がインストールできなかった。

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

Oct 01, 2008

[Misc] FireFox のアドオンをメモ

FireFox で重宝しているアドオンをメモしておく。

Firebug
Web Development Evolved.
https://addons.mozilla.org/ja/firefox/addon/1843
Flashblock
Replaces Flash objects with a button you can click to view them.
https://addons.mozilla.org/ja/firefox/addon/433
Live HTTP headers
ウェブページとブラウジング中の HTTP ヘッダを表示します。
https://addons.mozilla.org/ja/firefox/addon/3829
NoScript
Extra protection for your Firefox: NoScript allows JavaScript, Java (and other plugins) only for trusted domains of your choice (e.g. your home-banking web site).
https://addons.mozilla.org/ja/firefox/addon/722
SearchStatus
Display the Google PageRank and Alexa ranking with search-related tools.
https://addons.mozilla.org/ja/firefox/addon/321
Selenium IDE
Record, edit and play Selenium tests.
https://addons.mozilla.org/ja/firefox/addon/2079
Server Switcher
開発と本番のサーバを切り替えます。
https://addons.mozilla.org/ja/firefox/addon/2409
User Agent Switcher
Adds a menu and a toolbar button to switch the user agent of the browser.
https://addons.mozilla.org/ja/firefox/addon/59
Web Developer
Adds a menu and a toolbar with various web developer tools.
https://addons.mozilla.org/ja/firefox/addon/60

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

Sep 10, 2008

[Misc] Putty の鍵 (*.ppk) を OpenSSH 形式に変換する方法をメモ

Windows 時代は Putty を愛用していたが、Mac OS X に移行して Putty を使わなくなった。 手元には大量の ppk ファイルが orz。 Mac OS X の ssh でも使用出来るように OpenSSH 形式に変換しておいた。

変換方法

Putty に付属の PUTTYGEN.EXE で ppk を OpenSSH 形式に変換できる。 PUTTYGEN.EXE を起動して、ppk を読み込み、OpenSSH でエクスポートするだけ。
[PUTTYGEN.EXE(1)] [PUTTYGEN.EXE(2)]

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

Sep 04, 2008

[Misc] Google Chrome on Mac OS X のビルドにチャレンジ

とりあえず Windows XP Professional では Google Chrome が動作したので、次は Mac OS X で動かないか調べてみた。 現時点(2008/09/04)では、 Google Chrome のサイトでは Mac OS X 用のバイナリは公開されていない。 が、ドキュメントを見ていたら Mac OS X でのビルド方法が公開されていた。 というわけで、さっそくチャレンジ。

Chrome Developer Documentation - Build Instructions (Mac OS X)
http://dev.chromium.org/developers/how-tos/build-instructions-os-x

Google Chrome のソースコードを入手

まずは depot_tools をダウンロードして実行できる様にする。

$ tar zxvf ./depot_tools_mac.tar.gz
depot_tools/.svn/
depot_tools/.svn/text-base/
depot_tools/.svn/text-base/gcl.svn-base
depot_tools/.svn/text-base/gclient.svn-base
depot_tools/.svn/text-base/hammer.svn-base
depot_tools/.svn/text-base/README.svn-base
depot_tools/.svn/prop-base/
  (略)
$ export PATH=`pwd`/depot_tools:$PATH
次に、depot_tools 内にある gclient を使用して Chrome のソースコードをダウンロードする。
$ mkdir -p ./src/trunk
$ cd ./src/trunk/
$ gclient config http://src.chromium.org/svn/trunk/src
checking out latest depot_tools...
$ gclient sync

________ running 'svn checkout http://src.chromium.org/svn/trunk/src src' in '/chrome/src/trunk'
A    src/sdch
A    src/sdch/using_sdch.vsprops
A    src/sdch/open_vcdiff
A    src/sdch/open_vcdiff/depot
A    src/sdch/open_vcdiff/depot/opensource
A    src/sdch/open_vcdiff/depot/opensource/open-vcdiff
  (略)
$
Chrome のソースコードがダウンロードできたら、XCode を使用してビルドを行う。
$ xcodebuild -version
Component versions: DevToolsCore-921.0; DevToolsSupport-893.0
$ xcodebuild -project ./src/trunk/src/webkit/tools/test_shell/mac/TestShell.xcodeproj
2008-09-04 00:50:54.203 xcodebuild[22183:613] NOTE: Referenced project Skia was written by a newer Xcode version (45) -- temporarily downgrading it (without modifying project file)
2008-09-04 00:50:54.254 xcodebuild[22183:613] NOTE: Referenced project net was written by a newer Xcode version (45) -- temporarily downgrading it (without modifying project file)
  (略)
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp:75: error: ‘v8’ has not been declared
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp:75: error: expected constructor, destructor, or type conversion before ‘<’ token
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp:82: error: ‘v8’ has not been declared
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp:82: error: ‘char**’ is not a template
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp:82: error: ‘v8’ has not been declared
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp:82: error: ‘Value’ was not declared in this scope
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp: In static member function ‘static bool WebCore::V8BarInfo::HasInstance(char**)’:
/chrome/src/trunk/src/webkit/build/Release/DerivedSources/v8/bindings/V8BarInfo.cpp:83: error: ‘GetRawTemplate’ was not declared in this scope
** BUILD FAILED **
$ 
ビルド失敗 orz コマンドラインではなく XCode の GUI からもビルドしてみたが、結果は同じ。 Chrome のソースコードを gclient でダウンロードしたものではなく、tar.gz で公開されているものにしてみたが、それでもだめ。

・・・で。

結局現時点では Mac OS X 版をビルドすることはできない様だ。 中の人がブログで Mac OS X 版の現状を説明していた。 モジュール単位ではビルドできるらしいが、全体のビルドは無理とのこと。 残念。 早く Mac OS X 版が出て欲しいものだ。

Google Mac Blog - Platforms and Priorities
http://googlemac.blogspot.com/2008/09/platforms-and-priorities.html
When it comes to Mac and Linux versions, this means that our goal is not to just "port" a Windows application to these other platforms--rather, our goal is to deliver Chromium's innovative, Google-style user interface without rough edges on any of them. Chromium's overall design has been multi-platform from the start, but we are also committed to getting the details right for users on each platform.

(略)

Right now, both are in the "pieces build and pass tests, but there's no Chromium application yet." While we're working hard and fast on catching up to the Windows version, we're not setting an artificial date for when they'll be ready--we simply can't predict enough to make a solid estimate, and we expect to learn a lot from the Windows public beta as well. On the plus side, since the project is now public, you'll be able to watch (and maybe even contribute to) the progress from week to week. As these versions stabilize, we will create official betas, much as we are now for the Windows version. While we can't give any dates yet, we'll keep everyone informed as we get closer.

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

[Misc] Google Chrome のタスクマネージャの Always on top を解除する方法

Google Chrome をぼーっと眺めていたら、タスクマネージャの Always on top を解除する方法を見つけた。 ・・・だから何だ、と言われても困るが。

編集するファイルは
C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Local State

task_manager の always_on_top がデフォルトで "true" になっているので、"false" に変えて Google Chrome を再起動する。

{
   "task_manager": {
      "window_placement": {
         "always_on_top": true,
         "bottom": 599,
         "left": 452,
         "maximized": false,
         "right": 920,
         "top": 300
      }
   },
}

[AlwaysOnTopが解除できた]

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

[Misc] Google Chrome の User-Agent

Google Chrome の User-Agent を調べてみた。 2008/09/03 にダウンロードした Windows 用のバイナリでは以下の User-Agent が使用される。

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

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

Sep 03, 2008

[Misc] Google Chrome にチャレンジ

Google が Chrome という独自 Web ブラウザを公開した。 インストールしてみないことには始まらないので、とりあえずインストールしてみた。

Google Chrome
http://www.google.com/chrome/
Google Chrome - 機能
http://www.google.com/chrome/intl/ja/features.html

インストールの風景

[Chrome をダウンロード] [Chrome をインストール中]
[Chrome のインストール準備完了]

Google Chrome を使ってみた

[Chrome が起動した] [とりあえずここを表示できた]
[シークレットモード] [タスクマネージャ]

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

Sep 01, 2008

[Misc] web.xml を分割する方法

久しぶりに Servlet を書くことになった。 Servlet ベースで Web アプリケーションを書くと web.xml がすぐにカオスになってしまうのが難点。 Servlet Specification 2.4 では XMLSchema が導入されたので、DTD を使用していた Servlet Specification 2.3 以前に比べると web.xml を分割し易くなっている。 というわけで、混沌としてくる前に web.xml を分割していくことにした。

web.xml の分割方法

web.xml の分割は非常に簡単。 web.xml 用の特別な方法があるわけではなく、XML の実体参照を使用するだけ。

web.xml はこんな感じ。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app [
<!ENTITY function0 SYSTEM "web-function0.xml">
<!ENTITY function1 SYSTEM "web-function1.xml">
]>

<web-app xmlns="​http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="​http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="​http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
	version="2.5">

	&function0;
	&function1;

</web-app>
web.xml 内で参照されている web-function0.xml はこんな感じ。 Servlet 2.3 までの <servlet> と <servlet-mapping> との順序の制約が無くなったので、web-funcion0.xml が読み易い。
<servlet>
	<servlet-name>jp.in_vitro.function0.FooServlet</servlet-name>
	<servlet-class>jp.in_vitro.function0.FooServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>jp.in_vitro.function0.FooServlet</servlet-name>
	<url-pattern>/function0/foo</url-pattern>
</servlet-mapping>

<servlet>
	<servlet-name>jp.in_vitro.function0.BarServlet</servlet-name>
	<servlet-class>jp.in_vitro.function0.BarServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>jp.in_vitro.function0.BarServlet</servlet-name>
	<url-pattern>/function0/bar</url-pattern>
</servlet-mapping>

それにしても <url-pattern> の表現能力の貧弱さは何とかならないものか。 今時 Servlet ベースの開発はつらい。

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

Aug 19, 2008

[Misc] HP System Management Homepage を CentOS 5.2 にインストールしてみた。

HP System Management Homepage: Installation Guide
http://docs.hp.com/en/438862-009/index.html
HP System Management Homepage for Linux (x86)
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=us&prodTypeId=15351&prodSeriesId=1121486&prodNameId=3288144&swEnvOID=4006&swLang=8&mode=2&taskId=135&swItem=MTX-1b359c812b2e419ba234be0117
System Management Homepageによるハードウェア障害監視
http://www.thinkit.co.jp/free/article/0611/13/2/

HP SMH のインストール

HP のサイトから System Management Homepage for Linux (hpsmh-2.1.12-200.i386.rpm) をダウンロードする。 その後、RPM を使用して普通にインストール。 ・・・するが、やはり駄目。

# rpm --checksig ./hpsmh-2.1.12-200.i386.rpm 
./hpsmh-2.1.12-200.i386.rpm: sha1 md5 OK
# rpm -i --test ./hpsmh-2.1.12-200.i386.rpm 
# rpm -ivh ./hpsmh-2.1.12-200.i386.rpm 
Preparing...                ########################################### [100%]
This Red Hat Linux distribution is not supported.
error: %pre(hpsmh-2.1.12-200.i386) scriptlet failed, exit status 1
error:   install: %pre scriptlet failed (2), skipping hpsmh-2.1.12-200
#

ディストリビューションがサポートされていないということなので、ディストリビューションを詐称してみる。 今度は上手くいった。

# cp /etc/redhat-release /etc/redhat-release.original
# vi /etc/redhat-release
# diff /etc/redhat-release.original /etc/redhat-release
1c1
< CentOS release 5.2 (Final)
---
> Red Hat Enterprise Linux AS release 5
# rpm -ivh ./hpsmh-2.1.12-200.i386.rpm 
Preparing...                ########################################### [100%]
Creating hpsmh user and group...
   1:hpsmh                  ########################################### [100%]

**********************************************************
* System Management Homepage installed successfully with *
* default configuration values.   To change the default  *
* configuration values,  type the following command at   *
* the root prompt:                                       *
*                                                        *
* perl /usr/local/hp/hpSMHSetup.pl                       *
*                                                        *
**********************************************************


Stopping hpsmhd: 
Starting hpsmhd: 

hpsmhd: Could not determine the server's fully qualified domain name, using 10.1.31.33 for ServerName
[  OK  ]
# rm /etc/redhat-release
rm: remove regular file `/etc/redhat-release'? yes
# mv /etc/redhat-release.original /etc/redhat-release

HP SMH の設定

HP SMH の設定はインストール時に表示された通り以下のスクリプトで行う。

# perl /usr/local/hp/hpSMHSetup.pl

HP SMH にアクセス

Web ブラウザで http://localhost:2381/ にアクセスする。

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

Jul 03, 2008

[Misc] ratproxy にチャレンジ

ratproxy とは

ratproxy は Google がオープンソースで公開した Web アプリケーションの脆弱性をチェックする HTTP proxy。

A semi-automated, largely passive web application security audit tool, optimized for an accurate and sensitive detection, and automatic annotation, of potential problems and security-relevant design patterns based on the observation of existing, user-initiated traffic in complex web 2.0 environments.
Mac OS X でも動くということなので試してみた。
ratproxy
http://code.google.com/p/ratproxy/

ratproxy のインストール

Mac OS X 10.4 (Tiger) と 10.5 (Leopard) で試してみた。

$ tar zxvf ./ratproxy-1.51.tar.gz
$ cd ./ratproxy
$ make
cc ratproxy.c -o ratproxy  -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE http.c mime.c ssl.c -lcrypto -lssl

*** WARNING: flare-dist/flare bianry is not operational.
*** Please see flare-dist/README and update it for your OS.
$
というわけで、早速怒られた(といっても単なる警告だけれど)。 flare-dist/README を読めということなのでとりあえず見てみることに。

$ vi ./flare-dist/README
This is a Linux binary of Flare ActionScript decompiler. If instructed
to do so, ratproxy will invoke this tool to decompile SWF files on the
fly.

If you intend to run ratroxy on a different operating system, you may
need use the following binaries instead:

http://www.nowrap.de/download/flare06mac.tgz
ratproxy に同梱されている flare という SWF の逆コンパイラが Mac OS X 用ではないということらしい。 有り難いことに別途 Mac OS X 用のバイナリが用意されているらしいので、いそいそとダウンロード。 同梱の flare を Mac OS X 用のバイナリで上書きして、make をやり直してみる。

$ cd ..
$ tar zxvf ./flare06mac.tgz
$ cp ./flare06mac/* ./ratproxy/flare-dist/
$ cd ./ratproxy
$ make
cc ratproxy.c -o ratproxy  -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE http.c mime.c ssl.c -lcrypto -lssl

$ chmod 755 ./ratproxy
$ ./ratproxy
ratproxy version 1.51-beta by 
[!] WARNING: Running with no command-line config options specified. This is
    almost certainly not what you want, as most checks are disabled. Please
    consult the documentation or use --help for more information.

[*] Proxy configured successfully. Have fun, and please do not be evil.
[+] Accepting connections on port 8080/tcp (local only)...
^C
$
今度は警告も無くコンパイルが完了した。 とりあえず動かしてみたところ何事もなく動作した模様。

ratproxy で脆弱性をチェックしてみる

ratproxy が動くようになったところで、早速脆弱性をチェックしてみる。 まずは Web ブラウザの proxy 設定で localhost:8080 を proxy として登録する。 後は普通にチェックしたいサービスにアクセスするだけ。 すると下記の様なログが出力される。

$ ./ratproxy -lxtiscgjmXC
ratproxy version 1.51-beta by 

[!] WARNING: Running with no 'friendly' domains specified. Many cross-domain
    checks will not work. Please consult the documentation for advice.

[*] Proxy configured successfully. Have fun, and please do not be evil.
    WARNING: Disruptive tests enabled. use with care.
[+] Accepting connections on port 8080/tcp (local only)...
1|3|Risky Javascript code|innerHTML|200|31742|text/html|application/xhtml+xml|UTF-8|-|GET|
http://example.com:80/someservice/hoge|-|-|\r\n<?xml version=
1|1|Bad or no charset declared for renderable file|-|200|124136|application/x-javascript|a
pplication/x-javascript|-|-|GET|http://example.com:80/someservice/script/prototype.js|-|-|
1|1|Markup in dynamic Javascript|-|200|124136|application/x-javascript|application/x-javas
cript|-|-|GET|http://example.com:80/someservice/script/prototype.js|-|-|
1|1|Risky Javascript code|document.write|200|124136|application/x-javascript|application/x
-javascript|-|-|GET|http://example.com:80/someservice/common/js/prototype.js|-|-|
3|3|Inline PNG image|-|200|21640|image/png|image/png|-|-|GET|http://example.com:80/someser
vice/dummy.png|-|-|‰PNG\r\n\x1a\n
0|1|HTTP errors|-|404|209|text/html|text/html|iso-8859-1|-|GET|http://demo.beat.co.jp:80/f
avicon.ico|-|-|<!DOCTYPE HTML PUBLIC "
1|1|Bad or no charset declared for renderable file|-|200|1010|text/javascript|text/javascr
ipt|-|-|GET|http://example.com:80/someservice/scruot/selectbox.js|-|-|var 
0|3|Dynamic Javascript for direct inclusion|-|200|844|text/javascript|text/javascript|UTF-
8|-|GET|http://example.com:80/someservice/script/baselistdisplay.js|-|-|\r\nvar
0|7|GET query with no XSRF protection|-|200|11074|text/javascript|text/javascript|utf-8|-|
GET|http://www.google.com:80/uds/api?
1|7|File name in query parameters|uds.js|200|11074|text/javascript|text/javascript|utf-8|-
|GET|http://www.google.com:80/uds/api?file=uds.js
1|7|XSS candidates (script)|key|200|11074|text/javascript|text/javascript|utf-8|-|GET|http:
//www.google.com:80/uds/api?file=uds.js
2|3|MIME type set to text/plain|-|200|8847|text/plain|application/x-javascript|UTF-8|-|GET|
http://example.com:80/someservice/dosomething|-|-|[{"
2|3|MIME type mismatch on renderable file|-|200|8847|text/plain|application/x-javascript|UT
F-8|-|GET|http://example.com:80/someservice/dosomething|-|-|[{"
というわけで、少し遊んだだけで中々興味深い結果を得ることができた。 真面目に使えばそれなりの効果を得られそうだ。

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

Mar 10, 2008

[Misc] AIPO にチャレンジ

AIPO とは

AIPO は日本初のオープンソースグループウェア。 Java で構築されており、Apache Turbine, Portlet などをベースとしている。 面白そうなので試しに動かしてみた。

AIPO
http://aipostyle.com/

AIPO のインストール

以降の情報は aipo4000ja_linux.tar.gz を前提とする。 AIPO の公式サイトに記載のある Linux 動作環境は CentOS 5.0 のみだったが、 CentOS の環境を用意するのが面倒だったので Debian Sarge 上で動かしている。 当然付属のインストーラは動作しなかったが、手動でインストールしたら動いた(様に見える)。 まぁ、Java だしね。

AIPO アーカイブの解凍

# tar zxvf ./aipo4000ja_linux.tar.gz
aipo/backup/
aipo/backup/postgresql/
aipo/backup/postgresql/empty_dump/
 :
aipo/src/webapps/ROOT/error/404.html
aipo/src/webapps/ROOT/index.html
aipo/src/webapps/ROOT/WEB-INF/web.xml
# mv ./aipo ./aipo4000ja_linux
# mv ./aipo4000ja_linux /usr/local/
# cd /usr/local/aipo/src/
# ln -s ./aipo4000ja_linux ./aipo
# tar zxvf ./jakarta-tomcat-5.0.28.tar.gz 
jakarta-tomcat-5.0.28/bin/catalina.sh
jakarta-tomcat-5.0.28/bin/digest.sh
jakarta-tomcat-5.0.28/bin/setclasspath.sh
 :
jakarta-tomcat-5.0.28/webapps/webdav/index.html
jakarta-tomcat-5.0.28/webapps/webdav/tomcat-power.gif
jakarta-tomcat-5.0.28/webapps/webdav/tomcat.gif
# mv ./jakarta-tomcat-5.0.28 /usr/local/aipo
# cd /usr/local/aipo
# ln -s ./jakarta-tomcat-5.0.28 ./tomcat

AIPO を Apache Tomcat にディプロイ

# rm -rf /usr/local/aipo/tomcat/webapps/*
# cp -rf /usr/local/aipo/src/webapps/* /usr/local/aipo/tomcat/webapps
# cp /usr/local/aipo/src/tools.jar /usr/local/aipo/tomcat/common/lib
# cp /usr/local/aipo/src/postgresql-8.1/postgresql-8.1-407.jdbc3.jar /usr/local/aipo/tomcat/common/lib

PostgreSQL の準備

AIPO が DBMS に接続する際に使用するアカウント情報と DB 名を調べる。 /usr/local/aipo/tomcat/webapps/aipo/WEB-INF/conf/postgres/Org001DomainNode.driver.xml に記載があった。

DB 名
org001
ユーザ名
aipo_postgres
パスワード
aipo
ちなみに、付属のインストーラを使用してインストールを行う場合は、これらの値は適宜変更される。

# createuser aipo_postgres -P -U postgres
Enter password for new role: 
Enter it again: 
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
# createdb -E UTF-8 org001 -U aipo_postgres
CREATE DATABASE
# psql -U aipo_postgres -d org001 -f /usr/local/aipo/backup/postgresql/sample_dump/aipo_db_sql.dump 
SET
SET
SET
GRANT
psql:../../backup/postgresql/sample_dump/aipo_db_sql.dump:2781: WARNING:  no privileges were granted
GRANT
# cp -rf /usr/local/aipo/backup/postgresql/sample_dump/psml /usr/local/aipo/tomcat/webapps/aipo/WEB-INF
# cp -rf /usr/local/aipo/backup/postgresql/sample_dump/files /usr/local/aipo/tomcat/webapps/aipo/WEB-INF
# cp -rf /usr/local/aipo/backup/postgresql/sample_dump/mail /usr/local/aipo/tomcat/webapps/aipo/WEB-INF

Apache Tomcat の起動

# export JAVA_HOME=/opt/jdk1.5.0_12
# cd /usr/local/aipo/tomcat/bin
# ./startup.sh 
Using CATALINA_BASE:   /usr/local/aipo/tomcat
Using CATALINA_HOME:   /usr/local/aipo/tomcat
Using CATALINA_TMPDIR: /usr/local/aipo/tomcat/temp
Using JAVA_HOME:       /opt/jdk1.5.0_12/

動作確認

http://localhost:8080/aipo/ にアクセスすると AIPO のトップページが表示される。 デフォルトのユーザが 3 人表示され、それぞれパスワード無しでログインできる。

[AIPO TOP] [AIPO HOME]

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

Dec 05, 2007

[Misc] IE6 と IE7 の同居にチャレンジ

チャレンジも何も。 やり方を丁寧に説明してくれているサイトがあったのでその通りやってみただけ。 Altstack さん、TredoSoft さん、Microsoft さん(?) に感謝。

IE6とIE7の同居と、Windowsでwebkit(Safari)の表示確認
http://www.altstack.com/weblog/archives/2007/03/28/index.php
Windows XP SP2 向け Windows Internet Explorer 7
http://www.microsoft.com/downloads/details.aspx?FamilyId=9AE91EBE-3385-447C-8A30-081805B2F90B&displaylang=ja
Internet Explorer 7 running side by side with IE6. (standalone)
http://tredosoft.com/IE7_standalone
[IE6 and IE7]

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

Nov 21, 2007

[Misc] Eclipse 3.3.1.1 の "Ctrl contrib"

Eclipse 3.3 -> 3.3.1.1 にアップグレードしたら左下に "Ctrl contrib" という不思議なコンポーネントが現れた。 押しても無反応。引いても(?)無反応。 調べてみたら Eclipse SDK Examples というものだった。 Examples を表示しておく必要もないのでとりあえず消しておいた。

[Ctrl Contrib]

"Ctrl contrib" の消し方

  1. "Help" -> "Software Updates" -> "Manage Configuration" を実行。
  2. "Eclipse SDK Examples" を選択。
  3. "Disable" のリンクをクリック。

[Ctrl Contrib]

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

Nov 13, 2007

[Misc] Android SDK にチャレンジ

Android SDK が公開されたので、少し遊んでみた。 とりあえず SDK を入れて、Eclipse でプロジェクトの作成→パッケージ作成→エミュレータ上で動作確認。 特に困ることもなく簡単に遊ぶことができた。

Android - An Open Handset Alliance Project
http://code.google.com/android/index.html
Download the Android SDK
http://code.google.com/android/download.html
Android Developers Blog
http://android-developers.blogspot.com/

Android SDK のインストール

ここからアーカイブをダウンロードして解凍するだけ。android_sdk_darwin_m3-rc20a.zip を使用した。

Android Eclipse plugin のインストール

Eclipse の Software Update 機能で簡単にインストールできる。 アップデートサイトは https://dl-ssl.google.com/android/eclipse/ 。
[Installing Android Eclipse plugin] [Installing Android Eclipse plugin] [Installing Android Eclipse plugin] [Installing Android Eclipse plugin]

Android Eclipse plugin の設定

Android Eclipse plugin を使用するには Android SDK のパスを設定する必要がある。 Window -> Preferences -> Android を表示し、Android SDK のパスを指定する。
[Setting Android Eclipse plugin]

Android Project を作成する

Project の作成画面を開くと、Android Project が作成できるようになっている。 Android Project を作成し、適当にソースコードをいじって、実行。 実行すると Android emulator が起動して作成したコードが動作する。
[Android Project] [Android Project] [Android Project]
[Android emulator] [Android emulator]

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

Nov 09, 2007

[Misc] quickSub にチャレンジ

quickSub とは

百聞不如一見。 → RSS

というもの。 便利かどうか分からないけれど、まぁ、動きがあって面白いということでここにも適用してみた。

quickSub
http://www.methodize.org/quicksub/

quickSub の使い方

とても簡単。ドキュメントに書いてある通りなので、 取り立てて書くこともないのだけれど、一応。

<html>
<head>
  <link rel="stylesheet" href="/blog/quicksub.css" type="text/css" />
  <script type="text/javascript" src="/blog/quicksub.js"></script>
</head>
<body>
  <a href="$url/index.rss" 
     onmouseout="return timeqs();" 
     onmouseover="return quicksub(this, 'http://www.in-vitro.jp/blog/index.cgi/index.rss');">
    <img src="/blog/rss.png" alt="RSS" style="border:none;"/>
  </a>
  <div id="quickSub" 
       style="position:absolute; visibility:hidden; z-index:1000;" 
       onMouseOut="return timeqs();" 
       onMouseMove="return delayqs();">
  </div>
</body>
</html>
こんな感じ。

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

Nov 08, 2007

[Misc] Interface elements for jQuery にチャレンジ

Interface elements for jQuery とは

jQuery は

jQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages. jQuery is designed to change the way that you write JavaScript.
というもの。で、Interface elements for jQuery は
Interface is a collection of rich interface components which utilizes the lightweight JavaScript library jQuery.
というもの。

今回は Interface elements for jQuery の中の ImageBox をここに適用してみた。
ImageBox というのはこういうもの(画像をクリック) → [in-vitro.jp's logo]
Interface elements for jQuery
http://interface.eyecon.ro/
jQuery
http://jquery.com/

ImageBox の使い方

とても簡単。jquery.js, interface.js をダウンロードしてきて、後は HTML を少しいじるだけ。 <a> タグの title 属性が ImageBox の左下に表示される画像のタイトルとして使用される。 rel 属性は画像のグルーピングに使用される。例えば、rel="imagebox-travel" を指定した画像を 3 枚用意すると、タイトルの下に「Showing image 3 from 1」 と表示される。 またグルーピングを使用するとスライドショーも可能となる(様だ)。

<html>
<head>
  <script type="text/javascript" src="/blog/jquery.js"></script>
  <script type="text/javascript" src="/blog/interface.js"></script>
  <link rel="stylesheet" href="/blog/interface.css" type="text/css" />
</head>
<body>
  <a href="/images/sample.png" title="Sample Image" rel="imagebox">
    <img src="/images/sample-thumbnail.png" alt="Sample Image"/>
  </a>
  <script type="text/javascript">
<!--
$(document).ready(
  function() {
    $.ImageBox.init(
      { loaderSRC: '/blog/loading.gif',
        closeHTML: '<img src="/blog/close.jpg" />' }
    );
  }
);
//-->
  </script>
</body>
</html>
HTML はこんな↑感じ。interface.css はこんな↓感じ。
#ImageBoxOverlay {
  background-color: #000000;
}
#ImageBoxCaption {
  background-color: #FFFFFF;
}
#ImageBoxContainer {
  width: 250px;
  height: 250px;
  background-color: #FFFFFF;
}
#ImageBoxCaptionText {
  font-weight: bold;
  padding-bottom: 5px;
}
#ImageBoxCaptionImages {
  margin: 0;
}

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

Nov 04, 2007

[Misc] Wapiti にチャレンジ

Wapiti とは

Wapiti は Web アプリケーションの脆弱性チェックを行うスキャナ。

Wapiti can detect the following vulnerabilities :

  • File Handling Errors (Local and remote include/require, fopen, readfile...)
  • Database Injection (PHP/JSP/ASP SQL Injections and XPath Injections)
  • XSS (Cross Site Scripting) Injection
  • LDAP Injection
  • Command Execution detection (eval(), system(), passtru()...)
  • CRLF Injection (HTTP Response Splitting, session fixation...)
この類のソフトウェアは有償のものが多いのだけれど、Wapiti は珍しくオープンソースでフリー。 というわけで、インストールして実際に自作のサンプルアプリをチェックしてみた。
Wapiti - Web application vulnerability scanner / security auditor
http://wapiti.sourceforge.net/

Wapiti のインストール

Wapiti は Python で実装されているので、python の実行環境があればすぐに使用できる。 ここでは Mac OS X (Tiger) に MacPorts を使用して Python とその他必要となるライブラリをインストールした。

$ sudo port install python25
Password:
--->  Fetching python25
--->  Attempting to fetch Python-2.5.1.tar.bz2 from http://www.python.org//ftp/python/2.5.1/
--->  Verifying checksum(s) for python25
--->  Extracting python25
--->  Applying patches to python25
--->  Configuring python25
--->  Building python25 with target all
--->  Staging python25 into destroot
--->  Installing python25 2.5.1_2+darwin_8
--->  Activating python25 2.5.1_2+darwin_8
--->  Cleaning python25
$ /opt/local/bin/python2.5 -V
Python 2.5.1
$ sudo port install py25-hashlib
--->  Fetching py25-hashlib
--->  Verifying checksum(s) for py25-hashlib
--->  Extracting py25-hashlib
--->  Configuring py25-hashlib
--->  Building py25-hashlib with target build
--->  Staging py25-hashlib into destroot
--->  Installing py25-hashlib 2.5.1_0
--->  Activating py25-hashlib 2.5.1_0
--->  Cleaning py25-hashlib
$ sudo port install py25-socket-ssl
--->  Fetching py25-socket-ssl
--->  Verifying checksum(s) for py25-socket-ssl
--->  Extracting py25-socket-ssl
--->  Configuring py25-socket-ssl
--->  Building py25-socket-ssl with target build
--->  Staging py25-socket-ssl into destroot
--->  Installing py25-socket-ssl 2.5.1_0
--->  Activating py25-socket-ssl 2.5.1_0
--->  Cleaning py25-socket-ssl
$

Wapiti によるサンプルアプリケーションのスキャン

サンプルアプリケーションのセッション取得

スキャンを行う前に、まずはサンプルアプリケーションにログインする。 Wapiti にログイン用の URL, アカウント情報を指定してサンプルアプリケーションにログインさせ、セッション維持用の Cookie をファイルに保存しておく。

$ /opt/local/bin/python2.5 getcookie.py cookies.txt http://127.0.0.1:8080/sample/login
lswww will be far less effective without tidy
please install libtidy ( http://tidy.sourceforge.net/ ),
ctypes ( http://starship.python.net/crew/theller/ctypes/ )
and uTidylib ( http://utidylib.berlios.de/ )
Please enter values for the folling form :
url = http://127.0.0.1:8080/sample/login
loginname (on) : scott
loginpassword (on) : tiger
0 : <Cookie JSESSIONID=6E4E47C3C907D6EF9C0771920220AC135 for 127.0.0.1/sample>
$

サンプルアプリケーションのスキャン

XSS を仕込んだサンプルアプリケーションをでっち上げてスキャンしてみた。 要は GET で取得した値をそのままレスポンスの HTML に埋め込んだだけ。

$ /opt/local/bin/python2.5 wapiti.py http://127.0.0.1:8080/sample/ -c cookies.txt -x 
http://127.0.0.1:8080/sample/logout
lswww will be far less effective without tidy
please install libtidy ( http://tidy.sourceforge.net/ ),
ctypes ( http://starship.python.net/crew/theller/ctypes/ )
and uTidylib ( http://utidylib.berlios.de/ )
Wapiti-1.1.6 (wapiti.sourceforge.net)
........................................................
Attacking urls (GET)...
-----------------------
XSS (danger_value) in http://127.0.0.1:8080/sample/index
        Evil url: http://127.0.0.1:8080/sample/index?danger_value=<script>var
+wapiti_687474703a2f2f3132372e302e302e313a383038302f4242617369632f636f6d6d756e69747
92f4242534c697374_735f305f305f305f305f736f72745470=new+Boolean();</script>
  :
Wapiti は XSS をきちんと検出してくれた。 Wapiti でオールグリーンだからといって安心は出来ないけれど、最小限のセキュリティチェックを自動化できるメリットは大きそう。

ちなみに・・・

必要なライブラリがインストールされていないと Wapiti のスクリプトを実行したときに下記の様なエラーが出る。

ImportError: No module named cookielib
ImportError: No module named _md5
AttributeError: 'module' object has no attribute 'HTTPSHandler'

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

Nov 01, 2007

[Misc] OpenPNE にチャレンジ

OpenPNE とは

OpenPNE はオープンソースの SNS エンジン。 面白そうなのでインストールして動かしてみた。

OpenPNE
http://openpne.jp/

OpenPNE のインストール

OpenPNE を Debian Etch 環境にインストールしてみた。 PHP, MySQL のバージョンは以下の通り。

# php --version
PHP 5.2.0-8+etch7 (cli) (built: Jul  2 2007 21:46:15) 
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
# mysql --version
mysql  Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i486) using readline 5.2

OpenPNE のダウンロードと解凍、設置

OpenPNE をダウンロードして適当な場所に設置する。 OPENPNE_HOME/public_html だけ Apache HTTP Server が直接アクセスする必要があるため /var/www に設置する。 それ以外のファイルは /opt に設置した。

# wget http://internap.dl.sourceforge.net/sourceforge/openpne/OpenPNE-2.10.0.tar.gz
--19:57:52--  http://internap.dl.sourceforge.net/sourceforge/openpne/OpenPNE-2.10.0.tar.gz
           => `OpenPNE-2.10.0.tar.gz'

  :

19:58:20 (187.97 KB/s) - `OpenPNE-2.10.0.tar.gz' saved [5194807/5194807]

# tar zxvf ./OpenPNE-2.10.0.tar.gz 
OpenPNE-2.10.0/
OpenPNE-2.10.0/bin/
OpenPNE-2.10.0/bin/tool_send_dairy_news.cron

  :

OpenPNE-2.10.0/webapp/templates/mail/m_pc_friend_intro.tpl
OpenPNE-2.10.0/webapp/templates/debug.tpl
OpenPNE-2.10.0/webapp/templates/error.tpl
# mv ./OpenPNE-2.10.0 /opt/
# ln -s /opt/OpenPNE-2.10.0 /opt/OpenPNE
# mv /opt/OpenPNE/public_html /var/www/openpne
# chown www-data:www-data -R /var/www/openpne/

OpenPNE の設定

OpenPNE の設定を行う。 設定が必要なのは

  • /var/www/openpne/config.inc.php
  • /opt/OpenPNE/config/php
の 2 つのファイル。 環境に合わせて適当に編集を行う。
# cp /var/www/openpne/config.inc.php /var/www/openpne/config.inc.php.original
# vi /var/www/openpne/config.inc.php
# diff /var/www/openpne/config.inc.php.original /var/www/openpne/config.inc.php
7c7
< define('OPENPNE_DIR', realpath('../'));
---
> define('OPENPNE_DIR', realpath('/opt/OpenPNE'));
# chown www-data:www-data -R /opt/OpenPNE/var/
# cp /opt/OpenPNE/config.php.sample /opt/OpenPNE/config.php
# vi /opt/OpenPNE/config.php

# diff /opt/OpenPNE/config.php.sample /opt/OpenPNE/config.php
7c7
< define('OPENPNE_URL', 'http://sns.example.com/');
---
> define('OPENPNE_URL', 'http://192.168.11.12/openpne/');
13,14c13,14
<     'username' => '',
<     'password' => '',
---
>     'username' => 'openpne',
>     'password' => 'openpne',
16c16
<     'database' => '',
---
>     'database' => 'openpne',
22c22
< define('ENCRYPT_KEY', '');
---
> define('ENCRYPT_KEY', 'password');
26c26
< define('MAIL_SERVER_DOMAIN', 'mail.example.com');
---
> define('MAIL_SERVER_DOMAIN', 'mail.example.co.jp');
# chown www-data:www-data /opt/OpenPNE/config.php

DB の作成

MySQL に DB, ユーザ、テーブルを作成し、初期データを流し込む。

# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 337
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE `openpne` DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on openpne.* to openpne identified by 'openpne';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
# mysql -u openpne -p --default-character-set=utf8 openpne < /opt/OpenPNE/setup/sql/mysql41/install/install-2.10-create_tables.sql 
Enter password: 
# mysql -u openpne -p --default-character-set=utf8 openpne < /opt/OpenPNE/setup/sql/mysql41/install/install-2.10-insert_data.sql   
Enter password: 
#

OpenPNE セットアップ画面表示

Web ブラウザから http://example.com/openpne/?m=setup にアクセスして初回設定を行う。

OpenPNE の利用

トップ画面
http://example.com/openpne/
[openpne] [openpne]
管理コンソール
http://example.com/openpne/?m=admin
[admin console] [admin console]

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

Oct 30, 2007

[Misc] CAPTCHA の安全性についてメモ

CAPTCHA の安全性が話題になっているみたいなのでメモ。

凪瀬 Blog - はてなのCAPTCHAは簡単に破れる
http://blogs.wankuma.com/nagise/archive/2007/10/26/104428.aspx
Radium Software Development - Breaking CAPTCHAs with NNs
http://www.radiumsoftware.com/0611.html#061110
高木浩光@自宅の日記 - 飾りじゃないのよCAPTCHAは 〜前代未聞のCAPTCHAもどき
http://takagi-hiromitsu.jp/diary/20060810.html#p01
Wikipedia - CAPTCHA
http://ja.wikipedia.org/wiki/CAPTCHA

より安全な CAPTCHA とは?

はてなの CAPTCHA が問題視されているわけだが、「では一体どういう CAPTCHA がより安全なのだろう?」 という疑問が当然出てくる。
Breaking CAPTCHAs with NNsによると、

CAPTCHA 破りの工程は,画像から文字を1文字づつ切り出す「分割」 (segmentation) の段階と, 切り出した文字を1文字ごとに解析する「認識」 (recognition) の段階から構成されるが, このうちコンピュータにとって困難なのは「分割」の方であり,「認識」は比較的容易であるとされる。
Kumar らの研究の結果は,文字による視覚 CAPCHA に関して, 文字毎の「認識」を困難にさせることを意図した歪みやノイズには全く意味が無く, そのような労力は文字の「分割」を困難にさせる方へと注がれることが望ましいという結論を導き出している。
ということで、「分割」し難い CAPTCHA が安全であるという研究結果が発表されているそうだ。 その研究結果を直接参照してみると、何故「分割」がコンピュータにとって難しいのかが説明されている。
4.1 The segmentation problem
As a review, segmentation is difficult for the following reasons:
  1. Segmentation is computationally expensive. In order to find valid patterns, a recognizer must attempt recognition at many different candidate locations.
  2. The segmentation function is complex. To segment successfully, the system must learn to identify which patterns are valid among the set of all possible valid and non-valid patterns. This task is intrinsically more difficult than classification because the space of input is considerably larger. Unlike the space of valid patterns, the space of non-valid patterns is typically too vast to sample. This is a problem for many learning algorithms which yield too many false positives when presented non-valid patterns.
  3. Identifying valid characters among a set of valid and invalid candidates is a combinatorial problem. For example, correctly identifying which 8 characters among 20 candidates (assuming 12 false positives), has a 1 in 125,970 (20 choose 8) chances of success by random guessing.
より安全な CAPTCHA が具体的にどういうものかというと、同じ論文内では以下の様に提案されている。
4.2 Building better/harder HIPs
The idea is that the additional arcs are themselves good candidates for false characters. The previous segmentation attacks would fail on this HIP. Furthermore, simple change of fonts, distortions, or arc types would require extensive work for the attacker to adjust to.
[stronger captcha]
この方式のより詳細な情報が Building Segmentation Based Humanfriendly Human Interaction Proofs (HIPs) に記載されている。
Using Machine Learning to Break Visual Human Interaction Proofs (HIPs)
http://research.microsoft.com/~kumarc/pubs/chellapilla_nips04.pdf
Building Segmentation Based Humanfriendly Human Interaction Proofs (HIPs)
http://research.microsoft.com/~kumarc/pubs/chellapilla_hip05.pdf

CAPTCHA の実装(Java)

Wikipedia の CAPTCHA によると、CAPTCHA の Java 実装は結構あるようだ。

The JCAPTCHA Project
http://jcaptcha.sourceforge.net/
The reCAPTCHA Project
http://www.crt.realtors.org/projects/reCaptcha/
The simple CAPTCHA Project
http://simplecaptcha.sourceforge.net/
この中でどれがより安全だろうか?? JCAPTCHA の DoubleRandomListGimpyEngineCaptcha が分割しにくいように見えるけれど・・・。

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

Oct 25, 2007

[Misc] NetCommons にチャレンジ

NetCommons とは

NetCommons というのは

このサイトは国立情報学研究所が次世代情報共有基盤システムとして開発したNetCommonsの公式サイトです。
NetCommonsはCMS(Contents Management System)とLMS(Learning Management System) とグループウェアを統合したコミュニティウェアです。NetCommonsによって簡単に構築できるサイトとして、 次のようなものが挙げられます。
  • e-ラーニングサイト
  • NPOやNGOのためのバーチャルオフィス
  • 共同研究・学会活動のポータルサイト兼グループウェア
  • オフィス用グループウェア
  • ソーシャルネットワークサービス
というものだそうだ。Xoops ベースで構築されているとのこと。 LMS のシステムは今まで触ったことが無かったので試してみた。
NetCommons
http://www.netcommons.org/

NetCommons のインストール

NetCommons には MySQL, PHP, Apache Web Server が必要。 それだけ揃えてしまえば、後は tar ball を拾ってきてインストーラを実行するだけ。 以下は Debian Etch 環境にインストールしたときのメモ。

環境の準備

MySQL 5, PHP5 をインストール。Apache Web Server は 2.x がインストール済みだったのでそのまま利用。

# apt-get install mysql-server-5.0 php5 php5-mysql libapache2-mod-php5
Reading package lists... Done
Building dependency tree... Done

# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database netcommons;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on netcommons.* to netcommons identified by 'netcommons';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit       
Bye

# cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.original
# vi /etc/php5/apache2/php.ini
# diff /etc/php5/apache2/php.ini.original /etc/php5/apache2/php.ini
599c599
< ;extension=mysql.so
---
> extension=mysql.so

# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)... waiting .

#

NetCommons の設置

NetCommons をダウンロードしてきて設置。 *.php ファイルが EUC-JP の CRLF になっていたので EUC-JP の LF に変換した。

# wget http://www.netcommons.org/modules/cabinet/downloadnum_add.php?
path=%2Fcabinet%2F3%2F%A5%B3%A5%A2%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%CD%
D1%2FNetCommons-1.1.2%2FNetCommons-1.1.2.tar.gz&file_id=1941
[1] 2621

# tar zxvf ./NetCommons-1.1.2.tar.gz 
./NetCommons-1.1.2/
./NetCommons-1.1.2/html/

# cd ./NetCommons-1.1.2
# cp -r ./html ./html.converted
# cd ./html
# for i in `find . -name '*.php'`; do nkf -Lu -e $i > ../html.converted/$i; done
# mv ./NetCommons-1.1.2/html.converted /var/www/netcommons
# chmod 777 -R /var/www/netcommons/uploads/ /var/www/netcommons/cache/ 
/var/www/netcommons/templates_c/ /var/www/netcommons/themes/

NetCommons のインストール

"http://example.com/netcommons/" にアクセスしてインストーラを起動する。

[NetCommons installer(0)] [NetCommons installer(1)] [NetCommons installer(2)]

NetCommons インストールの後片付け

インストーラの削除と設定ファイルの権限変更を行う。

# rm -rf /var/www/netcommons/install/
# chmod 444 /var/www/netcommons/mainfile.php 
# 

NetCommons にアクセス

"http://example.com/netcommons/" にアクセスする。 とりあえずインストール時に設定した管理者でログイン。 とりあえずは動いたが、何故か管理室に入ることが出来なかった。 NETCOMMONS_SYSTEM_PATH というグローバル変数(?) がセットされていないのだが・・・。 何故?? (面倒なので調べていないw)

[NetCommons Home]

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

Oct 22, 2007

[Misc] 各社携帯の XHTML 対応状況メモ

NTT Docomo, AU, Softbank mobile の XHTML 対応状況を調べたのでメモ。

NTT Docomo

「端末スペック一覧」ページに XHTML の対応状況が記載されている。

XHTML Basic 1.1
http://www.w3.org/TR/xhtml-basic/
作ろう i モードコンテンツ
http://www.nttdocomo.co.jp/service/imode/make/
端末スペック一覧
http://www.nttdocomo.co.jp/service/imode/make/content/spec/index.html
iモード対応XHTMLの考え方
http://www.nttdocomo.co.jp/service/imode/make/content/xhtml/outline/s1.html

AU

「XHTML 対応機種」ページによると

「XHTML」で表記されたコンテンツを、作成者の意図どおりのデザインで閲覧するには、WAP2.0ブラウザ搭載端末で表示する必要があります。HDMLブラウザ搭載端末では、HDML標準対応となり、「XHTML」コンテンツに関しては、EZサーバによるコンテンツ変換機能を使用し「XHTML → HDML」の変換を行って表示することになります。
ということだそうだ。WAP2.0ブラウザ搭載状況は「機種別情報一覧」ページに記載されている。
技術情報
http://www.au.kddi.com/ezfactory/tec/index.html
XHTML 対応機種
http://www.au.kddi.com/ezfactory/howtoxhtml/02.html
機種別情報一覧
http://www.au.kddi.com/ezfactory/tec/spec/new_win/ezkishu.html

Softbank mobile

「ウェブ技術資料 - 概要編」によると

1.2 サービス世代
以降、回線交換のみに対応する端末を C 型端末と呼称し、パケット交換サービス(PDC-P)にも対応する端末を P 型端末と呼称し、3G サービスに対応する端末を W 型端末、WAP/MMS サービスに対応する端末を 3GC 型端末と呼称する。

1.3.1. ウェブ
・コンテンツは HTML(Hyper Text Markup Language) もしくは MML(Mobile Markup Language), XHTML で記述する。ただし、MML は C 型および P 型端末でのみ利用可能であり、 XHTML は W 型、3GC 型端末でのみ利用可能である。
だそうだ。3G サービス対応端末、WAP/MMS サービス対応端末で表示可能ということのようだ。 ・・・残念なことに、3G サービス対応端末、WAP/MMS サービス対応端末の情報は見当たらなかった。
Softbank Developers Support Site
http://developers.softbankmobile.co.jp/dp/
ウェブ技術資料 - 概要編
http://www2.developers.softbankmobile.co.jp/dp/tool_dl/download.php?docid=110&companyid=
ウェブ技術資料 - XHTML 編
http://www2.developers.softbankmobile.co.jp/dp/tool_dl/download.php?docid=135&companyid=
端末情報
http://developers.softbankmobile.co.jp/dp/tech_svc/info/

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

Oct 13, 2007

[Misc] SSL 証明書のインストール時に X509_check_private_key:key values mismatch エラー

Apache Web Server 2.2.6 に SSL 証明書をインストールしたときに不思議なエラーに遭遇した。

[warn] RSA server certificate CommonName (CN) `hoge.example.com' does NOT match server name!?
[error] Unable to configure RSA server private key
[error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
何のことはない、間違って別サーバの SSL 証明書を使っていただけだった(^^;
  # openssl x509 -noout -text -in ./server.crt
で SSL 証明書の内容を確認したら別サーバのものであることが一瞬で判明。 正しい SSL 証明書を持ってきたらすぐに解決。やれやれ。

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

Sep 26, 2007

[Misc] HTML5 メモ

HTML 5 の関連情報をメモ。

HTML 5 Working Draft
http://www.whatwg.org/specs/web-apps/current-work/
WAHTWG - WHATWG and HTML 5 FAQ 日本語訳
http://www.html5.jp/trans/whatwg_html5faq.html
HTML 5 の新要素
http://www-06.ibm.com/jp/developerworks/xml/library/x-html5/index.shtml?ca=drs-

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

May 23, 2007

[Misc] Subversion Web UI のデザインをカスタマイズする

Apache2 + Subversion で運用している場合、Subversion の Web UI を簡単にカスタマイズできる。 Debian Etch での方法をメモ。

svnindex.xsl、svnindex.css のコピー

/var/www/apache2-default/ に svnindex.xsl と svnindex.css が設置されているので、 この 2 つのファイルを Apache2 が参照可能な位置にコピー(DocumentRoot 直下など)。

/etc/apache2/mods-available/dav_svn.conf の編集

dav_svn.conf に SVNIndexXSLT を指定する。パスは DocumentRoot からの相対パスを指定。

<Location /svn>

  ...SNIP...

  # Web UI Design
  SVNIndexXSLT /svnindex.xsl

  ...SNIP...

</Location>

svnindex.xsl、svnindex.css の編集

後はお好みで svnindex.xsl、svnindex.css を編集する。 デフォルト状態に多少手を入れたものが こちら。 興味のある方はお持ちください。

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

May 20, 2007

[Misc] GUI プログラミングで使用できるフリーのアイコン集

GUI プログラミングをすると、いつもアイコンをどうするかで困ってしまう。 大抵は簡単なものを自作するのだが、時間がかかって仕方がない。 というわけで、フリーで使用できる GUI 用のアイコン集を探してみた。

Icon Collection
http://sourceforge.net/projects/icon-collection/
Ximian Open-Officeのアイコン
http://www.novell.com/coolsolutions/nnlsmag/assets/ooo-stock.zip
Gnomeのアイコン:
http://art.gnome.org/themes/icon/
SVG BlueSphereのアイコンとテーマ:
http://svgicons.sourceforge.net/
KDEのアイコン:
http://www.buzzard.me.uk/jonathan/kde-icons.html
http://www.kde-look.org/
Iconize Textlinks with CSS
http://www.pooliestudios.com/projects/iconize/
Drunkey Love
http://www.el73.be/drunkey-love/downloads/
Eclipse Icons
http://codehaus.org/~bwalding/eclipse-icons/
Sanscons
http://somerandomdude.net/srd-projects/clearbits

情報源

上記のアイコン集は下記のサイトから GUI に使用できそうなものをチョイスした。 下記のサイトを公開してくださっている方に感謝。

Java GUIプログラミングの、とてもBasicなFAQ
http://homepage1.nifty.com/algafield/JavaGUIFaq19j.html
POP*POP的アイコン配布サイトまとめ
http://www.popxpop.com/archives/2006/12/post_48.html

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

Feb 12, 2007

[Misc] 米国総合宅配サービス OPAS

OPAS というサービスを見つけた。 米国内に住所を持てるというサービスらしい。 宅配の転送なども請け負ってくれるそうなので、Amazon.com のマーケットプレイスで米国内のみ配達可能な商品の購入もできそう。 洋書の技術書を古本で大量購入するのに使えるかも。 ただ、コスト的に折り合うかどうか・・・。 何人かで共同利用すれば元は取れるかな??

OPAS
http://www.opasexpress.com/tanomail.htm
FAQ
http://www.opasexpress.com/tanomail_faq.htm
料金
http://www.opasexpress.com/tanomail_rates.htm

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

Feb 11, 2007

[Misc] Callisto

Callisto とは

Callisto は Eclipse のサブプロジェクトで、EMF、GEF、WTP、TPTP といったプラグインを同期してリリースすることを目的としているらしい。
Callisto プロジェクトのサイトによると

Callisto is about improving the productivity of the developers working on top of Eclipse frameworks by providing a more transparent and predictable development cycle. By releasing 10 projects at the same time, the goal is to eliminate uncertainty about version compatibility and make it easier to incorporate multiple projects into your environment.

While Callisto is about the simultaneous release of ten projects, it is not a unification of the projects - each project remains a separate open source project operating with its own project leadership, its own committers, and its own project plan.

ということだそうだ。

Callisto が現在対応してくれているのは、

  • Business Intelligence and Reporting Tools (BIRT) Project
  • C/C++ IDE (CDT)
  • Data Tools Platform (DTP)
  • Eclipse Modeling Framework (EMF)
  • Graphical Editing Framework (GEF)
  • Graphical Modeling Framework (GMF)
  • Eclipse Project
  • Eclipse Test and Performance Tools Platform Project (TPTP)
  • Eclipse Web Tools Platform Project (WTP)
  • Visual Editor (VE)
で、Java EE 開発で必要なプラグインはほとんど Callisto から取得できるのが分かる。 EMF、GEF、GMF、WTP、VE を一括で管理してくれるのは嬉しい限り。 とはいえ、プラグインのダウンロードに時間がかかるのは今まで通りなのだろうな・・・。 Callisto のリポジトリをそのまま適当な非公開サーバに構築出来ると非常に便利なのだけれど。

Eclipse Callisto Project
http://www.eclipse.org/callisto/
Callisto Update Site
http://download.eclipse.org/callisto/releases/
Eclipse V3.2 Callisto では何がホットなのか
http://www-06.ibm.com/jp/developerworks/opensource/library/os-ecl-callisto/index.shtml

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

Feb 09, 2007

[Misc] Apache Struts Platform Requirements

Apache Struts の動作環境をまとめてみた。 まとまった資料が見つからなかったので。

Servlet JSP J2SE(Java SE)
Apache Struts 2.0.x 2.4 ~ 2.0 ~ 5.0 ~
Apache Struts 1.3.x 2.3 ~ 1.2 ~ 1.4 ~
Apache Struts 1.2.x 2.2 ~ 1.1 ~ 1.3 ~
Apache Struts 1.1.x 2.2 ~ 1.1 ~ 1.3 ~
Apache Struts 1.0.x 2.2 ~ 1.1 ~ 1.2 ~
Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Feb 08, 2007

[Misc] Apache Struts Release Notes

Apache Struts のリリースノートは結構仕事で参照するのだけれど、 場所が分かりづらくていつも右往左往する。というわけで、とりあえずメモ。・・・と言っても、新しいバージョンがリリースされたらまた URL が変わるのだろうな、この感じだと orz

2.0.x

2.0.5
http://struts.apache.org/2.0.5/docs/release-notes-205.html
2.0.4
http://struts.apache.org/2.0.5/docs/release-notes-204.html
2.0.3
http://struts.apache.org/2.0.5/docs/release-notes-203.html
2.0.2
http://struts.apache.org/2.0.5/docs/release-notes-202.html
2.0.1
http://struts.apache.org/2.0.5/docs/release-notes-201.html
2.0.0
http://struts.apache.org/2.0.5/docs/release-notes-200.html

1.3.x

1.3.5
http://struts.apache.org/1.3.5/userGuide/release-notes.html
1.3.3
http://struts.apache.org/1.3.5/userGuide/release-notes-1_3_3.html
1.3.2
http://struts.apache.org/1.3.5/userGuide/release-notes-1_3_2.html
1.3.1
http://struts.apache.org/1.3.5/userGuide/release-notes-1_3_1.html

1.2.x

1.2.9
http://struts.apache.org/1.2.9/userGuide/release-notes.html
1.2.8
http://struts.apache.org/1.2.9/userGuide/release-notes-1.2.8.html
1.2.7
http://struts.apache.org/1.2.9/userGuide/release-notes-1.2.7.html
1.2.4
http://struts.apache.org/1.2.9/userGuide/release-notes-1.2.4.html

1.1.x

1.1
http://struts.apache.org/1.1/userGuide/release-notes-1.1.html
1.1 RC2
http://struts.apache.org/1.1/userGuide/release-notes-1.1-rc2.html
1.1 RC1
http://struts.apache.org/1.1/userGuide/release-notes-1.1-rc1.html
1.1 b2
http://struts.apache.org/1.1/userGuide/release-notes-1.1-b2.html

1.0.x

1.0.2
http://struts.apache.org/1.0.2/release-notes-1.0.2.html
1.0.1
http://struts.apache.org/1.0.2/release-notes-1.0.1.html
1.0
http://struts.apache.org/1.0.2/release-notes-1.0.html
1.0 b3
http://struts.apache.org/1.0.2/release-notes-1.0-b3.html
1.0 b2
http://struts.apache.org/1.0.2/release-notes-1.0-b2.html
1.0 b1
http://struts.apache.org/1.0.2/release-notes-1.0-b1.html
Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Feb 06, 2007

[Misc] J2EE (Java EE) を構成する仕様一覧

J2EE (Java EE) は複数の仕様で構成されているが、Java EE 5 まで来ると仕様が多すぎる && 仕様のバージョンアップが入り乱れているといった理由で非常に憶えづらい。 というわけで、一度整理してみた。

Java EE 5 Technologies
http://java.sun.com/javaee/technologies/
J2EE 1.4 Document
http://java.sun.com/j2ee/1.4/docs/index.html
J2EE 1.3_01 Release Notes
http://java.sun.com/j2ee/sdk_1.3/1.3_01/techdocs/release/ReleaseNotes.html
J2EE 1.2.1 Release Notes
http://java.sun.com/j2ee/sdk_1.2.1/techdocs/release/ReleaseNotes.html

J2EE (Java EE) を構成する仕様一覧

Java EE 5
  • Web Services Technologies
    • Implementing Enterprise Web Services (JSR 109)
    • Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224)
    • Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101)
    • Java Architecture for XML Binding (JAXB) 2.0 (JSR 222)
    • SOAP with Attachments API for Java (SAAJ) (JSR 67)
    • Streaming API for XML (JSR 173)
    • Web Service Metadata for the Java Platform (JSR 181)
  • Web Application Technologies
    • Java Servlet 2.5 (JSR 154)
    • JavaServer Faces 1.2 (JSR 252)
    • JavaServer Pages 2.1 (JSR 245)
    • JavaServer Pages Standard Tag Library (JSR 52)
  • Enterprise Application Technologies
    • Enterprise JavaBeans 3.0 (JSR 220)
    • J2EE Connector Architecture 1.5 (JSR 112)
    • Common Annotations for the Java Platform (JSR 250)
    • Java Message Service API (JSR 914)
    • Java Persistence API (JSR 220)
    • Java Transaction API (JTA) (JSR 907)
    • JavaBeans Activation Framework (JAF) 1.1 (JSR 925)
    • JavaMail (JSR 919)
  • Management and Security Technologies
    • J2EE Application Deployment (JSR 88)
    • J2EE Management (JSR 77)
    • Java Authorization Contract for Containers (JSR 115)
J2EE 1.4
  • J2EE Connector Specification 1.5
  • J2EE Deployment API Specification 1.1
  • J2EE Management Specification 1.0
  • Enterprise JavaBeans Specification 2.1
  • Enterprise JavaBeans to CORBA Mapping 1.1
  • Java API for XML Processing Specification 1.2
  • Java API for XML Registries Specification 1.0
  • Java API for XML-based RPC Specification 1.1
  • Java Authorization Contract for Containers 1.0
  • Java IDL API
  • Java Naming and Directory Interface Specification 1.2.1
  • Java Message Service Specification 1.1
  • Java Servlet Specification 2.4
  • Java Transaction API Specification 1.0.1B
  • Java Transaction Service Specification 1.0
  • JDBC Specifications, 3.0, 2.1, and Optional Package API (2.0)
  • JavaBeans Activation Framework Specification 1.0.2
  • JavaMail API Specification 1.3
  • JavaServer Pages Specification 2.0
  • RMI over IIOP
  • SOAP with Attachments API for Java Specification 1.2
J2EE 1.3_01
  • HTTP and HTTPS
  • COS naming
  • Enterprise JavaBeansTM (EJB) 2.0
  • JavaTM Servlets 2.3
  • JavaServer PagesTM (JSP) 1.2
  • JavaTM Messaging Service (JMS) 1.0.2
  • J2EETM Connector 1.0
  • JDBCTM Standard Extension 2.0
  • JavaTM Transaction API (JTA) 1.0
  • JavaMailTM 1.2
  • JavaTM API for XML Parsing (JAXP) 1.1
J2EE 1.2.1
  • Enterprise JavaBeansTM API, v. 1.1
  • JavaTM Servlets, v. 2.2
  • JavaServer PagesTM technology, v. 1.1
  • JDBCTM Standard Extension, v. 2.0
  • Java Naming and Directory InterfaceTM API, v. 1.2 (CosNaming SPI)
  • RMI/IIOP
  • JavaTM Transaction API, v. 1.0
  • JavaMailTM API, v. 1.1
  • JavaTM Messaging Service, v. 1.0 (API only, no implementation)
Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Feb 01, 2007

[Misc] Google Mini がやってきた

と言っても自宅にではなくて会社に。当然か。 以前プロジェクトで導入したいと思ったことがあったのだけれど、そのときは未だ日本法人で取り扱っていなくて断念。
先日ふと会社のマシンルームに入ってみると、見慣れない筐体が。 しかも、Google と書いてある。
[Google Mini] [Google Mini] [Google Mini]

早速担当の人に声をかけて少し遊ばせてもらった。 まだ国内では導入実績が少ないのか色々問題含みではあるようだが、なかなか面白い。 小規模検索なら、コストパフォーマンスも性能も良いので、一つの選択肢にはなるだろう。
[Google Mini]

後、オマケで Google Mini T シャツが付いてきたのも結構嬉しい。
[Google Mini] [Google Mini]

Google Mini
http://www.google.co.jp/enterprise/mini/

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

Sep 12, 2006

[Misc] ADCan

知り合いが ADCan というアフィリエイトサービスを開始したので、ちょっと紹介。 始まったばかりなので登録者数はマダマダの様だけれど、機能的には他のアフィリエイトサービスと遜色ない。 というか、ぱっと見た限りでは後発な分だけ積極的に +α を狙っているだけに面白いサービスだと思う。 アフィリエイトサイトを専門家の視点からどう映るのかは分からないけれど、 個人的には面白いと思うので時間のあるときにでも登録してみてくださいませ m(_ _)m

ちなみに、JavaScript が有効になっていないと動作しない機能もあると思うので要注意。

ADCan
http://adcan.jp/index.jsp
ADCan - はじめての方へ
http://adcan.jp/info/service.jsp
ADCan - よくある質問
http://adcan.jp/info/qa.jsp

ADCan への参加方法

ブログを持っている人であれば簡単に参加できる。


  1. ↑の画像をクリック。
  2. 一通り解説を読む。
  3. 「パートナー新規登録」ボタンを押下する。
  4. ウィザードに従い、必要情報を記入して仮登録を行う。
  5. 「[ADCan] パートナー会員承認用URLのお知らせ」というメールが届くので、「登録確認 URL」にアクセスして本登録を完了する。
  6. トップページから「ログイン」ボタンを押下してログインを行う。
  7. 現在は「コンテンツマッチ」「アフィリエイト」に参加が可能なので、お好きな方を選択してサービスに参加する。
[adcan01]

コンテンツマッチへの参加

  1. ADCan にログインして、「マイページ」に移動する。
  2. メニューバーから「コンテンツマッチ」を選択する。
  3. 「新しいレイアウトを追加する」リンクを押下する。
  4. 「広告種別」「広告サイズ」「色」などを好みに合わせて選択する。
  5. 一通り好みの設定が完了したら、設定内容が反映されたサンプルが画面下に表示されているので表示サンプルを確認する。
  6. サンプルで問題がないようであれば、「設定を保存して広告タグを生成」ボタンを押下する。
  7. 表示された HTML を自分のブログに貼る。
[adcan02]

ちなみに、コンテンツマッチは↓の様な感じになる。



アフィリエイトへの参加

  1. ADCan にログインして、「マイページ」に移動する。
  2. メニューバーから「アフィリエイト」を選択する。
  3. 「アフィリエイトを検索する」リンクを押下する。
  4. 現在選択可能なアフィリエイトのリストが表示されるので、好みのアフィリエイトを選択する。
  5. アフィリエイトを選択したら、「承認申請する」ボタンを押下する。
  6. ボタン押下後、「承認済み」と表示されたらアフィリエイトを使用可能となる。
  7. 「アフィリエイト素材を開く」ボタンを押下して、広告の素材一覧画面を開く。
  8. 好みにあった広告の HTML を選択し、自分のブログに貼る。
[adcan03]

[adcan04]

ちなみに、アフィリエイトは↓の様な感じになる。

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

Jun 26, 2006

[Misc] Live-F1 にチャレンジ

Live-F1 とは

F1 の公式サイトにグランプリの情報をリアルタイムに提供してくれるサービスがある。 デフォルトでは Java のクライアントが必要なのだけれど、Terminal 版のクライアントもあるらしいということを知った。 公式サイトによると、

Live F1 is a native Linux client for viewing the information feed of the official Formula-1 Web site without the need of a Java-enabled browser. It displays the live timing information from the track side during races, qualifying, and practice sessions. An account on formula1.com is still required.
というツールらしい。
Live F1
http://freshmeat.net/projects/live-f1/
The Official Formula 1 Website
http://formula1.com/
2006 British Grand Prix Live Timing
http://www.formula1.com/race/livetiming/758.html
CLIマジック:フォーミュラ1ファンに新しいツール
http://opentechpress.jp/developer/06/06/21/0236254.shtml

Live-F1 deb パッケージ

更に嬉しいことに、有志の方が Live-F1 を deb パッケージ化してくれている。 何とも素晴らしい!!

ということで、deb化してみました。もともと構成がautoconf化されてて単純だし、cdbsを使えば5分足らずでパッケージを作れます。manがないとかいうのはさておき。

    snip...

パッケージ名live-f1。
KeN's GNU/Linux Diary - live-f1パッケージ
http://kmuto.jp/d/index.cgi/debian/live-f1.htm

Live-F1 を試してみる

というわけで、早速 Live-F1 をインストールして遊んでみた。

  1. F1 公式サイトのアカウントを持っていない場合は Live Timing Registration で登録(無料)を行う。
  2. KeN's GNU/Linux Diary さんのこちらから deb パッケージをダウンロードする。ここでは live-f1_0.2.5-2_i386.deb を前提とする。
  3. Live-F1 をインストールする。
    # dpkg -i ./live-f1_0.2.5-2_i386.deb
    Selecting previously deselected package live-f1.
    (Reading database ... 15390 files and directories currently installed.)
    Unpacking live-f1 (from ./live-f1_0.2.5-2_i386.deb) ...
    Setting up live-f1 (0.2.5-2) ...
    
  4. とりあえずバージョンなどを確認してみた。
    # which live-f1
    /usr/bin/live-f1
    
    # live-f1 --version
    live-f1 0.2.5
    Copyright (C) 2006 Scott James Remnant .
    
    This is free software, covered by the GNU General Public License; see the
    source for copying conditions.  There is NO warranty; not even for
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
  5. 起動してみた。
    # live-f1
    live-f1 0.2.5
    Copyright (C) 2006 Scott James Remnant .
    
    This is free software, covered by the GNU General Public License; see the
    source for copying conditions.  There is NO warranty; not even for
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    In order to connect to the Live Timing stream, you need to be registered;
    if you've not yet done so, do so now by filling in the form at the URL:
    http://www.formula1.com/livetiming_registration/
    
    Enter your registered e-mail address: me@example.com
    Enter your registered password:
     P    Name            Gap  Int Time     Sector 1 Sector 2 Sector 3 Ps Lap  70
     1  1 F. ALONSO       LAP   70 1:18.061 21.6     24.7     31.6      2
     2  5 M. SCHUMACHER   2.1  2.1 1:16.605 21.2     24.2     31.0      2
     3  3 K. RAIKKONEN    8.8  6.7 1:20.463 21.8     25.1     33.4      2
     4  2 G. FISICHELLA  15.6  6.8 1:19.077 21.9     24.8     32.2      3
     5  6 F. MASSA       25.1  9.4 1:20.819 22.5     25.4     32.7      1
     6  8 J. TRULLI        1L   1L 1:18.299 21.7     24.9     31.5      2
     7 16 N. HEIDFELD      1L  1.4 1:18.364 21.7     24.7     31.9      2
     8 14 D. COULTHARD     1L  5.8 1:18.298 21.8     24.8     31.5      2
     9 12 J. BUTTON        1L  2.1 1:18.976 22.2     24.7     32.0      2
    10 21 S. SPEED         1L  0.4 1:18.925 22.2     24.9     31.6      2
    11 15 C. KLIEN         1L  4.2 1:20.455 22.3     25.4     32.6      2
    12  9 M. WEBBER        1L  5.8 1:23.858 24.4     26.7     32.6      2
    13 20 V. LIUZZI        2L   1L 1:20.887 22.5     25.8     32.4      3
    14 18 T. MONTEIRO      4L   2L 1:23.602 23.4     27.6     32.4      3
    15 22 T. SATO          6L   2L          23.0     STOP               3
       17 J. VILLENEUVE   12L   6L          22.2     STOP               2
        7 R. SCHUMACHER   12L      RETIRED  24.6 L51 25.7 L57           6
        4 J. MONTOYA      57L  45L          STOP                        1
       11 R. BARRICHELLO  59L   2L RETIRED                              1
       23 F. MONTAGNY     68L   9L          26.0     59.7     STOP      1
       10 N. ROSBERG      69L   1L          STOP
       19 C. ALBERS                                  27.1     STOP              0
    

Live-F1 + ttyrec

今日のなんでやねんさんのところで ttyrec というツールが紹介されていた。 公式サイトによると、以下の様なものらしい。

ttyrec は tty を録画します。録画したデータは付属の ttyplayコ マンドで再生できます。ttyrec は script コマンドにマイクロ秒 単位で時間情報を埋め込む機能を追加しただけの代物です。emacs -nw でも vi でも lynx でも tty 上で動くプログラムなら何でも 録画できます。
で、ttyrec と Live-F1 でレースの状況を録画しておくことができるそうだ。 live-f1パッケージ によると、
今気付いたんだが,コレをttyrecで録画しとけばlive timingの録画で出来るんじゃないの? ということで,今晩のカナダを録画してみよう.

    snip...

追記4: おぉ,ちゃんとttyplayで再生できる!
とのこと。楽しそう。 今週末(2006/07/02)のアメリカグランプリで試してみよう。

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

Jun 24, 2006

[Misc] オープンソースの SNS

オープンソースの SNS を調べてみた。 色々探してみたが、結局 2 つしか引っかからなかった。 他にもいくつか情報は存在するのだが、既に消滅していたり、そもそも一度もリリースされた形跡がなかったり。

SNS は人を集めてナンボのシステムなのでオープンソースには不向きなのかもしれない。

プロダクト名 サイト ライセンス 動作環境 DBMS
OpenPNE http://docs.openpne.jp/ GPL 2.0 / Commercial License PHP(4.3.*/5.0以降) MySQL(4.0/4.1以降)
Affelio http://open.affelio.jp/ GPL 2.0 / Commercial License Perl(5.6以降) SQLite / MySQL(4.1以降)

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

Jun 23, 2006

[Misc] コメントスパムが酷い(2)

とりあえず、スパマーの IP アドレスからの接続を拒否することにした。 httpd.conf を編集して接続を拒否する。

Order allow,deny
allow from all
deny from 195.225.176.73
deny from 195.225.176.77
deny from 195.225.177.90
deny from 85.255.117.250
これでしばらく経過観察にしよう。

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

Jun 22, 2006

[Misc] コメントスパムが酷い

ここ 1 ヶ月ほど、コメントスパムが極端に酷くなった。 何パターンが存在しているのだけれど、その中でも特にたちの悪いものを調べてみた。

スパマーA - 195.225.176.73

最もたちの悪いのがこれ。 195.225.176.73、195.225.176.77、195.225.177.90 という 3 つの IP アドレスを使用してコメントスパムを送りつけてくる。 通数がやたらと多く、コメントのサイズも巨大なので非常に迷惑。 whois によると

inetnum:      195.225.176.0 - 195.225.179.255
netname:      NETCATHOST
descr:        NetcatHosting
country:      UA
admin-c:      VS1142-RIPE
tech-c:       VS1142-RIPE
status:       ASSIGNED PI
mnt-by:       RIPE-NCC-HM-PI-MNT
mnt-lower:    RIPE-NCC-HM-PI-MNT
mnt-by:       NETCATHOST-MNT
mnt-routes:   NETCATHOST-MNT
source:       RIPE # Filtered
remarks:      ****************************************
remarks:      * Abuse contacts: abuse@netcathost.com *
remarks:      ****************************************

person:       Vsevolod Stetsinsky
address:      01110, Ukraine, Kiev, 20チ, Solomenskaya street. room 206.
phone:        +38 050 6226676
e-mail:       vs@netcathost.com
nic-hdl:      VS1142-RIPE
source:       RIPE # Filtered
というネットワークを使用している。

スパマーB - 85.255.117.250

次にたちの悪いのがこれ。 85.255.117.250 という IP アドレスを使用している。

inetnum:        85.255.112.0 - 85.255.127.255
netname:        inhoster
descr:          Inhoster hosting company
descr:          OOO Inhoster, Poltavskij Shliax 24, Kharkiv, 61000, Ukraine
remarks:        -----------------------------------
remarks:        Abuse notifications to: abuse@inhoster.com
remarks:        Network problems to: noc@inhoster.com
remarks:        Peering requests to: peering@inhoster.com
remarks:        -----------------------------------
country:        UA
org:            ORG-EST1-RIPE
admin-c:        AK4026-RIPE
tech-c:         AK4026-RIPE
tech-c:         FWHS1-RIPE
status:         ASSIGNED PI
mnt-by:         RIPE-NCC-HM-PI-MNT
mnt-lower:      RIPE-NCC-HM-PI-MNT
mnt-by:         RECIT-MNT
mnt-routes:     RECIT-MNT
mnt-domains:    RECIT-MNT
mnt-by:         DAV-MNT
mnt-routes:     DAV-MNT
mnt-domains:    DAV-MNT
source:         RIPE # Filtered

organisation:   ORG-EST1-RIPE
org-name:       INHOSTER
org-type:       NON-REGISTRY
remarks:        *************************************
remarks:        * Abuse contacts: abuse@inhoster.com *
remarks:        *************************************
address:        OOO Inhoster
address:        Poltavskij Shliax 24, Xarkov,
address:        61000, Ukraine
phone:          +38 066 4633621
e-mail:         support@inhoster.com
admin-c:        AK4026-RIPE
tech-c:         AK4026-RIPE
mnt-ref:        DAV-MNT
mnt-by:         DAV-MNT
source:         RIPE # Filtered

person:         Andrei Kislizin
address:        OOO Inhoster,
address:        ul.Antonova 5, Kiev,
address:        03186, Ukraine
phone:          +38 044 2404332
nic-hdl:        AK4026-RIPE
source:         RIPE # Filtered

person:       Fast Web Hosting Support
address:      01110, Ukraine, Kiev, 20チ, Solomenskaya street. room 201.
address:      UA
phone:        +357 99 117759
e-mail:       support@fwebhost.com
nic-hdl:      FWHS1-RIPE
source:       RIPE # Filtered

気づいたこと

スパマーA、スパマーB 共に

01110, Ukraine, Kiev, 20チ, Solomenskaya street.
が関係している。 ワルモノはここに在住??

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

Jun 17, 2006

[Misc] プロジェクト jdk-api-ja に参加してみる

jdk-api-ja プロジェクトで Mustang の日本語ドキュメントの精度を高めよう、という活動を行っているらしいということを知った。 日本語ドキュメントは当然日本人のためのものだから、やはり日本人が貢献すべきだろう。 どこまで貢献できるか分からないがとりあえず参加はしておくことに。

プロジェクト jdk-api-ja
https://jdk-api-ja.dev.java.net/ja/index.html
プロジェクトの概要は以下の通り。
プロジェクト jdk-api-ja へようこそ! このプロジェクトは JDK ドキュメントの日本語翻訳の品質向上を目指します。現在、 java.sun.com において、API 仕様を含め JDK ユーザードキュメントの日本語翻訳が提供されています。一方で、Sun はこれらのドキュメントについてユーザ様からバグ報告や、改善のご提案を頂いており、それらを基に定期的に修正を行っています。本プロジェクトではこのプロセスをよりオープンなものにし、リリース前の翻訳に関しても皆様からのフィードバックを取り入れるなど、さらなる日本語翻訳の品質向上を目指します。日本語ドキュメントユーザの皆様、是非ご参加下さい。

なお、プロジェクトの性質上基本的には日本語で運営させて頂きます。

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

Jun 15, 2006

[Misc] 日本標準 NTP スタート!!

かねてからの願いであった日本標準 NTP がスタートしたらしい。 管理してくれるのは独立行政法人・情報通信研究機構(NICT)。 独立行政法人がこういうサービスをしてくれるのは本当に有り難い。 SourceForgeやApacheのミラーサーバなんかももっと国内でやって欲しいな。

世界最高性能のインターネット用時刻同期サーバによる日本標準時配信の開始
http://www2.nict.go.jp/pub/whatsnew/press/h18/060612-1/060612-1.html
世界最高性能のNTPサーバ、NICTが新設
http://www.itmedia.co.jp/news/articles/0606/12/news068.html

NTP サーバの情報

NTP サーバの情報を見てみた。 IPv6 のアドレスも持っている様だ。

# nslookup
> server ns1.nict.jp
Default Server:  ns1.nict.jp
Address:  133.243.3.1

> set type=A
> ntp.nict.jp
Server:  ns1.nict.jp
Address:  133.243.3.1

Name:    ntp.nict.jp
Addresses:  133.243.238.163, 133.243.238.164, 133.243.238.243, 133.243.238.244

> set type=AAAA
> ntp.nict.jp
Server:  ns1.nict.jp
Address:  133.243.3.1

ntp.nict.jp     AAAA IPv6 address = 2001:2f8:29::fff3
ntp.nict.jp     AAAA IPv6 address = 2001:2f8:29::fff4
nict.jp nameserver = ns1.nict.jp
nict.jp nameserver = ns2.nict.jp
ns1.nict.jp     internet address = 133.243.3.1
ns2.nict.jp     internet address = 133.243.3.2

>

NTP サーバに接続してみる

とりあえず試しに接続してみた。 ntpdate で同期してみただけなのだけれど。

# /etc/init.d/ntp-server stop
Stopping NTP server: ntpd.
# ntpdate 133.243.238.163
14 Jun 16:21:53 ntpdate[32251]: adjust time server 133.243.238.163 offset -0.078740 sec

自動的に時刻同期をする場合、/etc/ntp.conf を編集する。

# vi /etc/ntp.conf
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp

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

Jun 09, 2006

[Misc] GanttProject にチャレンジ

GanttProject とは

GanttProject は、名前の通りプロジェクトをガントチャートで管理するツール。 フリーの Microsoft Project といったところか。 機能的には Microsoft Project の方が高機能だけれど、個人的にはこれで十分な気がする。 Java で開発されているのでプラットフォームを選ばず実行できる、Java Web Start で実行することができる(但し、その場合は PDF によるエクスポートができない)、多言語対応で日本語にも対応しているなど嬉しい点が結構ある。

GanttProject
http://ganttproject.sourceforge.net/index.php
Demo
http://ganttproject.sf.net/demo/demo.html
Run (Java Web Start)
http://ganttproject.sf.net/jws/ganttproject.jnlp
Trac の Ticket や Milestone と GanttProject が連携できないものかと思っていたら、同じ事を考えている人がいた。
Weekbuild の Hack 倉庫 - ガントチャートとマイルストーン
http://weekbuild.sakura.ne.jp/trac/ticket/49
ただ、残念なことにまだ実現はされていない模様。

GanttProject を Java Web Start から起動してみた。 デフォルトの Locale を見てくれているらしく、起動直後から日本語で表示された。

[Gantt View] [Role View]

ちなみに、担当者を作成する前に 編集 > 設定 > 担当者の役割 でロールを設定する必要がある。 ロールを指定せずに担当者を生成すると担当者タブを選択できなくなる(バグ??)。

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

Jun 08, 2006

[Misc] \\?\ の効用

Windows では \\?\ を使用すると通常許されない名前のディレクトリやファイルを作成できるということを教えてもらった。 \\?\ に続けてフルパスを指定すると、半角ドット(.)で終わるファイルやディレクトリを作成できるらしい。 というわけで、早速チャレンジ。

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:58    <DIR>          .
2006/06/04  01:58    <DIR>          ..

C:\tmp>md dummy

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:58    <DIR>          .
2006/06/04  01:58    <DIR>          ..
2006/06/04  01:58    <DIR>          dummy

C:\tmp>rd dummy

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..

C:\tmp>md dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..
2006/06/04  01:59    <DIR>          dummy

C:\tmp>rd dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..

C:\tmp>md \\?\c:\tmp\dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..
2006/06/04  01:59    <DIR>          dummy.

C:\tmp>dir dummy.
 C:\tmp のディレクトリ

ファイルが見つかりません

C:\tmp>dir \\?\c:\tmp\dummy.
 \\?\c:\tmp\dummy のディレクトリ

ファイルが見つかりません

C:\tmp>rd dummy.
指定されたファイルが見つかりません。

C:\tmp>rd c:\tmp\dummy.
指定されたファイルが見つかりません。

C:\tmp>rd \\?\c:\tmp\dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  02:01    <DIR>          .
2006/06/04  02:01    <DIR>          ..

C:\tmp>

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

Jun 07, 2006

[Misc] Eclipse Update Site のミラーサイトを作成する

Eclipse 3.x では Software Update 機能が提供され、プラグインのインストールが楽になった。 ただし、この機能、当然作業の度に Update Site に接続する必要がある。 大人数で一度に環境を整えたり、ネットワークの帯域が不足していたり、サーバが落ちていたりするとプラグインのインストールが延々終わらなかったりする。 プロジェクトの開始時にプラグインのインストールが出来ないと困るので、プロジェクトローカルの Update Site を準備してみた。

Subclipse Update Site の構築

Subversion Client Plugin である Subclipse の Update Site を用意する。 Subclipse は、Update Site をそのままアーカイビングしたファイルを提供してくれている。 そのため、Update Site の構築は非常に楽。

  1. こちらから Update Site のアーカイブをダウンロードする。(ここでは site-1.0.1.zip を前提とする)
  2. Apache 経由でアクセスできる位置にアーカイブを展開する。
    # mkdir /var/www/eclipse-plugins/subclipse
    # cd /var/www/eclipse-plugins/subclipse
    # unzip ./site-1.0.1.zip
    Archive:  ./site-1.0.1.zip
       creating: features/
      inflating: features/org.tigris.subversion.subclipse_1.0.1.jar
       creating: plugins/
      inflating: plugins/org.tigris.subversion.javahl.win32_1.0.0.jar
      inflating: plugins/org.tigris.subversion.subclipse.core_1.0.1.jar
      inflating: plugins/org.tigris.subversion.subclipse.ui_1.0.1.jar
      inflating: plugins/org.tigris.subversion.subclipse_1.0.1.jar
      inflating: site.xml
    # ls
    features  plugins  site-1.0.1.zip  site.xml
    # chown -R www-data:www-data .
    
  3. Eclipse の Software Update で http://www.example.com/eclipse-plugins/subclipse/ (URL はアーカイブの展開先に合わせる) を指定してみる。プラグインが見えれば OK。

Maven 2.0 integration plugin Update Site の構築

Maven2 用の Eclipse Plugin の Update Site を用意する。 Maven2.0 integration plugin は残念ながら Update Site 用ファイルのアーカイブは提供されていない。 そのため、必要となるファイルを集めて Update Site を作成する。

  1. こちらから site.xml をダウンロードする。
  2. こちらから Plugin の jar ファイルをダウンロードする。(ここでは org.maven.ide.eclipse.feature_0.0.9.jar を前提とする)
  3. site.xml を編集する。 全バージョンをミラーリングするのであれば編集は不要。 今回はプロジェクトで使用するバージョンだけをミラーリングするので、その他バージョンに関する記述を削除する。
    <?xml version="1.0" encoding="UTF-8"?>
    <site>
       <feature url="features/org.maven.ide.eclipse.feature_0.0.9.jar" id="org.maven.ide.eclipse.feature" version="0.0.9">
          <category name="Maven 2.0 integration"/>
       </feature>
       <category-def name="Maven 2.0 integration" label="org.maven.ide.eclipse"/>
    </site>
    
  4. Update Site 用にディレクトリ構成を作成し、ファイルを設置する。
    /var/www/eclipse-plugins/maven2/
      ├ features/
      │  └ org.maven.ide.eclipse.feature_0.0.9.jar
      └ site.xml
    
  5. Eclipse の Software Update で http://www.example.com/eclipse-plugins/maven2/ (URL は上記で作成したディレクトリに合わせる) を指定してみる。プラグインが見えれば OK。

本格的に Eclipse Update Site のミラーサイトを構築する

ネットワークやマシンの問題で私には無理ではあるけれど、公開用 Eclipse Update Site のミラーサイトを構築することもできる。

Re: [eclipse-mirrors] Eclipse update site mirror
http://dev.eclipse.org/mhonarc/lists/eclipse-mirrors/msg00151.html
Simply add this RSYNC line to your script:

rsync -rtlv --delete download.eclipse.org::eclipseMirror/eclipse/updates/ /path/to/eclipse.org mirror/eclipse/updates/


I will be looking for your Update content at this URL:
http://eclipse.gabriel.co.hu/eclipse/updates/3.1/site.xml

When you are synced, please let me know and I'll add you to the Updates list.

自作 Plugin 用 Update Site の構築

当然ながら、自作 Plugin 用 Update Site を構築することもできる。

FAQ How do I create an update site (site.xml)?
http://wiki.eclipse.org/index.php/FAQ_How_do_I_create_an_update_site_(site.xml)%3F

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

May 31, 2006

[Misc] 攻撃?? 研究?? 調査??

ありがちな脆弱性をねらったアクセスが来ていた。 Perl などで発生しやすい OS コマンドインジェクションを狙ったもの。

HotFix Report - OSコマンド・インジェクション(OS command injection)
http://www.hotfix.jp/archives/word/2004/word04-18.html
セキュリティガイドライン - 4. OSコマンドインジェクション
http://www.e-3lab.com/security_guideline/index.html#os
目的が分からないので、「一応ログはチェックしてるよ」ということをアピールしておく。
********************** - - [30/May/2006:10:56:18 +0900] "GET /blog/index.cgi/Web
Service/20051218_01.htm|ls%20-la| HTTP/1.1" 200 5857 "-" "Mozilla/4.0 (compatibl
e; MSIE 6.0; Windows NT 5.1)"
アクセス元が某国内有名研究所関連の組織なので、さすがにクラックするつもりではないと思うけれど。 調査・研究目的であっても、外部サーバに対して脆弱性を突く(可能性のある) URL を流すなら事前に教えて欲しい。 攻撃なのか調査・研究なのかはアクセスされた方では判断できないから。

・・・と個人的には思うが、人によって判断の分かれるところだろう。 面倒で一々連絡していられるか、ということかもしれない(^^;

とりあえず、怖いので攻撃は勘弁してくださいませ m(_ _)m > ALL

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

May 25, 2006

[Misc] 公開サーバに用意すべきメールアドレス

公開サーバで用意すべきメールアドレスが RFC2142 で規定されている。

RFC2142 - MAILBOX NAMES FOR COMMON SERVICES, ROLES AND FUNCTIONS
http://www.ietf.org/rfc/rfc2142.txt
RFC2142 - 一般的なサービス、役割、機能に対するメールボックス名
http://rfc-jp.nic.ad.jp/rfc-jp/RFC2142-JP.txt

RFC 2142 で規定されているメールアドレス

RFC 2142 ではビジネス関連、ネットワーク運用関連、インターネットサービス関連の 3 種類のメールアドレスが規定されている。

   BUSINESS-RELATED MAILBOX NAMES

   MAILBOX        AREA                USAGE
   -----------    ----------------    ---------------------------
   INFO           Marketing           Packaged information about the
                                      organization, products, and/or
                                      services, as appropriate
   MARKETING      Marketing           Product marketing and
                                      marketing communications
   SALES          Sales               Product purchase information
   SUPPORT        Customer Service    Problems with product or
                                      service

   NETWORK OPERATIONS MAILBOX NAMES

   MAILBOX        AREA                USAGE
   -----------    ----------------    ---------------------------
   ABUSE          Customer Relations  Inappropriate public behaviour
   NOC            Network Operations  Network infrastructure
   SECURITY       Network Security    Security bulletins or queries

   SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET SERVICES

   MAILBOX        SERVICE             SPECIFICATIONS
   -----------    ----------------    ---------------------------
   POSTMASTER     SMTP                [RFC821], [RFC822]
   HOSTMASTER     DNS                 [RFC1033-RFC1035]
   USENET         NNTP                [RFC977]
   NEWS           NNTP                Synonym for USENET
   WEBMASTER      HTTP                [RFC 2068]
   WWW            HTTP                Synonym for WEBMASTER
   UUCP           UUCP                [RFC976]
   FTP            FTP                 [RFC959]

要するに

自宅サーバの様な小規模公開サイトの場合、POSTMASTER、HOSTMASTER、WEBMASTER、WWW を用意すればよさそう。 ビジネス関連のサービスを提供する場合は更に INFO、MARKETING、SALES、SUPPORT も必要か。

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

May 24, 2006

[Misc] 開発環境における環境変数の設定

Windows における環境変数にはスコープの違いによりシステム環境変数、ユーザ環境変数、一時的な環境変数の 3 種類の環境変数がある。

システム環境変数
システムのすべてのユーザーに適用される環境変数
ユーザ環境変数
それぞれのユーザーごとに異なる環境変数
一時的な環境変数
特定の CMD プロセス内でのみ有効な環境変数
開発をしていて驚くのが、何でもかんでもシステム環境変数を変更しようとする人が結構いること。 環境変数を設定するという目的からすると別に構わないのだけれど、安全性を考えると余り好ましくない。

環境変数の設定指針

チームメンバへの説明をするときのために設定指針をまとめておく。

1. システム環境変数を変更しない

特にパスやパスに類する環境変数(JAVA_HOMEなど)はシステム環境変数として設定すべきではない。 システム環境変数は新規にソフトウェアをインストールする際に、インストーラに変更されてしまうことがあることを考慮しないといけない。 例えば、Oracle Database Server をインストールするとシステム環境変数の PATH の先頭に Oracle 内の JDK が追加されてしまう。

2. ユーザ環境変数を変更しない

こちらもシステム環境変数と同様。

3. 環境変数はバッチファイルで設定する

別に CMD 起動後に毎回手で打っても良いのだけれど、バッチファイルの方が間違いがないのと面倒がないのでオススメ。

4. パスを追加する際は既存のパスの先頭に追加する

言わずもがな。 既存のパスの後ろに追加する人にはさすがに出会ったことはないが、念のため。

> set JAVA_HOME=c:\_java\jdk\1.6.0

> set ANT_HOME=c:\_java\tool\ant\1.6.5

> set PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;%PATH%

5. パスを追加する際は、追加後に必ずバージョンを確認する

パスを変更したら、必ず使用する前にバージョンを確認すること。 先頭に追加すればまず間違いは無いが、設定をミスしていると予期しないバージョンのものを使用してしまっている可能性がある。 プロジェクトでは通常使用するソフトウェアのバージョンが規定されている。 自分が使用しているソフトウェアのバージョンくらいはきちんと把握しておいて欲しい。 少なくとも JDK、JRE のバージョンくらいは・・・。

> set JAVA_HOME=c:\_java\jdk\1.6.0

> set PATH=%JAVA_HOME%\bin;%PATH%

> java -version
java version "1.6.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59g)
Java HotSpot(TM) Client VM (build 1.6.0-beta-b59g, mixed mode, sharing)

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

May 23, 2006

[Misc] DOS Command に関する参考資料をメモ

私より下の世代の人は DOS に関する知識を余り持っていないことが多い。 本番環境として Windows を使用することは少ないにしても、開発は Windows でやることが多いのだから最低限は知っておいて欲しいところ。 今更 config.sys を書けとは言わないが、バッチファイルは書けないと困る。 というわけで、DOS Command に関する参考資料をメモ。

New ways to do familiar tasks
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/dos_diffs.mspx
New command-line tools
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_new_tools.mspx
Command-line reference A-Z
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx
Batch Commands
http://www.microsoft.com/technet/archive/msdos/07_refer.mspx

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

May 22, 2006

[Misc] JMX の参考資料をメモ

JBoss AS のソースコードを読み始めて、Microkernel で苦しんでいる。 JMX の詳細を把握していないのが原因。 ということで、JMX の参考資料をメモ。

JMX
http://java.sun.com/products/JavaManagement/index.jsp
JMX Downloads
http://java.sun.com/products/JavaManagement/download.html
Sun Community Source Licensing (SCSL) - Java(TM) Management Extensions (JMX) - Download
http://www.sun.com/software/communitysource/jmx/download.xml
JSR 255: JavaTM Management Extensions (JMXTM) Specification, version 2.0
http://jcp.org/en/jsr/detail?id=255
JSR-000003 Java Management Extensions (JMX) (Maintenance Release 2)
http://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html
Wikipedia - Java Management Extensions
http://en.wikipedia.org/wiki/Java_Management_Extensions
Apache Geronimo も JMX ベースの Microkernel を導入しているらしい。 こちらも面白そう。
JBoss Architecture Overview
http://jboss.com/products/jbossas/architecture
Apache Geronimo Architecture
http://wiki.apache.org/geronimo/Architecture

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

May 20, 2006

[Misc] MySQL の文字エンコーディング関連設定

Windows で開発して Linux で稼働させる、といった状況だと文字エンコーディングは UCS2 や UTF-8 にしておくと楽。 MySQL を UTF-8 で動作させるための設定方法をメモしておく。

4.1.2. my.cnf オプション設定ファイル
http://dev.mysql.com/doc/refman/4.1/ja/option-files.html
付録 F. 環境変数
http://dev.mysql.com/doc/refman/4.1/ja/environment-variables.html
9.3.6. 接続のキャラクタセットおよび照合順序
http://dev.mysql.com/doc/refman/4.1/ja/charset-connection.html
ぱんぴーまっしぐら - PHPとMySQLの個人的まとめ
http://puchiko.lowtech.ne.jp/?itemid=349&catid=27

設定方法

環境変数を毎回指定しても良いが、/etc/my.cnf を編集すると毎回毎回の手間を省くことができる。

# cat /etc/my.cnf
[mysql]
default-character-set=utf8

[mysqld]
default-character-set=utf8
character_set_server=utf8
現在の文字エンコーディング関連設定がどうなっているのかを調べる方法は以下の通り。
# mysql -u mysqlaccount -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 141 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| character_set_client     | utf8  |
| character_set_connection | utf8  |
| character_set_database   | utf8  |
| character_set_results    | utf8  |
| character_set_server     | utf8  |
| character_set_system     | utf8  |
+--------------------------+-------+
6 rows in set (0.00 sec)
使用した環境は以下の通り。
# mysqladmin -u mysqlaccount -p version
Enter password:
mysqladmin  Ver 8.41 Distrib 4.1.12, for redhat-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          4.1.12
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 1 hour 31 min 52 sec

Threads: 2  Questions: 2227  Slow queries: 0  Opens: 97  Flush tables: 1  
Open tables: 64  Queries per second avg: 0.404

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

May 15, 2006

[Misc] ClassLoader に関する参考資料をメモ

未だに ClassLoader を実装するとハマることがある。 何年実装やっているんだ・・・orz というわけで、ClassLoader に関する再勉強の必要性を強く感じて参考資料を集めてみた。

JSR 924: Java Virtual Machine Specification
http://www.jcp.org/en/jsr/detail?id=924
The Java Virtual Machine Specification Second Edition
http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html
Java2 Platform SE 5.0 API Document - java.lang.ClassLoader
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/ClassLoader.html
The Apache Tomcat 5.5 Servlet/JSP Container Class Loader HOW-TO
http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html
developerWorks - クラス・ローディングとデバッグ・ツール
http://www-06.ibm.com/jp/developerworks/java/060113/j_j-dclp1.shtml
developerWorks - クラス・ローディングに関する基本的な例外
http://www-06.ibm.com/jp/developerworks/java/060127/j_j-dclp2.shtml

ちなみに、今回ハマった状況はこういうもの。 「class A extends B」というクラスをロードする。 B をシステム ClassLoader がロード、A を自作 ClassLoader がロード。 特定環境下で 「A.class.getSuperclass」 が何故か java.lang.Object を返してくるという問題が発生。 結局のところ、ClassLoader の階層構造にミスがあったのだけれど、発生する環境としない環境があって結構手こずった。

教訓 - ClassLoader の階層構造はきちんと把握しよう。

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

May 14, 2006

[Misc] JSTL に関する参考資料をメモ

JSTL に関するサイトをメモ。

JSTL 1.1 API Document
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
JavaServer Pages Standard Tag Library
http://java.sun.com/products/jsp/jstl/index.jsp
JSR 052 JavaServer Pages Standard Tag Library Specification
http://jcp.org/aboutJava/communityprocess/final/jsr052/
developerWorks - JSTL入門: 式言語
http://www-06.ibm.com/jp/developerworks/java/030411/j_j-jstl0211.html
developerWorks - JSTL入門: 核心(core)に触れる
http://www-06.ibm.com/jp/developerworks/java/030516/j_j-jstl0318.html

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

May 13, 2006

[Misc] 日本固有のバリデーションに関わる資料をメモ。

日本固有のバリデーションに関する資料をメモ。 海外製ライブラリは当然の様にこの辺りは未サポート。 自前のライブラリを「正確に」作成する場合に参照すると良いページ。

ゆうびんホームページ - 郵便番号検索
http://www.post.japanpost.jp/zipcode/
全国地方公共団体コード
http://ja.wikipedia.org/wiki/%E5%85%A8%E5%9B%BD%E5%9C%B0%E6%96%B9%E5%85%AC%E5%85%B1%E5%9B%A3%E4%BD%93%E3%82%B3%E3%83%BC%E3%83%89
JIS X 0401 都道府県コード
http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=JIS+X+0401%3A1973&dantaiCd=JIS&status=1&pageNo=0
JIS X 0402 市区町村コード
http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=JIS+X+0402%3A2003&dantaiCd=JIS&status=1&pageNo=0
市外局番の一覧
http://www.soumu.go.jp/joho_tsusin/top/tel_number/shigai_list.html

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

May 11, 2006

[Misc] Google Trends で遊ぶ

Google Trends というサービスが新規公開された。 How does Google Trends work? によると、

Google Trends analyzes a portion of Google web searches to compute how many searches have been done for the terms you enter relative to the total number of searches done on Google over time.
というサービスらしい。 試してみると、これが意外と面白い。

Google Trends の使い方

Google Trends のクエリフォーマットは How many terms can I compare? What other functionality is available? で解説されている。

You can compare up to five terms by separating each term with a comma. To compare trend info for "mittens" and "bathing suits," for example, you'd simply enter [ mittens, bathing suits ] and click on "Search Trends."

To see how many searches contained either of two terms, just separate those terms with a vertical bar: "|". For example, to determine how many searches contained the terms "mittens" or "gloves," you'd enter [ mittens | gloves ]. To compare multi-word terms, use parentheses. To see how many searches were done for either "winter mittens" or "gloves," for instance, enter [ (winter mittens) | gloves ]; otherwise, your query will be interpreted to mean all searches for "winter mittens" or "winter gloves."

You can also exclude terms from your search by using the minus sign. To see how many searches contained the term "maps" but not "google," for instance, just enter [ maps -google ].

To restrict your results to only those searches that contain your terms in the specific order you've entered them, put your terms in quotation marks. (By default, Google Trends will show you all searches that contain the terms you entered in any order.)

Note: when you use any of these advanced features -- quotation marks, minus signs, or vertical bars -- Google Trends will only display the search-volume graph. The news portion of the product doesn't support advanced functionality at this time.
要するに、
  • 比較したいキーワードはカンマ区切りで入力 (例、"apple,orange")
  • キーワードを OR で連結する場合は '|' を使用 (例、"Revolution|Wii,PS3|(Play Station 3)")
  • 特定の語彙を除外したい場合は '-' を使用 (例、"java - coffee,.Net")
というだけなので、特に難しいことは何もない。

Web 開発のトレンド

面白いので、Java による Web 開発関連のトレンドを調べてみた。 Application Server や IDE はなかなか面白い結果だった。

●java ●.net
Java vs .Net Applcation Server IDE Ant vs Maven O/R Mapping Framework DI Container Unit Test

↑のボックスをクリックするとグラフが切り替わる。

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

Apr 30, 2006

[Misc] Java で Scheme

JVM 上の Scheme 実行環境で遊んでみた。 どうやら SISC と Kawa という環境があるらしい。

SISC
http://sisc.sourceforge.net/
Kawa
http://www.gnu.org/software/kawa/
オレンジニュース - JavaベースのScheme処理系「Kawa」と「SISC」の違い
http://secure.ddo.jp/~kaku/tdiary/20060412.html
ひWeb / ひ日誌 - JavaベースのScheme処理系
http://www.fobj.com/hisa/diary/20060412.html#p02

Kawa にチャレンジ

Kawa は jar 1 つで動作できる非常に軽い環境。

>set JAVA_HOME=c:\_java\jdk\1.5.0_06
>set PATH=%JAVA_HOME%\bin;%PATH%
>java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

>java -jar .\kawa-1.8.jar
#|kawa:1|# (display (+ 12 4))(newline)
16
#|kawa:2|#

SISC にチャレンジ

Kawa よりは jar が多いけれど、Kawa 同様簡単に起動できた。

>java -classpath .\sisc.jar;.\sisc-lib.jar;.\sisc-opt.jar sisc.REPL
 -h .\sisc.shp
SISC (1.13.6)
#;> (display (+ 12 4))
16#;>

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

Apr 19, 2006

[Misc] ジェノグラフィック・プロジェクトその後

以前、自分のご先祖様を調べてくれるジェノグラフィック・プロジェクトに参加した。 自分の DNA サンプルを送ると、DNA の情報を基にルーツを調べてくれる。 DNA の分析に時間がかかっていたが、ついに結果が分かった。

ジェノグラフィック・プロジェクトに関してはこちら→ ジェノグラフィック・プロジェクトに参加

というわけで、私の父方のご先祖様は "Eurasian Adam" だということが分かった。 アフリカから、インド、東南アジアを経由して日本にたどり着いたらしい。 日本人の 40% が私と同じルーツを持つそうなので、「ごくありふれた日本人」ということか。

M174 の皆様、遠い親戚になるそうですのでよろしくお願いしますm(_ _)m

[ルーツ]
ルーツ

[Genetic Sequence]
Genetic Sequence

[Genetic History]
Genetic History

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

Apr 10, 2006

[Misc] Jabberd のインストールにチャレンジ

Jabberd を Debian Sarge にインストールしてみた。 Jabberd は APT で簡単にインストールできる。

jabberd 1.4
http://jabberd.jabberstudio.org/1.4/
jabberdの動かし方
http://nantoka.kicks-ass.net/wiki/index.php?%5B%5Bjabberd%A4%CE%C6%B0%A4%AB%A4%B7%CA%FD%5D%5D
# apt-get install jabber jabber-aim jabber-common jabber-dev jabber-jit jabber-jud jabber-msn jabber-muc jabber-yahoo
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  libcurl3 libexpat1-dev libglib1.2 libglib2.0-0 libpth-dev libpth2 libssl-dev
提案パッケージ:
  libcurl3-gssapi ca-certificates libpth-dbg libpth-prof
推奨パッケージ:
  libglib2.0-data
以下のパッケージが新たにインストールされます:
  jabber jabber-aim jabber-common jabber-dev jabber-jit jabber-jud jabber-msn
  jabber-muc jabber-yahoo libcurl3 libexpat1-dev libglib1.2 libglib2.0-0
  libpth-dev libpth2 libssl-dev
アップグレード: 0 個、新規インストール: 16 個、削除: 0 個、保留: 9 個。
4532kB のアーカイブを取得する必要があります。
展開後に追加で 13.1MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://http1.debian.or.jp sarge/main jabber-common 0.4 [3848B]
取得:2 http://http1.debian.or.jp sarge/main libpth2 2.0.1-2 [73.5kB]
インストールされた Jabberd のバージョンを確認してみる。
# /usr/sbin/jabberd -v
Jabberd Version 1.4.3
インストールが終了すると Jabberd は自動的に起動される。
# ps -ef | grep jabber
jabber    1104     1  0 12:00 ?        00:00:00 /usr/sbin/jabberd
jabber    1106  1104  0 12:00 ?        00:00:00 /usr/sbin/jabberd
root      1145   872  0 12:01 pts/0    00:00:00 grep jabber

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

Apr 09, 2006

[Misc] Java における慣習的命名

Manager というクラスの命名に関連して、Java における慣習的な命名を調べてみた。 調査方法は以下の通り。

  1. 調査対象は公開されているオープンソースライブラリ。
  2. Maven2 の公開リポジトリ(http://repo1.maven.org/maven2) に登録されているライブラリから適当に Jar アーカイブを選択
  3. Jar アーカイブ内の全クラス、全メソッドを抽出
  4. クラス名、メソッド名をキャメルノーてーションを前提として単語に分割
  5. 単語毎に出現回数をカウント
調査対象となった Jar アーカイブ、クラス、メソッドの個数は以下の通り。
  • Jar アーカイブ ・・・ 1179
  • クラス ・・・ 129152
  • メソッド ・・・ 943841

慣習的クラス名

クラス名として使用されている単語の TOP 30 は以下の通り。 件の Manager も 27 位にランクインしている。

順位 単語 カウント数
01 Impl 7817
02 Factory 6171
03 Type 4676
04 Exception 4596
05 Element 3170
06 Map 2928
07 Key 2723
08 Document 2622
09 Context 2361
10 Abstract 2328
11 Handler 2221
12 Bean 2215
13 Class 2196
14 Set 2110
15 Xml 2106
16 Hash 2073
17 Object 2026
18 Info 2010
19 Helper 1915
20 Resource 1900
21 Holder 1757
22 List 1756
23 Property 1731
24 Message 1671
25 Tag 1671
26 Default 1655
27 Manager 1655
28 Event 1622
29 Name 1600
30 Attribute 1575

慣習的メソッド名

メソッド名として使用されている単語の TOP 30 は以下の通り。

順位 単語 カウント数
01 get 240349
02 set 107927
03 Name 33048
04 is 32509
05 Value 25894
06 Type 23199
07 add 22824
08 String 18564
09 create 18113
10 new 16511
11 to 14490
12 Class 13125
13 Instance 12121
14 Element 11662
15 Id 11543
16 Set 10390
17 Object 9427
18 Attribute 9413
19 remove 9336
20 Array 9113
21 To 9084
22 Stream 7733
23 Property 7654
24 Message 6936
25 Key 6931
26 Node 6794
27 XML 6726
28 write 6190
29 Data 6150
30 New 6102

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

Apr 08, 2006

[Misc] Manager というクラスの命名

Radium Software DevelopmentさんのSomethingManagerというエントリを読んで。

クラス名に "Manager" という接尾語を用いていることは,そのクラスの設計に不備があることを暗に告げていると考えることができる。このような,クラス名から伝わってくる「兆候」 ― いわゆる "code smell" [Wikipedia] は,他にも幾つか見つけることができる。例えば "Object", "Handler", "Data" などがこれに含まれる [C2Wiki] 。これらの接尾語をクラス名に見つけたならば,そのクラスの設計を見直すことを考えた方が良いかもしれない。

確かに言われてみると、"Manager" という命名は責務が曖昧になりがちだ。 ただ、"Manager" という命名のクラスが即クラス設計のミスだとは思えない。 逆に "Manager" クラスの責務を規定しても良いのではないだろうか??

Code smell

Manager という命名など、コードのきな臭さのことを Code smell というらしい。 Code smell によると

code smell is a jargon term used among programmers to refer to a symptom that indicates something may be wrong.
ということらしい。

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

Apr 07, 2006

[Misc] Jabber Server にチャレンジ

複数の IM を使用しなければならない状況が次第に増えてきた。 主に Google Talk と MSN Messenger。 使い分けが面倒になってきたので、IM クライアントを一つに統一したい。 というわけで、Jabber クライアントに乗り換えることに。 ついでなので、Jabber Server も少し調べてみることに。 Jabber Server が簡単に立てられるようなら、自分専用で用意してみようと思う。

IM Federation - Software
http://imfederation.com/software.html
Jabber :: Software :: Servers
http://www.jabber.org/software/servers.shtml

Jabbered

リストアップされていた Jabber Server の中から Jabberd を調べてみることに。 Jabberd を選択したのは、Debian Sarge の場合 apt でインストールできるため。 当然設定も Debian に合わせてカスタマイズしてあるはず。

jabberd 1.4
http://jabberd.jabberstudio.org/1.4/
jabberdの動かし方
http://nantoka.kicks-ass.net/wiki/index.php?%5B%5Bjabberd%A4%CE%C6%B0%A4%AB%A4%B7%CA%FD%5D%5D
# apt-cache search jabber
jabber - Daemon for the jabber.org Open Source Instant Messenger
jabber-aim - Provides AIM messenger transport for Jabber IM server
jabber-common - Jabber server and transport (common files)
jabber-dev - Daemon for the jabber.org Open Source Instant Messenger
jabber-jit - Jabber ICQ Transport
jabber-jud - Provides User Directory support for the Jabber IM server
jabber-msn - Provides the MSN transport for the Jabber IM server
jabber-muc - Multi User Chat module for the Jabber IM Server
jabber-yahoo - Provides Yahoo messenger transport for Jabber IM server

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

Mar 27, 2006

[Misc] Named Capture メモ

最速インターフェース研究会さんのNamedCapture for JavaScriptでNamed Captureというものを知った。 日本語では「名前付きキャプチャ」と言うらしい。 Named Capture は正規表現の Syntax で、(?P<name>regexp) と言うように名前を指定することで今までマッチした順序を数値で指定していたところが名前でアクセスできるようになるらしい。 細かい改良だけれど、意外と便利そう。

.NET での正規表現の使用
http://japan.internet.com/developer/20050822/28.html
グループ化構成体
http://msdn.microsoft.com/library/ja/cpgenref/html/cpcongroupingconstructs.asp?frame=true
Named Capture Groups
http://regular-expressions.info/named.html
http://regular-expressions.info/ の情報を信じるならば、Named Capture は Python がオリジナルらしい。 そして、Microsoft は .Net で同様の機能を取り入れたが、その際に Syntax を独自のものにしてしまったようだ。いつものことだが迷惑極まりない。
The regular expression classes of the .NET framework also support named capture. Unfortunately, the Microsoft developers decided to invent their own syntax, rather than follow the one pioneered by Python.

Python で Named Capture にチャレンジ

$ python
Python 1.5.2 (#1, Jan 31 2003, 11:01:49)  [GCC 2.96 20000731 (Red Hat Linux 7.2 2 on linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import re
>>> search = re.compile("(?P[a-zA-Z]+)")
>>> line = "123abc456"
>>> result = search.search(line)
>>> print result.group('alphabet')
abc
>>> print result.group(0)
abc
>>>

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

Mar 11, 2006

[Misc] JavaScript 用デバッグコンソール

JavaScript 用のデバッグコンソールを作成してみた。 alert() を使用すると、誤って無限ループに陥った際に Web ブラウザを強制終了せざる得なくなることがある。 それを防ぐため & もう少し使いやすいインタフェースを用意するために DebugConsole クラスを作成した。

DebugConsole

HTML 内で適当に読み込んで呼び出すと、Web ブラウザのウィンドウ右上にデバッグコンソールが開く。 後は debug メソッドで適当に確認したいメッセージをデバッグコンソールに書き出すだけ。

/*******************************************************************************
 *
 *  DebugConsole
 *    copyright(c) 2006 in-vitro.jp, all rights reserved.
 *
 *
 *  REQUIRED
 *    +MS Windows XP
 *    +Internet Explorer 6
 *
 *  USAGE(1) - SIMPLE
 *    var debugConsole = new DebugConsole();
 *    debugConsole.open();
 *    debugConsole.debug("this is a debug message");
 *    debugConsole.close();
 *
 *  USAGE(2) - with initializer
 *    function myInitializer(debugConsole) {
 *      debugConsole.style.backgroundColor = "#ffffff";
 *      debugConsole.style.border = "1ps solid #000000";
 *      return "this is a header";
 *    }
 *    var debugConsole = new DebugConsole(myInitializer);
 *    debugConsole.open();
 *    debugConsole.debug("this is a debug message");
 *    debugConsole.close();
 *
 *  LICENSE
 *    Creative Commons Attribution-ShareAlike 2.1
 *    @see http://creativecommons.org/licenses/by-sa/2.1/jp/
 *
 *******************************************************************************/

/**
 * Construct DebugConsole
 *
 * @param initializer [optional] function which initialize DebugConsole.
 */
function DebugConsole(initializer) {
  document.getElementsByTagName('body')[0].innerHTML += "<div id=\"debugConsole\"></div>";
  this.debugConsole = document.getElementById('debugConsole');

  if(initializer == undefined || initializer == null) {
    this.header = DebugConsole_initializer(this.debugConsole);
  } else {
    this.header = initializer(this.debugConsole);
  }

  this.debugConsole.style.position = "absolute";
  this.debugConsole.style.display = 'none';
  this.debugConsole.style.top = "0px";
  this.debugConsole.style.right = "0px";
}

/* register member functions to DebugConsole */
DebugConsole.prototype.open = DebugConsole_open;
DebugConsole.prototype.close = DebugConsole_close;
DebugConsole.prototype.debug = DebugConsole_debug;
DebugConsole.prototype.clear = DebugConsole_clear;
DebugConsole.prototype.move = DebugConsole_move;
DebugConsole.prototype.moveInternal = DebugConsole_moveInternal;

/**
 * Default DebugConsole Initializer
 */
function DebugConsole_initializer(debugConsole) {
  debugConsole.style.backgroundColor = "#eeeeee";
  debugConsole.style.border = "3px solid #cccccc";
  debugConsole.style.width = "250px";
  debugConsole.style.height = "300px";
  debugConsole.style.padding = "0.5em";
  return "【DEBUG CONSOLE】";
}

/**
 * Open DebugConsole
 */
function DebugConsole_open() {
  // move DebugConsole periodically.
  this.timerId = setInterval(this.move, 1000);
  // show DebugConsole
  this.debugConsole.style.display = 'block';
  this.clear();
}

/**
 * Close DebugConsole
 */
function DebugConsole_close() {
  this.debugConsole.style.display = 'none';
  clearInterval(this.timerId);
}

/**
 * Append message to DebugConsole
 */
function DebugConsole_debug(message) {
  this.debugConsole.innerHTML += message + "<br>";
}

/**
 * Clear DebugConsole
 */
function DebugConsole_clear() {
  if(this.header == undefined || this.header == null) {
    this.debugConsole.innerHTML = "";
  } else {
    this.debugConsole.innerHTML = this.header + "<br>";
  }
}

/**
 * Move DebugConsole to NORTH-EAST corner (INTERNAL USE ONLY)
 */
function DebugConsole_move() {
  this.debugConsole.moveInternal()
}

/**
 * Move DebugConsole to NORTH-EAST corner (INTERNAL USE ONLY)
 */
function DebugConsole_moveInternal() {
  this.debugConsole.style.top = document.body.scrollTop + "px";
  this.debugConsole.style.right = "0px";
}

ダウンロード

余りニーズがあるとも思えないけれど、とりあえず。
debugconsole.js

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

Mar 09, 2006

[Misc] AJAX におけるクライアントサイドのキャッシュ機構

作り方にもよるが、非AJAX よりも AJAX の方がサーバサイドへのリクエスト数が増える。 HTML で問題になりがちな部分更新を AJAX で解決しようとすればするほどリクエスト数が増えてしまう。 というわけで、サーバサイドの負荷を減らすべく AJAX でクライアントサイドのキャッシングを実施する方法を思案中。
ちなみに、考えているだけで実際に試したわけではないので要注意。

AJAX におけるキャッシング

Cookie

Cookie にデータを保持する。JavaScript がローカルのファイルシステムにアクセスできる唯一の方法。

非表示レイヤー

JavaScript で表示されない(display: none)レイヤーを作成し、その中にデータを保存する。

  • 永続化できない(HTMLリロードで消える)
    →但し、サーバサイドと連携すれば多少は永続化出来る。
  • (一応)サイズ制限はない
  • オンメモリで保持されるため、クライアントの負荷が大きい?

Cookie のサイズ制限を考えると、非表示レイヤーを使う方が現実的か。 実際に運用されているサービスはどうしているのだろう?? 今度調べてみよう。

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

Mar 08, 2006

[Misc] MTASC にチャレンジ

MTASC とは

MTASC は、Motion-Twin ActionScript 2 Compiler の略。 名前の通り、ActionScript2 のコンパイラ。 オープンソースで提供されている。 MTASC を使用することで Flash の swf ファイルを簡単に費用をかけずに生成できる。

MTASC 公式サイト
http://www.mtasc.org/#download
MTASC ダウンロード
http://www.mtasc.org/#download

ActionScript に関する資料

ActionScript に関する知識が全く無いので、参考になりそうなサイトをメモ。

FLASH-jp フォーラム
http://www.flash-jp.com/
ActionScript ガイド
http://www.macromedia.com/jp/support/flash/technotes.html#actionScript
ActionScript 2.0 の学習
http://livedocs.macromedia.com/flash/8_jp/main/00001214.html
Flash の ActionScript チュートリアル集
http://www.3enhancedesigners.com/tutorials/flash/flash_actionscript.asp
Flash ActionScript Helper
http://homepage3.nifty.com/ginga-b/
Flash ActionScript 講座
http://www.game3rd.com/flash/action/
ActionScriptPlugin plugin
http://xdoclet.codehaus.org/ActionScriptPlugin

サンプルコード

とりあえず Hello World だけチャレンジ。

class HelloWorld {
  static var me : HelloWorld;

  function HelloWorld() {
    _root.createTextField("textfield",0,0,0,800,600);
    _root.textfield.text = "Hello ActionScript World !!";
  }

  static function main(mc) {
    me = new HelloWorld();
  }
}
コンパイルはコマンドラインから実行する。
> mtasc -swf helloworld.swf -main -header 800:600:20 HelloWorld.as

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

Mar 07, 2006

[Misc] ジェノグラフィック・プロジェクトに参加

ジェノグラフィック・プロジェクトとは

ジェノグラフィック・プロジェクトとは、「はるか遠い祖先がたどった遺伝学的な旅や実際にこの地球上を移動したルートなどについて知ることが目的」のプロジェクトらしい。 参加者は自分の DNA 情報をプロジェクトに送付すると、自分の祖先がどの大陸からどこを経由して自分へとつながっているのかを知ることができる。 プロジェクトのサイトによると、

男性参加者:Y染色体による分析。父方の直系の祖先が誕生した起源を明らかにできます。
女性参加者:ミトコンドリアDNAによる分析。母方の直系の祖先が昔に移動する際の起源を明らかにできます。
だそうだ。 これは面白そうだということで、早速参加してみることに。
ジェノグラフィック・プロジェクト
http://nng.nikkeibp.co.jp/nng/genographic/project.shtml
Genographic Project Public Participation Kit Non-U.S. and Non-Canada Delivery
http://shop.nationalgeographic.com/shopping/product/detailmain.jsp?itemID=2346&itemType=PRODUCT

Genographic Project Public Participation Kit

申し込んで 1 週間程でキットが送られてきた。 キットにはプロジェクト解説の DVD や DNA 採取器具などが含まれている。 DNA 採取は頬の内側を付属の器具でこするだけなので、手間要らずで痛みもない。 そういえば、小学校か中学校の実験でも頬の内側から細胞を採取したことがあったっけ。 返送して 4 ~ 6 週間で結果が分かるそうだ。楽しみだ。

[Genographic Project Public Participation Kit]
パッケージ
[キットの中身]
キットの中身
[DNA 採取器具]
DNA 採取器具
[採取した DNA]
採取した DNA

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

Feb 26, 2006

[Misc] WST の JavaScript エディタで日本語を表示する方法

WST の JavaScript エディタは、ファイルの文字エンコーディングが"US-ASCII"に指定されている。 そのため Windows-31J 等で記述された js ファイルを読み込むと 2 バイト文字は表示されない。 簡単な方法で 2 バイト文字を表示できたので、その方法をメモ。 方法は 2 通りあるので、好きな方を選択すれば良い。

ファイル単位で文字エンコーディング指定

*.js ファイルのプロパティ画面(*.js ファイルを選択して Alt+Enter) にある "Text file encoding" に文字エンコーディングを指定する。 コンボボックスには"Shift_JIS"、"Windows-31J"、"MS932"といった文字エンコーディングは存在しないが、メゲずに直接入力する。 ここでは "MS932" を指定している。
[プロパティ画面]
プロパティ画面で"MS932"を指定する

*.js ファイルのデフォルト文字エンコーディングを指定

"Window" → "Preferences" メニューから "General" → "ContentTypes" を選択。 "Content types" ツリーから "Text" → "JavaScript" を選択。 下の "Default encoding" が "US-ASCII" になっているので、"MS932"に書き換えて "Update" ボタンを押下。

[Preferences]
Preferences でデフォルトの文字エンコーディングを指定する
[プロパティ画面]
デフォルトの文字エンコーディングが "MS932" になっていることを確認する

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

Feb 25, 2006

[Misc] JavaScript メモ

JavaScript 関連のドキュメントを集めてみた。 JavaScript は今まで単なる手続き型言語としてしか利用していなかったので、基本から勉強し直そうと思う。

JavaScript Guide

Netscape 社による JavaScript 関連ドキュメント。 Netscape 社のサイトには既に存在しないので、別ドメインのものを参照するしかない模様。

Core JavaScript Guide
http://synchro.net/docs/js/guide/index.html
Regular Expressions
http://synchro.net/docs/js/guide/regexp.html#1010922
Predefined Functions
http://synchro.net/docs/js/guide/fcns.html#1008357
Predefined Core Objects
http://synchro.net/docs/js/guide/obj.html#1010352
Core JavaScript Reference
http://synchro.net/docs/js/ref/index.html
Chapter 1 Objects, Methods, and Properties
http://synchro.net/docs/js/ref/objintro.html#1061890
Array
http://synchro.net/docs/js/ref/array.html#1193137
Date
http://synchro.net/docs/js/ref/date.html#1193137
RegExp
http://synchro.net/docs/js/ref/regexp.html#1193136
String
http://synchro.net/docs/js/ref/string.html#1193137
Chapter 2 Top-Level Properties and Functions
http://synchro.net/docs/js/ref/toplev.html#1061890
Appendix A Reserved Words
http://synchro.net/docs/js/ref/keywords.html#1004016

JavaScript 入門

JavaScript によるオブジェクト指向開発の入門。 ↑のガイドやリファレンスへの取っ掛かりとして有益。 石井勝さんのドキュメントがあって、ちょっとしんみりした。

PART 3 JavaScript言語仕様
http://www.fureai.or.jp/~tato/JS/BOOK/BOOKSAMPL/PART3/PART3.HTM
オブジェクト指向プログラム言語としての JavaScript
http://www.tokumaru.org/JavaScript/
オブジェクトなJSの基礎講座
http://www.parkcity.ne.jp/~chaichan/src/2ndthema.htm
Objective JavaScript
http://web.paulownia.jp/script/
JavaScriptによるオブジェクト指向プログラミング
http://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/js-oop.html

Eclipse による JavaScript 開発環境

Eclipse は標準では JavaScript 用のエディタを搭載していない。 普通のテキストエディタでは物悲しいので、別途プラグインをインストールする必要がある。 JavaScript Editor PlugIn for Eclipse は既に開発が終了してしまっているみたいなので、現時点(2006/02/25)では WST を選択するのがベストだろうか。

JavaScript Editor PlugIn for Eclipse
http://sourceforge.net/projects/jseditor
Eclipse Web Tools Platform (WTP) Project
http://www.eclipse.org/webtools/index.html
wst - the web standard tools subproject
http://www.eclipse.org/webtools/wst/main.html

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

Feb 11, 2006

[Misc] ATOK のライセンス

ATOK 2006 が届いた。 ATOK を使うのは本当に久しぶり。 以前は ATOK 派だったのだけれど、ここしばらくは PC を一人で複数台使う様になったのでライセンス代がツラくて MS-IME でガマンしていた。

しかし、最近知り合いから「ATOK のライセンスは複数台の PC へのインストールを許可している」ということを教えてもらった。 本当!? それって常識!?

というわけで、早速最新版を購入してみた。

ATOK 2006 電子辞書セット

ATOK 2006 のライセンス(部分抜粋)

確かに複数台へのインストールが許可されている。すばらしい!!

第 2 条 ご使用条件
1. 弊社は、本契約にご同意いただけたお客様が下記の各号に従い本ソフトウェアを使用することを許諾します。

(1)本ソフトウェアをお客様が占有・管理する 1 台のコンピュータに複製(インストール)しお客様ご自身(お客様が法人の場合は従業員 1 名)が使用することができます。

(2)前(1)号にかかわらず、お客様の管理のもと第 3 条に違反しない範囲で、 1 台のコンピュータにのみインストールした本ソフトウェアを複数人で使用することができます。

(3)前(1)号にかかわらず、本ソフトウェアの使用者がお客様ご自身(法人の場合は特定の従業員 1 名)に限られている場合は、本ソフトウェアを同時に使用しないという条件で、お客様(当該従業員)のみが使用する他のコンピュータにインストールすることができます。

ATOK 2006 のラインアップ


ATOK 2006 for Windows CD-ROM

ATOK 2006 for Windows 電子辞典セット CD-ROM

ATOK 2006 for Windows 就活応援セット CD-ROM

ATOK 用辞書

何か辞書を追加しようかと、どういう辞書があるのか調べてみた。 用途があるのは「広辞苑」と「角川類語新辞典」くらいか。 「日経パソコン用語辞典」は 2004 年度版しか見付からないということは売れなかったのだろうか。


広辞苑 第五版 for ATOK CD-ROM

角川類語新辞典 for ATOK(NW) CD-ROM

明鏡国語辞典・ジーニアス英和/和英辞典/R.2(NW) CD-ROM

医療辞書’06 for ATOK CD-ROM

角川類語新辞典 for ATOK

ぎょうせい 公用文表記辞書 for ATOK(NW2) CD-ROM

医療辞書 2005 for ATOK (NW)

共同通信社 記者ハンドブック辞書 第10版 for ATOK (NW)

NHK 新用字用語辞書 第3版 for ATOK CD-ROM

知恵蔵 for ATOK for Windows CD-ROM

建築・土木用語変換・対訳 for ATOK for Windows CD-ROM

日経パソコン用語事典 2004 for ATOK for Windows CD-ROM

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

Feb 05, 2006

[Misc] lighttpd にチャレンジ(3)

今日は J2EE アプリケーションサーバとの連携に挑戦。 挑戦とは言ってもモジュールを 1 つ設定するだけなのだけれど。

J2EE AS 連携の設定

Apache Tomcat 5.5 と連携させてみる。

  1. Proxy モジュールの設定(/etc/lighttpd/conf-available/10-proxy.conf)を変更する
    proxy.server     = ( ".jsp" =>
                         (
                           ( "host" => "127.0.0.1",
                             "port" => 8080
                           )
                         )
                        )
    
  2. Proxy モジュールを有効にする
    # ln -s /etc/lighttpd/conf-available/10-proxy.conf /etc/lighttpd/conf-enabled/10-proxy.conf
    
  3. lighttpd を再起動
    # /etc/init.d/lighttpd restart
    Stopping web server: lighttpd.
    Starting web server: lighttpd.
    #
  4. Tomcat を起動して接続を確認する。http://server/index.jsp にアクセスして Tomcat のトップ画面が表示されることを確認する。
[lighttpd 経由で Tomcat にアクセス]
lighttpd 経由で Tomcat のトップ画面にアクセス(画像は Tomcat に振っていないので表示されない)

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

Feb 03, 2006

[Misc] lighttpd にチャレンジ(2)

昨日はとりあえず動作させるところまで試してみたので、次に Perl の CGI を試してみた。 特に悩むこともなく普通に動作できた。

Perl CGI の設定

  1. CGI 用の設定を有効にする
    # ln -s /etc/lighttpd/conf-available/10-cgi.conf /etc/lighttpd/conf-enabled/10-cgi.conf
    
  2. lighttpd を再起動
    # /etc/init.d/lighttpd restart
    Stopping web server: lighttpd.
    Starting web server: lighttpd.
    #
  3. テスト用の Perl CGI を作成する。Perl のインタプリタは lighttpd が知っているので、スクリプトの先頭に "#!/usr/bin/perl" みたいな指定をする必要はない。
    # cat /var/www/index.pl
    print "Content-type: text/html\n\n";
    print "This file is /var/www/index.pl";
    
    
[index.plにアクセス]
http://dummyserver/index.pl にアクセスしてみた

PHP CGI の設定

ついでに PHP も試してみた。 lighttpd で PHP を使用する場合、"php5-cgi" や "php4-cgi" が必要となる。 Apache HTTP Server の場合は "php5" や "php4" パッケージを使っているはずなので、Apache HTTP Server で PHP を使っている環境でも別途インストール作業が必要。

  1. php-cgi をインストール
    # apt-get install php5-cgi
    パッケージリストを読みこんでいます... 完了
    依存関係ツリーを作成しています... 完了
    提案パッケージ:
      php-pear
    以下のパッケージが新たにインストールされます:
      php5-cgi
    アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 200 個。
    4636kB のアーカイブを取得する必要があります。
    展開後に追加で 10.2MB のディスク容量が消費されます。
  2. テスト用の PHP CGI を作成する。
    # cat /var/www/index.php
    <html>
    <body>
    <?php
      print "This file is /var/www/index.php";
    ?>
    </body>
    </html> 
    
    
[index.phpにアクセス]
http://dummyserver/index.php にアクセスしてみた

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

Feb 02, 2006

[Misc] lighttpd にチャレンジ

lighttpd とは

lighttpd は軽量でセキュアな Web サーバ。 比較的新しく開発されたものらしい。 @IT の記事で紹介されていて初めて知った(via hard で loxse な日々 さんの 話題のWebサーバ「lighttpd」を使うには)。 J2EE アプリケーションサーバを除くと Apache HTTP Server 以外の Web サーバはまともに触ったことがないので、興味本位で試してみることに。

lighttpd 公式サイト
http://www.lighttpd.net/
話題のWebサーバ「lighttpd」を使うには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/842uselighttpd.html
動作可能なプラットフォームは
  • Linux (binary packages for FC3, SuSE, Debian, Gentoo, PLD-Linux, OpenWRT)
  • BSD (FreeBSD, NetBSD, OpenBSD, MacOS X)
  • SGI IRIX
  • Windows (Cygwin)
  • Solaris
  • AIX
  • and various other POSIX compatible OSes
ライセンスは新 BSD ライセンスのようだ。

lighttpd のインストール

まずは lighttpd をインストール。 プラットフォームは Debian Sarge。 Debian では lighttpd は unstable 扱いになっている。 ・・・というわけで、

  1. /etc/apt/sources.list に "deb http://http1.debian.or.jp/debian/ unstable main" を追加
  2. apt でパッケージを探す。
    # apt-get update
    # apt-cache search lighttpd
    lighttpd - A fast webserver with minimal memory footprint
    lighttpd-doc - Documentation for lighttpd
    lighttpd-mod-mysql-vhost - MySQL-based virtual host configuration for lighttpd
  3. apt でインストールする。
    # apt-get install lighttpd lighttpd-doc
    パッケージリストを読みこんでいます... 完了
    依存関係ツリーを作成しています... 完了
    以下の特別パッケージがインストールされます:
      libc6 libc6-dev libssl0.9.8 locales lsb-base
    提案パッケージ:
      glibc-doc rrdtool
    推奨パッケージ:
      php4-cgi php5-cgi
    以下のパッケージは「削除」されます:
      base-config
    以下のパッケージが新たにインストールされます:
      libssl0.9.8 lighttpd lighttpd-doc lsb-base
    以下のパッケージはアップグレードされます:
      libc6 libc6-dev locales
    アップグレード: 3 個、新規インストール: 4 個、削除: 1 個、保留: 207 個。
    15.1MB のアーカイブを取得する必要があります。
    展開後に追加で 9249kB のディスク容量が消費されます。
    続行しますか? [Y/n] Y

    [設定画面(1)]
    設定画面(1) - Locale の登録
    [設定画面(2)]
    設定画面(2) - 標準 Locale の選択
  4. インストールができたか確認する。
    # /usr/sbin/lighttpd -v
    lighttpd-1.4.9 (ssl) - a light and fast webserver
    Build-Date: Jan 30 2006 12:29:26
    #
  5. 起動確認をする。(必要であれば)Apache HTTP Server を停止して、lighttpd を起動する。lighttpd は (Debian のパッケージでは)デフォルトで 80 番ポートをバインドする。
    # /etc/init.d/apache2 stop
    Stopping web server: Apache2.
    # /etc/init.d/lighttpd start
    Starting web server: lighttpd.
    #
これでインストールは完了。

lighttpd でページを表示してみる

lighttpd のデフォルトの設定は (Debian のパッケージでは) localhost からのアクセスしか受け付けない。 というわけで、とりあえずそれを解除してから Web ブラウザでアクセスしてみる。

  1. /etc/lighttpd/livhttpd.conf にある 'server.bind = "localhost"' をコメントアウトする。
  2. lighttpd を再起動する。
    # /etc/init.d/lighttpd restart
    Stopping web server: lighttpd.
    Starting web server: lighttpd.
    #
  3. テスト用の HTML ファイルを作成する。
    # cat /var/www/index.html
    
    
      This file is /var/www/index.html
    
    
    
    
[lighttpdへアクセスしてみた]
lighttpd へアクセスしてみた

lighttpd の設定ファイル

Debian パッケージに用意されている lighttpd の設定ファイルをメモ。

  • /etc/lighttpd/
    • conf-available/
      • 10-auth.conf
      • 10-fastcgi.conf
      • 10-simple-vhost.conf
      • 10-userdir.conf
      • 10-cgi.conf
      • 10-proxy.conf
      • 10-ssi.conf
      • README
    • conf-enabled/
    • lighttpd.conf

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

Jan 29, 2006

[Misc] Microsoft Physics Illustrator for Tablet PC にチャレンジ

Microsoft Physics Illustrator for Tablet PC とは

Physics Illustrator はタブレット PC 用の物理シミュレータ。 hirax.net さんのところで 手書きの「ピタゴラ・シミュレータ」 として紹介されていたのを見て、楽しそうだったので試してみた。 (結城浩の日記 さんの 手書きの「ピタゴラ・シミュレータ」 経由) ただ、タブレット PC 用と銘打っているだけあって、普通の Windows XP Professional で動かすには一工夫必要。

Microsoft Physics Illustrator for Tablet PC
http://www.microsoft.com/downloads/details.aspx?FamilyID=56347faf-a639-4f3b-9b87-1487fd4b5a53

インストール時のメモ

Physics Illustrator for Tablet PCの動かし方(修正版) で紹介されている方法で問題なく動作した。 手元の環境 (Windows XP Professional) では以下の通りで動作した。

  1. .net framework は既にインストールされている(ver.1.1)ので何もしなかった
  2. Tablet PC Platform Software Development Kit (SDK) v1.5 をインストール。
  3. Microsoft Physics Illustrator for Tablet PC を起動

遊んでみる

期待通りかなり楽しめた。 ただ、トラックパッドではなかなか直線、曲線を描くのが大変。 やはり Tablet PC の方が操作はし易いだろうな、という感じ。
ところで、だれかこういうインターフェースの IDE を作ってくれないかな。

[physics(01)] [physics(02)] [physics(03)] [physics(04)] [physics(05)]

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

Jan 28, 2006

[Misc] xfy にチャレンジ

xfy とは

xfy とは Justsystem が公開している XML オーサリングツール(?)。 XHTML、SVG など様々な規格に対応していて便利。 しかも Java でプラグインも作成可能。

xfy
http://www.xfytec.com/
what's xfy
https://www.xfytec.com/whats/

実際に試してみる

  1. ダウンロードページからバイナリ(ここでは xfy_combo_pack_051114.exe)をダウンロード。(要ユーザ登録)
  2. インストーラの指示に従ってインストール
  3. 起動してサンプルを開いてみる
    [xhtmlのサンプルを開いたところ]

付属のサンプル

xfy には以下のサンプルが付属していた。 サンプルはデフォルトのインストール先を選択した場合、C:\Program Files\Justsystem\xfy Basic Edition 1.0\doc\samples にある。

  • compound
  • mathml
  • shapeml
  • svg
  • tutorial
  • xhtml

xfy アプリケーション

xfy 用のアプリケーション(プラグイン??) がいくつか公開されていたので、その中で CML Viewer XVCD というのを試してみた。 CML Viewer XVCD は、Chemical Markup Language(CML) のビューア。 CMLViewerXVCD_kisi_060117.zip をダウンロードして、index.xml を xfy で開くとサンプルを見ることができる。
[CML Viewer XVCD の画面]

CML Viewer XVCD
https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=24&lid=24

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

Jan 22, 2006

[Misc] 今更 ajax にチャレンジ

ajax でちょっとしたタブ型のインターフェースを作ってみた。 こういうものと昨日調べた JavaScript のテンプレートエンジンを組み合わせると面白いのではないかと思って。 テンプレートエンジンとの組み合わせはまだ出来ていないのだけれど。

2006/01/21 2006/01/20 2006/01/18 2006/01/17 2006/01/16

JavaScript を有効にすると動作します。

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

Jan 21, 2006

[Misc] JavaScript のテンプレートエンジン

JavaScript のテンプレートエンジンを集めてみた。 意外と見つからなかった。もう少し見付かるかと思ったのだけれど・・・。

Ajax Pages
http://ajax-pages.sourceforge.net/
Jamritas
http://sourceforge.net/projects/jamritas/
JKL.Hina
http://www.kawa.net/works/js/jkl/hina.html
TrimPath
http://sunset.freespace.jp/smarty/
Lyase.View
http://inforno.net/articles/2006/02/15/the-embed-javascript-implementation
(2006/02/21) Inforno さんのテンプレートエンジン追加。Trackback Thanx!! > Inforno さん
(2006/02/24) Inforno さんのテンプレートエンジン名称を正式なものに修正。

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

Jan 13, 2006

[Misc] パスワード強度に関するメモ

ちょっと気になったのでパスワード強度に関して調べてみた。 いくつかメモ。 パスワード強度は"password strength"とか"password quality"とか言うみたい。 調べた限りではパスワード強度の標準的な算出方法は見付からなかった。 サイト毎に独自で実装しているのだろうか??

Iris Today Archives - パスワード・クオリティーを理解する
http://www-06.ibm.com/jp/software/lotus/developer/iris_today/20010904_5.html#1
Understanding password quality
http://www-10.lotus.com/ldd/today.nsf/8a6d147cf55a7fd385256658007aacf1/098c9f7d4a0cccbd85256abc0011e4f0?OpenDocument
Password Quality Scale
http://www.eclipse-education.com/eclipseweb.nsf/0/b565c53895a58b170525693f001037c2?OpenDocument

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

Jan 11, 2006

[Misc] サニタイズ言うなキャンペーンについてメモ

「サニタイズ言うなキャンペーン」に関するメモ。 サニタイズという言葉が問題だということは分かるけれど、Web アプリケーションにおけるプレゼンテーション層の標準的なフローがイマイチ明確にされていないのがそもそもの問題だと思う。

「サニタイズ言うなキャンペーン」とは何か
http://takagi-hiromitsu.jp/diary/20051227.html#p02
はてなダイアリー - サニタイズとは
http://d.hatena.ne.jp/keyword/%A5%B5%A5%CB%A5%BF%A5%A4%A5%BA?kid=127293
要約版:「サニタイズ言うなキャンペーン」とは
http://takagi-hiromitsu.jp/diary/20051231.html#p02
「サニタイズ言うなキャンペーンがわかりにくい理由」
http://bakera.jp/hatomaru.aspx/ebi/2006/1/5
セキュアなWebアプリ実現のために本来やるべきことは? - 高木浩光氏
http://pcweb.mycom.co.jp/articles/2005/07/12/wasf/

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

Jan 08, 2006

[Misc] LANDISK の telnet に関するメモ

LANDISK の telnet サポート

I・O Data 製 NAS の LANDISK で簡単に telnet サーバを立ち上げる方法をメモ。 wizd on LANDISK さんが公開されているアップデータを利用すると簡単にできる。 wizd on LANDISK さんに感謝!!

LANDISK HDL シリーズ
http://www.iodata.jp/prod/storage/hdd/2005/hdl-u/
LANDISK HDL シリーズサポートソフトライブラリ
http://www.iodata.jp/lib/
wizd on LANDISK
http://landisk.sealandair.info/

手順

  1. ここから最新ファームウェアをダウンロードする。
  2. ファームウェアを最新のものに更新する。
  3. ここから landisk_telnetd_v2.0.zip をダウンロードする。
  4. landisk_telnetd_v2.0.zip 内の update.tgz で再度 LANDISK を更新する。
  5. LANDISK に ユーザ "landisk" を追加する。
  6. LANDISK に telnet で接続してみる。
    Linux 2.4.21 (hoge.example.com) (0)
    
    
    hoge.example.com: landisk
    Password:
    No directory, logging in with HOME=/
    bash$ uname -a
    Linux hoge.example.com 2.4.21 #48 Tue Mar 22 22:03:49 JST 2005 sh4 unknown
    bash$

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

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 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 クリップ |

Nov 23, 2005

[Misc] Java Web Start メモ

Java Web Start に関してちょっと調べてみた。 簡単にメモ。

Java Web Start 公式サイト
http://java.sun.com/products/javawebstart/index.jsp
Java Web Start Architecture JNLP Specification
http://java.sun.com/products/javawebstart/download-spec.html
Java Forums - Java Web Start & JNLP
http://forum.java.sun.com/forum.jspa?forumID=38

JNLP ファイルさえ書ければ簡単に Java Web Start アプリケーションを構築できる。 ただ、JNLP ファイルが意外と落とし穴だったりする。 JNLP ファイルの DTD は Java Web Start の仕様書(JSR-56) に記載されている。

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

Nov 20, 2005

[Misc] コンテンツ移動のお知らせ

http://www.in-vitro.jp/blog/index.cgi/Misc/20051120_01.html はこちらに移動しました。
Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 10, 2005

[Misc] 影舞のレポートを CSV 形式でエクスポートしたい

影舞は RSS もサポートしているし統計も自前で表示してくれるのスグレモノなのだけれど、事情により CSV 形式のエクスポートもしたい。 ということで、影舞に少し手を入れてみた。 Ruby は初めてなので「とりあえず動く」レベルの仕上がり(^^;

ダウンロード

影舞用CSV出力プラグイン

動作環境

このプログラムは下記の環境で動作する。

  • Debian Sarge
  • 影舞 0.8.6

インストール方法

  1. export_csv.rb を $KAGEMAI_HOME/lib/kagemai/cgi/action にコピー
  2. export_csv.rhtml を $KAGEMAI_HOME/resource/ja/template/_default にコピー
  3. http://localhost/kagemai-0.8.6/html/admin.cgi?project=myproject&action=export_csv にアクセスして動作確認を行う

出力例

下記の様な感じで、「レポートID、レポート作成日時、レポート更新日時、メッセージID、報告者、状態、処理方法、優先度、重大度、担当者」というフォーマットの CSV が出力される。

1,2005/11/08 01:53:09,2005/11/08 01:53:24,1,myaccount@example.com,新規,未処理,緊急,重大,未定,
1,2005/11/08 01:53:09,2005/11/08 01:53:24,2,myaccount@example.com,新規,未処理,緊急,重大,未定,
2,2005/11/08 02:11:19,2005/11/08 02:11:19,1,myaccount@example.com,新規,未処理,中,普通,未定,
3,2005/11/08 02:11:34,2005/11/08 02:11:34,1,myaccount@example.com,新規,未処理,中,普通,未定,

カスタマイズ方法

出力する項目をカスタマイズしたい
export_csv.rb を適当に編集してください
CSV ファイルにコメントを付加したい
export_csv.rhtml を適当に編集してください

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

Nov 08, 2005

[Misc] 影舞にチャレンジ

影舞とは

Ruby 製の Bug Tracker。 名前で分かる通り国産。素晴らしい!!

影舞 公式サイト
http://www.daifukuya.com/kagemai/
影舞のインストール方法
http://www.daifukuya.com/kagemai/doc/install.html
インストール中に参考にしたのはこちら↓
[kagemai-users:0343] Re: コンフィグファイルとsafe
http://www.daifukuya.com/kagemai/ml/users/msg00343.html
[kagemai-users:0438] Ruby/MySQL 0.2.5 での影舞の利用について
http://www.daifukuya.com/kagemai/ml/users/msg00438.html

インストールメモ

影舞を Debian Sarge にインストールしたときのインストールメモ。 GD 周りでいくつかパッケージを調べたりしたけれど、基本的には非常に簡単だった。 後でもう一度構築する可能性があるのでとりあえずメモを残しておく。 それにしても、VMWare Player は中々調子が良い。 素晴らしい!!

# uname -a
Linux debian-sarge 2.6.8-2-386 #1 Thu May 19 17:40:50 JST 2005 i686 GNU/Linux

  1. 下準備
    Apache2 のインストール
    # apt-get install apache2
    
    Ruby のインストール
    # apt-get install ruby1.8
    # apt-get install libapache2-mod-ruby
    
    Apache2 の設定
    • /etc/apache2/apache2.conf にある AddHandler cgi-script .cgi のコメントアウトを外す。
    • /etc/apache2/sites-available/default にある /var/www/ 用の Directory の設定で Options に ExecCGI を追加する。
  2. 影舞のインストール
    インストール
    # tar zxvf ./kagemai-0.8.6.tar.gz
    # mv ./kagemai-0.8.6 /var/www
    # chown -R www-data:www-data /var/www/kagemai-0.8.6
    # chmod 755 /var/www/kagemai-0.8.6/html/*.cgi
    
    確認
    http://localhost/kagemai-0.8.6/html/guest.cgi にアクセスしてみる。
  3. MySQL のインストール
    インストール
    # apt-get install mysql-server-4.1
    # apt-get install libdbd-mysql-ruby1.8
    
  4. 影舞のデータベース設定
    影舞用のデータベースを作成
    # mysql
    mysql> create database kagemai;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> grant all on kagemai.* to kagemai@localhost;
    Query OK, 0 rows affected (0.01 sec)
    
    影舞の設定変更
    影舞の管理メニューから"全体の設定の変更"を選択して下記の通り設定。
    • enable_mysql=true
    • mysql_host=localhost
    • mysql_port=3306
    • mysql_user=kagemai
    • mysql_pass=
    • mysql_dbname=kagemai
  5. グラフ出力用設定
    GD, GDChart インストール
    # apt-get install libgd-ruby1.8
    # apt-get install libgdchart-gd2-xpm
    
    Ruby/GDChart インストール
    1. http://sourceforge.jp/projects/ruby-gdchart/ から ruby-gdchart-0.0.9-beta.tar.gz をダウンロード
    2. Ruby/GDChart をコンパイル
      # tar zxvf ./ruby-gdchart-0.0.9-beta.tar.gz
      # cd ruby-gdchart-0.0.9-beta
      # apt-get install ruby1.8-dev ・・・ require 'mkmf' を解決するために ruby1.8-dev を入れる
      # apt-get install libgd-dev ・・・ ruby/gdchart のコンパイルに必要なので libgd-dev を入れる
      # ruby extconf.rb
      # make
      # make install
      
    日本語フォントインストール
    # apt-get install ttf-kochi-gothic ttf-kochi-mincho ttf-sazanami-gothic ttf-sazanami-mincho
    
    影舞の設定変更
    影舞の管理メニューから"全体の設定の変更"を選択して下記の通り設定。
    • enable-gdchart=true
    • gd-font=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
    • gd_chasert=UTF-8
Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 04, 2005

[Misc] コンテンツ移動のお知らせ

http://www.in-vitro.jp/blog/index.cgi/Misc/20051104_01.html はこちらに移動しました。
Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 07, 2005

[Misc] 開発作業を整理してみる

さて、先日は開発環境を整理してみたので、次は開発作業を整理してみたい。 ここでの開発作業とは、アプリケーションの実装に必要なあらゆる作業のこと。 コーディング、テスト、ディプロイなど定常的な作業もあるし、ステージング環境の構築のような作業も含める。 定義が結構曖昧だけれど、要は「モノを作る人たち」の責務となる実装に焦点を当てた作業。 その辺りの作業をどこまで自動化できるか、どこまで手順化できるか整理しておきたい。

[開発作業]

★Project Task
プロジェクトスコープのタスク。Shared Environment 構築、Workspace Environment 構築、など。ここは自動化というより手順化。自動化してもコストに見合わないため。
Shared Environment 構築
一番最初に行うべきタスク。手順化しておいて手順書通りの作業を行うようにしておくのがベストか。
アプリケーション雛形作成
ディレクトリ構成や自動化されたタスクのスクリプト、各種ツール類の標準設定などを含んだアプリケーションの雛形を作成するタスク。自動化する範囲にもよるが結構な量の設定が必要となるのでテンプレートもしくはウィザードが欲しい。
Workspace Environment 構築
最低でも手順化は必要だが、開発者の人数が多い場合は必要なソフトウェアを自動インストールしてくれると便利か。
★Phase Task
イテレーション単位のタスク。リリース、結合テスト、コードレビューなど。ここは可能な限り自動化したいが、人手に頼る部分も大きい。
リリース
実行可能なモジュールとドキュメント、ソースコードなど納品物一式を整える。ビルドマネジメントツールで自動化する。Maven は標準でサポートしているのでカスタマイズだけで済む。
結合テスト
コードレビュー
基本的には人手で行う必要があるが、ツールでかなり広範なサポートが可能。Jalopy、CheckStyle、FindBugs、JLint、JMetric などで単純作業を減らす。
★Build Task
実装作業レベルのタスク。コンパイル、単体テスト、パッケージング、ディプロイなど。ここが一番自動化しやすい。このタスクは基本的にビルドマネジメントツールで自動化しておく。

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

Aug 04, 2005

[Misc] 開発用ツールの選択肢

開発環境を構築するのに利用できそうなツールを各項目毎にリストアップしてみた。 (他にもあると思うが)この中から良さそうな組み合わせを考えてみたい。 まずは一通り実際の使用感を確かめないと・・・。

Shared Environment

SCM(Source Code Management) CVS, Subversion, VSS, StarTeam
Executable Code Management
Build Management Maven2, Maven, Ant, Antmod, Invicta, LuntBuild
Source Health Management CI(Continuous Integration) CruiseControl, DamageControl, Continuum, Hudson
Integration Tester Selenium, e-Test
Information Sharing Issue Tracker Bugzilla影舞, Scrab, TrackIt, jTrac
Feature Tracker Scrab
Document Management System
BBS/Wiki 【Wiki】Hiki, PukiWiki, YukiWiki, 【BBS】ClipBoard, MegaBBS

Workspace Environment

IDE(Integrated Development Environment) Eclipse, NetBeans, JBuilder, JDeveloper, Sun Java Studio Creator

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

Aug 02, 2005

[Misc] 開発環境を整理してみる

[開発環境]

開発環境は意外とプロジェクト毎にマチマチになってしまっている感じがするので、一度 TO-BE 像を整理をしてみた。 適当に整理しただけなので、造語が混ざっていたりするがご愛嬌ということで。 これを基に一度環境の見直しをして、その結果をフィードバックしていきたい。 大手だと標準化されているのだろうな。

★Shared Environment
プロジェクトで共有される環境。

☆SCM(Source Code Management)
ソースコード管理システム。 プロジェクト成果物のバージョン管理を行う。 CVS, Subversion, VSSなど。
☆Executable Code Management
実行可能コード管理システム。 開発対象システムが依存する外部ライブラリの管理を行う。 Maven のリモートリポジトリなど。
☆Build Management
ビルド管理ツール。 Maven2, Maven, Ant, make, shell scriptなど。
☆Source Health Management
定期的にプロジェクト成果物のヘルスチェックを行う。
CI(Continuous Integration)
継続的インテグレーションシステム。 定期的に開発対象システムのインテグレーションを実行する。 CruiseControl, DamageControl, Continuumなど。
Integration Tester
結合テストツール。 実行可能な状態にされた開発対象システムに対して自動的に結合テストを行う。 e-Testなど。
☆Information Sharing
プロジェクトメンバー同士の情報共有機能を提供する。
Issue Tracker
バグやその他重要な事項を管理する。 Bugzilla影舞など。
Feature Tracker
システム要件を管理する。
Document Management System
ドキュメント管理システム。 各種CMS、Wikiなど。
★Workspace Environment
開発者毎に用意される環境。

☆IDE(Integrated Development Environment)
統合開発環境。 Eclipse, NetBeans, JBuilder, JDeveloper など。
☆Build Management
ビルド管理ツール。 Maven2, Maven, Ant, make, shell scriptなど。
★Staging Environment
ステージング環境。

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