« 2007年1月 | メイン | 2007年3月 »

2007年2月 アーカイブ

2007年2月28日

amazon の関連商品をグラフィカルに楽しく検索!

先日、「mash up award 2nd 出品アプリ第一弾公開 (でぃべろっぱーず・さいど)」で、asso-ballというアプリを公開しました。

関連する言葉を拾ってきて遊ぶアプリですが、関連と言えばamazonの関連商品。ということで、関連商品をボールにのせてグラフィカルに楽しくたどっていくアプリを作ってみました。

asso-ball.net --- amazonの関連商品を楽しく閲覧しよう!

最初にキーワードを入力して、後は表示されるボール(商品)をクリックしていくだけ。

玉は上書きされてしまいますが、上書きして欲しくない玉は右クリックメニューの「キープする」で固定することができます。

また、同じく右クリックメニューからamazonの商品ページへリンクすることも可能。

触っていると楽しいので是非おためしください。

まだまだ痒いところに手が届いてませんが、今後改善していきます。

感想等メールやコメントでいただけると嬉しいです。

2007年2月27日

redMine インストール&日本語化手順

プロジェクト管理ツールredMineが気になっていたので、fedoraにインストールしてみました。

rails -v

を実行してrailsのバージョンを確認します。

1.2.0以下なら、下記コマンドからrailsをアップデート。

gem install rails --include-dependencies

これで1.2.2になりました。

ここから、最新版のredmineをダウンロードして、インストール先へアップします。

日本語化用のファイルはこちら
。(←結構適当に訳しているのでおかしいところは直してください。文字コードはUTF-8です)

このja.ymlをlangフォルダ(en.ymlとかあるところ)へ配置します。

※2007.4.11 0.5.0のリリースで公式に日本語化されました。(2007.4.12 追記)

以下の内容は、docs/INSTALLにも書いてあります。

tar zxvf [filename]

で解凍します。

続いてmysqlに接続。

mysql -u root -p
password:****

でもって、redmineスキーマを作成。

create database redmine;

続いて、解凍後のフォルダのconfig/database.ymlを開いて、productionの項目を修正します。

production:
adapter: mysql
database: redmine
host: localhost
username: root
password:

さて、いよいよrakeコマンド。アプリケーションのルートディレクトリ(Rakefileがあるところ)へ移動して、以下のコマンドを実行。

rake migrate RAILS_ENV="production"

続いて以下のコマンドも。

rake load_default_data RAILS_ENV="production"

ここで言語設定を聞いてくるので、jaを入力(選択)します。

で、以下のコマンドでWEBrickを起動すればportが3000番で開始されます。

ruby script/server -e production

ここまで約10分(もかかってないかも)。Tracに比べると簡単だなぁという印象です。

SMTPと連携してメールを出したりしたい場合は、config/environment.rbの以下の箇所を修正しましょう。

# SMTP server configuration
config.action_mailer.smtp_settings = {
:address => "127.0.0.1",
:port => 25,
:domain => "somenet.foo",
:authentication => :login,
:user_name => "redmine",
:password => "redmine",
}

注意点が1つ。

admin/adminで管理者のログインができますが、このユーザのデフォルト言語設定がenになっているので、日本語で見えていてもログイン後英語になってしまいます。

user settingから言語設定をjaに変更すれば管理者も日本語で見ることができます。

2007/2/28 追記
上記以外にもちゃんと使うにはいくつか設定が必要です。

日本語環境でカレンダーを使うには、下記calendar-ja.jsを、javascriptのlangフォルダの中に入れてください。
カレンダー.jsをダウンロード

2007年2月26日

asso-ball.net 機能追加

昨日公開したばかりasso-ball.netですが、早速機能追加をしました。

追加した機能は以下の通り。

1.ボールがぶつかったときは、ぶつかる前の言葉を記録していて、GoogleとSagoolで新しい言葉との2語検索ができる。

2.1つのボールから分裂するとき、kizasi.jpからの関連語が8個以上あっても、wacaalからの「今検索されている言葉」を1つ混ぜ込む。


今回の機能追加で、言葉のランダム性が増し、オート・マンダラート的な意味合いが強くなりました。

昨日よりもおもしろくなっていますので、是非遊んでみてください。

2007年2月25日

mash up award 2nd 出品アプリ第一弾公開

mash up award 2nd (でぃべろっぱーず・さいど)」で、award応募用の企画コンセプトがあると書いていましたが、そちらの企画はチームを組んでやろうと思ってました。

で、ふと「あ、こんなのおもしろそう」と思いついたアイデアがあったので、そちらの方をさくっと作ってみました。

asso-ball.net --- 関連する「言葉玉」で遊ぼう!

asso-ball、一応「あそぼーる」と読みます。

assoは、associateのassoです。

kizasi.jpの関連語検索を利用して、入力した言葉、クリックした言葉の関連語を拾ってきます(緑色の玉)。もし、関連語が8個に満たないときは、SAGOOLで今検索されている言葉を拾ってきて表示します(青い色の玉)。

それぞれの玉の上で右クリックすると、Google検索とかはてブ検索とかできたりします。

ネーミングには「遊ぼー」という意味も込めてます。

「何に使うの?」と聞かれても、特にこれに使ってくださいというものはないのですが、何かのアイデアを出したいときとか、暇つぶしとか、ネットサーフィンの入り口に、とか使ってもらえると嬉しいです。

感想とかコメントやメールでもらえると嬉しいです。

サイトは、これからもう少しお化粧しようかと思ってます。今はただアプリを置いているだけなので。

2007年2月24日

"Google Apps Premier Edition" サービス開始

Japan.internet.com Webビジネス - Google、『Google Apps Premier Edition』の提供を開始
Google Apps Premier Edition、国内でも提供開始へ (MYCOMジャーナル)
グーグル、サブスクリプションベース「Google Apps Premier Edition」を公開へ - CNET Japan

とうとう始まりましたね、Google Appsの有償サービス。

Googleのヘビーユーザな僕としては、うちの会社が率先して取り入れてくれないかなぁと思ってるんですが、果たして。

で、年間約6,000円強/人が、高いか、安いかという感じになってくるんですが、10GのWebメール運用がまかせられて、耐障害性も保証され、その上でWebのアプリになることで得られる様々な利便性を考えると「格安」なんじゃないかと思います。

ただ、「企業」向けなんで、こういうWeb系のツールを使い慣れていないおじさんおばさんが大量に会社に存在することが、普及のネックになりそう。

こういう新しいツールを会社に導入しようとすると、既存のアプリに慣れている人(悪く言うと「利便性を追求する向上心がない人」)の抵抗が大きいですからね。

<関連エントリ>
「Google Apps for Your Domain」で見え隠れするGoogleの戦略 (でぃべろっぱーず・さいど)
「Google Apps for Your Domain」の今後 (でぃべろっぱーず・さいど)

2007年2月23日

Railsで作られたプロジェクト管理ツール"redMine"

redMine - project management and issue tracking

Rubyで作られたプロジェクト管理ツールです。

GanttチャートやMyページなど、Tracにはデフォルトで備わっていない機能が付いてますね。

デモサイトはこちらです。

Tracよりも使いやすいのかしら。

サイトに書かれている特徴には以下のものが挙げられています。

・Multiple users/multiple projects
 →多様なユーザ/プロジェクトに対応
・Fully customizable role based access control
 →アクセス制御によるカスタマイズ可能な権限管理
・Issue tracking system
 →問題課題追跡システム(トラッキングシステム)
・Fully customizable workflow
 →カスタマイズ可能なワークフロー
・Documents/files repository
 →ドキュメント/ファイル・リポジトリ
・News management
 →ニュース(連絡事項)管理
・SVN browser and diff viewer
 →SVNブラウザと差分表示
・Email notifications
 →Emailによる連絡
・Custom fields for projects, users and issues
 →プロジェクトやユーザや問題・課題に固有の項目を追加可能
・Multiple LDAP authentication support
 →多様なLDAP認証をサポート
・User self-registration support
 →ユーザ自身によるユーザ登録をサポート
・Multilanguage support (english, french, german, spanish)
 →他言語対応(英語、フランス語、ドイツ語、スペイン語)
・Multiple databases support: MySQL, PostgreSQL, Oracle, SQL Server, SQLite
 →多様なデータベースをサポート

そして、今後予定されている機能として、以下のものが挙げられています。

・Time tracking
 →時間による追跡機能(タイムトラッキング)
・Per project wiki
 →プロジェクト毎のWiki

Tracを触っている経験から、「プロジェクトやユーザや問題・課題に固有の項目を追加可能」とか、「ユーザ自身によるユーザ登録をサポート」とか、「多様なデータベースをサポート」は魅力的かも。

Tracだと、Pluginを入れないと使い勝手がなかなか向上しない部分が上手くフォローされている気がします。

また、Railsで書かれているということで、日本語対応も意外と簡単なのではと、勝手に思っていたり。

今後予定されている「プロジェクト毎のWiki 」は是非とも使い勝手が良いWikiにして欲しいです。TracのWikiは使えないです。

逆にTracでサポートされている、RSS配信やPluginとかはまだこれからなのでしょうか。

ちょっと調べてみて、会社の勉強会で発表しようかな。

<関連エントリ>
redMine 0.5.1 公開 (でぃべろっぱーず・さいど)(2007/7/17 追記)
・その他当サイト内のredMine情報はこちら↓
でぃべろっぱーず・さいど: 「redMine」のアーカイブ

2007年2月22日

ブログで話題の観光スポットをGoogleMaps上にプロット --- kizasiおでかけマップ

ブログで話題の観光スポットが地図で探せる「kizasiおでかけマップ」 - CNET Japan
kizasiおでかけマップ

検索エンジンで最近注目されているkizasiが、GoogleMaps上にブログで話題になっている名所をマッピングするサービスを開始しました。

また、月ごとにブログで話題になっている場所を分けて表示するため、たとえば春は桜の名所、夏は花火が見られる場所といったように、季節に応じて人気のある場所が表示されるようになっている。

月ごとの表示は確かに便利かも。

観光地って時期によって賑わうところが変わりますからね。こういうちょっとしたきめの細かさが、サービスの楽しさをUPしてくれます。

赤い同心円でそのスポットの「熱さ」を表現してくれるのも良い感じですね。

2007年2月21日

slowriderの次回公演Flash

数年前から、友人がやっている劇団slowrider (スロウライダー)のWebマスターをやってます。

公演があるごとに、その公演の特設コンテンツを作成しているのですが、回を重ねる毎に凝ってきてまして、今回は音も加えてみました。

スロウライダー第9回公演「Adam:ski」

MashupAward2ndもFlashアプリを作ろうと思っていたので、ActionScriptをもう少し深く勉強してみようかと思ってます。

年始に、Rubyやると宣言し、直後にPythonに鞍替え、挙げ句にActionScriptかよ、という感じですが、prototypeベースのJavaScriptプログラミングみたいなのにも興味があって、その辺の雰囲気をちょっと味わいたく。

ということで、↓「Flash Hacks―プロが教えるテクニック&ツール100選」を買っちゃいました。

Flash Hacks―プロが教えるテクニック&ツール100選
シャム バンガル Sham Bhangal クイープ
オライリージャパン
売り上げランキング: 20721

役立つTipsが満載で、これを読んでいるだけでも、Mashupアプリのネタが浮かんできちゃいました。

動きやアニメーションのテクニックだけでなく、パフォーマンスやActionScript、ブラウザとの連携等々かゆいところにも手が届く内容になっています。

初版が2005年7月と若干古めですが、Flash MXでのFlash作成に慣れてきた人が、次のステップに行くための内容になっていると思います。

さて、頑張りますか。

2007年2月20日

機械的に処理したものを人がフォローする仕組み

Googleの翻訳ツールに追加された『suggest a better translation』 | P O P * P O P

過去に「楽しく情報をまとめあげる方法」というエントリで、GoogleがGoogle Image Labelerというサービスを使って、イメージ検索の精度を高めようとしているということを取り上げました。

すべての情報を機械的に処理していくことが多いGoogleにしては、珍しいサービスでしたが、またしても人の手を使って情報の精度を高めるというサービスを開始したようです。

今度は、Google Translatetという翻訳サービスでの取り組み。

機械的に翻訳されたページの中で、訳したい部分をクリックして表示されるテキストボックスに、訳を入力していく形のようです。

ボランティアで翻訳の精度を高めていくということで、なんとなくWikipediaのスタンスに似ていますね。

そのうち検索結果自体も、人為的な作業で順位を変動させるような仕組みができるかもしれません。

2007年2月19日

普段使いのアプリを持ち歩く

ITmedia Biz.ID:カスタマイズなしのPC利用法

PCの移行、クリーンインストールって、私の中では一大イベントだったりします。

移行前にデータを整理して、必要なソフトをメモして、あれやこれやと準備をしても、いざ新しい環境になったとき、「あー、あのソフトの認証コードメモるの忘れたー」なんてことが必ず1つは起きてしまいます。

記事にあるように、なるべく標準のソフトだけを利用していれば、それほど苦労もないのでしょうが、まだそこまで思い切ることができませんね。

メールをGmailに、Office系をGoogle Apps中心に利用していくのは実践していますし、また、音楽ファイルは外部HDDに保存していたりしますが、アプリの開発環境系を保存しておくのはなかなか難しいです。

そんな中、記事で紹介されているU3規格のUSBは便利そう。

Amazonで調べたら、1GBが5,000円弱、4GBでも1,5000円弱なんですね。

自分のよく利用するアプリをこうして持ち歩いてみるのも、なかなか楽しいかもしれません。

San Disk SDCZ6-1024-J65 U3対応 USBメモリ Cruzer Micro 1GB 黒
サンディスク (2006/06/19)
売り上げランキング: 2413
U3対応USBフラッシュメモリ CruzerMicro 4GB
サンディスク (2006/12/08)
売り上げランキング: 946

2007年2月18日

表現力のあるJavaScriptライブラリScript.aculo.us

まるごとJavaScript&AjaxのScript.aculo.usサンプルインデックス|blog|たたみラボ

たたみラボでScript.aculo.usのサンプルが公開されています。

JavaScript(Ajax)でここまで表現できるというのは驚き。

一昔前ならFlashという選択肢しかなかったもの(例えば、画像のフェードイン/アウトとかパン処理とか)が結構綺麗に実現できています。すごいなぁ。


まるごとJavaScript & Ajax ! Vol.1
天野 仁史 舘野 祐一 川崎 有亮 小飼 弾 arton 田中 孝太郎 国分 裕 山本 有悟 海野 裕也 nanto_vi
インプレスジャパン
売り上げランキング: 302

2007年2月17日

Vista売れず

「発売後一週間のパッケージ版Vistaの販売数がXPを下回る」--NPD調査 - CNET Japan

Vistaの売れ行きがかんばしくないようです。

つまり、速報値は、Vistaの新機能を活用するにはもっと強力なシステムが必要だというメッセージが消費者に伝わっており、そのため古いマシンを自分で新OSにアップグレードするユーザーが比較的少ないことを示している

確かに。

私も年始から新しいPCを使っていて、購入するときには「Vistaにも耐えられるだけの強力なマシンにしよう」と意気込んでいたんですが、いざXPで使ってみると、スペックが良いだけにかなり快適に動きます。これで、Vistaにアップグレードしたら、また操作感が前のような感じになるのかと思うと、アップグレードに二の足を踏んでしまいます。

しかも、パッケージが多すぎて、どれが自分に適しているか分かりませんし、今利用しているソフトウェアがそのまま利用できるのかという不安もあります。

本来は、そういった不安を払拭するくらいの魅力が、新しいOSにはあってしかるべきだったのでしょうが、それも特になし(メッセージが私に届いていないだけかも)。

アップグレードはもう少し様子見ですね。

2007年2月16日

hatenaの新サービスRimoの斬新さ

はてなが新サービスを開始しました。

その名も、「Rimo」。

サービス名にも、ドメイン名にもhatenaの文字はありません。

サービスの内容は、YouTubeの人気動画を画面いっぱいに表示して、だらだらと流す、というシンプルなもの。

サービスの内容だけ聞くと、それほど目新しさを感じることもないのですが、実際に利用してみると、いやこれがなかなか。

人気動画を自動的に次々と流してくれるので、動画が終わったら次の動画を「選ぶ」という動作がありません。さらに、再生バーや停止等の、いわゆる動画サービスにありがちなインターフェースもほとんどなし。能動的な作業が要らないということが、これほど快適なものなのかと改めて認識させてくれます。

そんな新サービスを開発した方のインタビューがITmediaに掲載されていました。

ITmedia News:YouTubeをテレビで“ダラ見” はてな、Wii対応の動画サービス (1/2)

急スピードで改良していくが、サービスは「β版」ではない。「『ベータ』とは言いたくない。普通の人には、分からない言葉だから」(神原さん)

こういう発言にはてならしさを感じます。

2007年2月15日

HTMLメールは悪いのか?

大学でパソコンを使い始めた頃、先輩から注意されたのがHTMLメールについてでした。

そのとき使っていたOUTLOOKでは、デフォルトのメールがHTMLメールに設定されていて、何も知らないとHTMLメールで送り続けることになっていたわけです。

新入社員が注意されることが多いのが、この「電子メールの設定をHTMLメールではなくすること」だったりします。

私もこれまでに何人かの後輩にそういう注意をしてきました。

が、HTMLメールってそんなに悪いものなのでしょうか。

HTMLメールが悪いとされる理由には以下のようなものが挙げられます。

  • HTMLメールに対応していないメーラがある
  • メールのサイズが大きくなる
  • ウィルス感染の原因になりやすい

上から順番に考えてみます。

・HTMLメールに対応していないメーラがある

メーラのシェアについてググってみると、「【結果発表】HTMLメールをどう思いますか?:ITpro」という調査結果に行き当たりました。

ネットでのHTMLメールに関するアンケートなので、調査結果に偏りがあるとは思いますが、まあ参考程度にはなるでしょう。

このページの図6に挙げられているほとんどのメーラが、メーラそのものの機能や外部の機能を利用してHTMLメールを見ることができます。

インターネットがスタートした当初はHTMLメールに対応していないということがあったのでしょうが、今となってはあまり意味をなさない言い訳なのかもしれません。

ただ、私が利用しているShurikenなどは、HTMLメールが送信されてきても、まずテキスト部分だけのメールとして表示され、HTMLを解釈するには2アクションほど必要になりますし、セキュリティ上の理由でHTMLメールを見られなくしている人もそこそこいるようですから、ユーザビリティの問題はありそうです。


・メールのサイズが大きくなる

ナローバンドで従量課金だった昔に比べ、今ではブロードバンドの定額課金なので、この心配をする必要はないですよね。

テキストメールでも普通に数メガの添付ファイルでやりとりすることがありますから。


・ウィルス感染の原因になりやすい

これは本当にそうなのかなぁという印象です。

ウイルスの感染経路・原因」を見ると、確かにHTMLメールからの感染の可能性について書いてあります。

確かに、テキストメールよりも感染の確率は高くなりそうです。


ということで、ウィルス対策さえしっかり取っておけば、HTMLメールを使ってもあまり問題じゃないような気がしてきました。

要は使いどころかなぁと思うわけで。

例えば、プロジェクトの進捗報告や売り上げの報告など、表組みをメールの文中に入れた方が読みやすいときは、HTMLメールで表を組んだ方が早く見やすく作れそうですし、報知系・リマインド系のメールは、強調したいところを大きく太字や赤字で書いた方が、目を引いてメールとしての目的を果たしそうです。

こんなことを書いている私自身も、まだ仕事の中でHTMLメールを利用したことはありませんので(Notesメール除く)、これから視点を変えて、上手く利用できそうなシーンを探してみたいと思います。

(参考にしたページ)
電子メールはじめの一歩 -- コミュニケーションとしての電子メール
プロフェッショナル電子メール--HTMLメールはやめておこう
HTMLメールはやめよう:ITpro
人力検索はてな - 日本国内で最も使われているメールクライアントは Outlook Express だろうというのは想像がつくのですが、ではいったいどのくらいのシェアを持っているのか、また他のメー..

2007年2月14日

Tracのtemplateをいじってみる

Tracにはtemplate機能があって、簡単に見た目に変化を加えることができます。

tracのプロジェクトフォルダにあるtemplateフォルダの中を見てみると、以下のファイルがあります。

site_css.cs
site_footer.cs
site_header.cs
site_newticket.cs

それぞれ、
site_css.csはサイトのCSSのtemplate、
site_footer.csはサイトのfooterのtemplate、
site_header.csはサイトのheaderのtemplate、
site_newticket.csはサイトのチケット新規作成画面のtemplate
です。

簡単なところで、HeaderにGoogleとGoogle Code Searchへのリンクを加えてみます。

site_footer.cs、site_header.csを開くと以下のような記述があります。

####################################################################
# Site header - Contents are automatically inserted above Trac HTML
?>

この後に、以下のようにリンクを加えると、TracのHeader,Footerの位置にリンクが表示されます。

<a href="http://www.google.co.jp/" >Google</a><a href="http://www.google.com/codesearch" >Google Code Search</a>

また、上記のちょっとした応用で、
Tracのメニューバーと同じフォーマットでリンクを作成するには、以下のように書きます。

<div id="mainnav" class="nav"><ul><li><a href="http://www.google.co.jp">Google</a></li><li><a href="http://www.google.com/codesearch">Google Code Search</a></li></ul></div>

これで実際にheaderに書いてみたのが↓こちらです。(クリックでポップアップします。)

よく参照するページや、Tracプロジェクト内でのリンク、イントラネットのサイトなど、工夫次第でより便利に活用できそうです。

2007年2月13日

TracのwikiにGoogleAjaxSearchを表示するwiki-macro

PythonとTracのmacro作成の練習がてら、GoogleAjaxSearchをTracのWiki上に表示するmacroを作ってみました。

ファイルをダウンロード

上記ファイルを、Tracプロジェクトのwiki-macrosに入れればOKです。

あと、Google Ajax Search APIのKeyが必要になるので、ここで取得しましょう。

これで、TracのWiki上で以下のように記述すればOKです。

[[GoogleAjaxSearch(APIKey)]]

wikiのTopページとかにあると便利かもしれません。

//でも使いどころ限られるのでいらないかな・・・。

↓wikiページの"Edit this page"をクリック。
Trac002.jpg

↓表示させたい場所に[[GoogleAjaxSearch(APIKey)]]のように記述。
Trac003.jpg

↓こんな風に表示されます。
Trac004.jpg

↓検索した結果はこんな感じです。
Trac005.jpg

2007年2月12日

入門 UML 2.0

先日、会社のとある人物から「基本情報しか持っていないようだけど、他に取りたい資格はないのか?」と聞かれ、口から出たのが「UMLの資格はちょっと興味あります」という言葉でした。

素人同然で入社したとき、同じプロジェクトにいた先輩から、「UMLはちゃんとしたのを書けた方が良いから勉強した方が良いよ」とすすめられたことが頭のどこかに残っていたようです。

これまで設計をするときに使ったことがあるのが「シーケンス図」くらいのもので、その他の図についてはなんとなく名前を聞いたことがある程度というのが正直なところ。

自分で宣言した手前、勉強しないとなーと思っていたところ、書店にオライリーさんから「入門 UML 2.0」なる本が発売されていました。というわけで、衝動買い。

入門 UML 2.0
入門 UML 2.0
posted with amazlet on 07.02.12
Russ Miles Kim Hamilton 原 隆文
オライリー・ジャパン
売り上げランキング: 12084

まだパラパラとめくっている程度ですが、1.4章に"UMLの「度合い」"として、以下の3つのパターンが紹介されていました。

  • スケッチとしてのUML
  • 設計図としてのUML
  • プログラミング言語としてのUML

この中で、反復型プロセスの開発では「設計図としてのUML」と「スケッチとしてのUML」が、アジャイルプロセスの開発では「スケッチとしてのUML」が、それぞれ重点的に利用されるのだとか。

要はもの作りをしていく中で、共通の認識を持つための図法なんですよね。本自体はそれほど厚くないので、さらっと読んでみることにします。

2007年2月11日

WindowsマシンにTracの環境を構築してみる --- その4

WindowsマシンにTracの環境を構築してみる --- その1 (でぃべろっぱーず・さいど)
WindowsマシンにTracの環境を構築してみる --- その2 (でぃべろっぱーず・さいど)
WindowsマシンにTracの環境を構築してみる --- その3 (でぃべろっぱーず・さいど)

今回は、Subversionをhttp経由でアクセスできるようにして、tracとSubversionで同じユーザID/Passwordが使えるように設定します。

まずは、Apacheのhttpd.confに以下の記述を追記。

<Location /svn/repos>
DAV svn
SVNPath D:/programming/svn/repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile D:/programming/trac/main/.htpasswd
Require valid-user
</Location>
<Location "/trac/login">
AuthType Basic
AuthName "Trac"
AuthUserFile D:/programming/trac/main/.htpasswd
Require valid-user
</Location>

これで、同じ.htpasswdファイルでユーザID/passwordを管理します。

でもって、.htpasswdファイルの作成は以下のようにします。

"C:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -c D:\programming\trac\main\.htpasswd USERID

オプションの -c は初期作成時のみ必要で、ユーザを追加するときは必要ありません。

追加したユーザに、Tracの権限を与えていきます。

権限のリストは以下の現在の権限一覧を表示するコマンドで参照できます。

python C:\Python24\Scripts\trac-admin D:\programming\trac\main permission list

"D:\programming\trac\main"の部分には、権限一覧を表示したいプロジェクトのpathを指定します。

権限は、TICKET_VIEW とか WIKI_CREATE とか名前から何となく推測できます。TracのAdmin権限は、TRAC_ADMINで指定できるので、以下のようなコマンドを発行しました。

python C:\Python24\Scripts\trac-admin D:\programming\trac\main permission add USERID TRAC_ADMIN

これで、Tracの管理権限を取得することができました。

この状態で、Tracのページを開き、右上のログインからログインすると、wikiのページに"delete this page"とかroadmapのページに "add new milestone"とか、新しいボタンが表示されています。

さて、Admin管理のPluginを導入したいと思います。(ここの内容に従って)

まずはsetuptoolsというモジュールをインストール。

ここを右クリックして「対象をファイルに保存」でez_setup.pyをPythonのScriptis以下に保存します。で、以下のコマンドを実行すれば、インストールされます。

python C:\Python24\Scripts\ez_setup.py

WebAdmin Pluginのページから、WebAdminのeggファイルをダウンロードします。Zip圧縮されているので、解凍してtempフォルダに移動します。僕はC:\tmpフォルダへ移動しました。

そこで、下記コマンドを実行。

C:\Python24\Scripts\easy_install.exe C:\tmp\TracWebAdmin-0.1.2dev_r4240-py2.4.egg

これでインストール完了です。

プロジェクトフォルダのconf以下にあるtrac.iniに以下の記述を足してapacheを再起動しましょう。

[components]
webadmin.* = enabled

すると、Tracのページのメニューバーに"admin"という項目が増えています。

最後に、eclipseにsubversion連携用のpluginであるsubclipseをインストールして、Subversionのサーバを、コマンドプロンプトから下記コマンドで起動。

svnserve -d -r D:\programming\svn\repos

eclipse上でプロジェクトのフォルダを右クリックし、「チーム」→「プロジェクトの共有」→「SVN」→「新しいリポジトリー・ロケーションを作成」で、http://localhost/svn/reposを入力。

これでSubversionにソースを登録することができました。

プラグインの導入は、Trac環境構築よりはるかに楽チンでしたね。

2007年2月10日

WindowsマシンにTracの環境を構築してみる --- その3

WindowsマシンにTracの環境を構築してみる --- その1 (でぃべろっぱーず・さいど)
WindowsマシンにTracの環境を構築してみる --- その2 (でぃべろっぱーず・さいど)

というわけで、前回は、tracがsvnのpathを認識できないところで終わっていました。

ちょっと調べたら「秋元@サイボウズラボ・プログラマー・ブログ: プロジェクト管理ツール Trac を入れてみた」で、以下のような記述が。

Subversion の Python Bingind を追加
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 svn-win32-1.2.1_py.zip
内部の libsvn と svn フォルダを Python23\Lilb\site-packages に展開

同ページに行くと、表の説明欄に「Subversion 1.4.2 Win32 Installer for the Python 2.4 bindings. 」という記述のモジュールがありました。このsvn-python-1.4.2.win32-py2.4.exeをダウンロード。

実行するとSubversionのインストールフォルダのbin以下にsvnpath.exeが作成されPythonがsvnを認識することができます。

これで再度Tracのプロジェクトを作り直して、今度はApache経由でアクセスするために、httpd.confに以下の記述を加えました。

<Location "/trac">
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv "D:\programming\trac\main"
</Location>

1行目で、http://localhost/の後ろのURIを指定、4行目で、プロジェクトのPathを指定します。

Apacheを再起動して、さあ、http://localhost/trac へアクセス!

Traceback (most recent call last):
File "C:\Python25\Lib\site-packages\trac\web\main.py", line 387, in dispatch_request dispatcher.dispatch(req)
File "C:\Python25\Lib\site-packages\trac\web\main.py", line 191, in dispatch chosen_handler = self._pre_process_request(req, chosen_handler)
File "C:\Python25\Lib\site-packages\trac\web\main.py", line 263, in _pre_process_request chosen_handler = f.pre_process_request(req, chosen_handler)
File "C:\Python25\Lib\site-packages\trac\versioncontrol\api.py", line 73, in pre_process_request self.get_repository(req.authname) # triggers a sync if applicable
File "C:\Python25\Lib\site-packages\trac\versioncontrol\api.py", line 92, in get_repository % self.repository_type)
TracError: Unsupported version control system "svn"

あれ、またエラーが。

なんてこった。ApacheがPython25を使おうとしている。そういやmod_pythonをインストールしたときにPython2.5用を選択した記憶が・・・。

mod_pythonのダウンロードページからPython2.4用のmod_pythonをダウンロードしてインストール。

これでApacheを再起動して・・・。

できた!

インストールするときの注意点は、Pythonのバージョンに合わせて環境を構築する、ということですね。

これでインストールは終了。

今後はPluginのインストールとかやっていきたいと思います。

2007年2月 9日

Yahoo! Pipe すげぇ

ヤフー、「Yahoo Pipes」リリース--マッシュアップ開発用ホスティング型環境 - CNET Japan
Pipes: Rewire the web

米Yahoo!がイケてるサービスを発表してくれました。

その名も「Yahoo! Pipes」。

ネット上のRSSやATOMSのフィードを、取得したり、マージしたり、整形したり、キーワードを与えたり、なんてことをWeb上でグラフィカルに生成し、自分なりのオリジナルのフィードを作ることができるというサービスです。

Web版Plaggerと言ったところでしょうか。

何がすごいかって?

例えば、Amazonの売り上げランキングフィードを取得してきて、その本のタイトルで検索APIを実行して、売り上げの良い本について言及しているページのRSSフィードを取得する、とか。

ソーシャルブックマークの人気ページをそれぞれのサービスから取得してマージする、とか。

アイデア次第でおもしろいフィードを生成することができそうです。

現在、アクセス集中のためサーバが激重ですが、落ち着いてきたら遊んでみようと思います。

今度のMash up Awardsはこれを使おうかな。

2007年2月 8日

WindowsマシンにTracの環境を構築してみる --- その2

WindowsマシンにTracの環境を構築してみる --- その1 (でぃべろっぱーず・さいど)

というわけで、昨日の続き。

今日はSubversionをインストールするところから。

Subversionのページから印スーラをダウンロード。僕がダウンロードしたのは、svn-1.4.2-setup.exeでした。

で、そのままインストール。

続いてSubversionのリポジトリを作成。

今回は、Dドライブの直下にprogrammingフォルダを置いて、その下にsvnとtracフォルダを作ることにしました。

D:\programming\svn\repos
D:\programming\trac\main

コマンドプロンプトを起動して、

svnadmin create D:\programming\svn\repos

これでリポジトリ作成完了。

さて、いよいよtracのプロジェクトを作成。

コマンドプロンプトを起動し、一応Cドライブ直下で作業します。

python C:\Python25\Scripts\trac-admin D:\programming\trac\main initenv

後は表示される質問に答えていけばOK。基本デフォルトで良いんですが、リポジトリの設定のところだけは先ほど作ったsvnのリポジトリを設定しましょう。

Project Name [My Project]>
Database connection string [sqlite:db/trac.db]>
Repository type [svn]>
Path to repository [/path/to/repos]>D:\programming\svn\repos
Templates directory [C:\Python24\share\trac\templates]>

さあ、tracdで起動して画面を確認。

python C:\Python25\Scripts\tracd -p 8000 D:\programming\trac\main

tracdサーバを起動して、http://localhost:8000/にアクセスすると画面が…、見えない!

ログを見るとclearsilverが見つからないと言われてます。

ん?

clearsilverはインストールしたはず。

インストールしたのは"clearsilver-0.9.14.win32-py2.4.exe"。

py2.4?

あ、WindowsのPathにPython2.5の方を通してた。

ぎゃっ。やり直さなきゃ。

WindowsのPathにPython2.4の方を設定して、tracをインストール。ログでちゃんとPython2.4のフォルダにインストールされてることを確認。

さあこれでOKだ。

もう一回、tracのプロジェクトを作成…、あ、なんかエラーが。

今度はsqliteが入ってないって。

あー、そういやPython2.5からsqlite3が標準モジュールとして組み込まれたんだった。

というわけで、pysqliteのページからpysqlite-2.3.3.win32-py2.4.exeをダウンロードしてインストール。

これで、もう一回tracのプロジェクトを作成。

Congratulations!

やった!

ん? なんかワーニング出てるよ。

Warning:

You should install the SVN bindings


python C:\Python24\Scripts\tracd --port 8000 D:\programming\trac\main

でサーバを起動して、見てみると、Oops…とか言われているし。

ログを見ると、

TracError: Unsupported version control system "svn"

だって。どうやらpythonからsvnの名前が紐付けられていないのが原因っぽい。

Google先生に聞いてみても、出てくるのはLinuxの事例ばかり。うーむ。

今日はここまでかな。

2007年2月 7日

WindowsマシンにTracの環境を構築してみる --- その1

プロジェクトで使っている Trac + Subversion がかなり良い感じなので、自宅PCにも導入して、ソース管理とかしてみようかと思い立ちました。

最近は、All-in-One tracとかtrac月とか、「一発で全部環境そろっちゃうよ」ツールがあって便利なんですが、エンジニアの端くれとして、1から環境を構築してみようかと。

まずはTracのサイトへ。

ダウンロードページを見ると、最新版は0.10.3となっていました。ここで、Windows Zip packageからtrac-0.10.3.zipをダウンロードします。

ここでも、インストーラタイプ(Windows installer)が公開されていましたが、あえてZip版を選択します。

と、下にこんな注意書きが。

Note: The Trac installer no longer includes the ClearSilver library; it needs to be installed separately. You can find binaries at http://www.clearsilver.net/downloads/ or http://clearsilver.yi.org/.

テンプレートエンジンClearSilverが必要なようです。バイナリ版を上記URLから落としてきてね、と書いてあるので、ClearSilverのダウンロードページへ。

一見、Sourceしかないように見えますが、下の方にBinariesが置いてあります。

そこからwin32/clearsilver-0.9.14.win32-py2.4.exeをダウンロード。

実行してみると、「レジストリにpython2.4が見つからないよ!」と怒られました。

そう言えばこの間インストールしたのはpython2.5でした。

というわけで、pythonのダウンロードページへ行って、Python2.4.4のインストーラ(msi)をダウンロード。実行してインストールします。

デフォルトでのインストール先が、Python2.5はC:\Python25、Python2.4はC:\Python24となるので、普通に共存できます。Pathの通し方にだけ気を付けましょう。

python2.4がインストールされたので、ClearSilverのインストールを行います。

と、ここまで揃った状態で、最初にダウンロードしたtrac-0.10.3.zipを解凍します。

解凍後、コマンドプロンプトで解凍後のフォルダへ移動します。

そこでpythonを使ってsetup.pyを実行します。

僕の場合は、解凍後のフォルダ"trac-0.10.3"をCドライブ直下へ移動して作業しました。

C:\trac-0.10.3>python ./setup.py install

これで最後に以下のようなメッセージが出ればOK。

Thank you for choosing Trac 0.10.3. Enjoy your stay!

と、今日はここまで。

次回は、ソース管理ツールSubversionを導入してTracと連携させてみます。

2007年2月 6日

Jakarta Commons で効率よいプログラミング - Commons Lang 編

プログラミングの中でStringをあれやこれやこねくり回すシーンは良くあります。

文字を分割したり、トリムしたり、固定長にしたり。

そんなとき、自前でUtilクラスを作る前に、Jakarta Commons Langを利用してみましょう。

便利なメソッドが揃っていて、プログラミング効率は格段にアップするはずです(知っている人は知っている話なので、そんな人は読み飛ばしてください)。

ダウンロードはこちら↓から。

The Jakarta Site - Commons Lang Downloads

数あるクラス/メソッドの中から、今回はベーシックなStringUtilsクラスの split()、substringBefore()、substringAfter()、substring()を紹介します。

ということで、

String test = "hoge=1&moge=2";

のようなパラメータっぽい文字列を処理するときを想定してみます。

こういうときは、"="の前と後ろをそれぞれkeyとvalueに対応させてMapに格納していくのが定石なので、そのように処理してみます。

String test = "hoge=1&moge=2";
Map result = new HashMap();
String[] l = StringUtils.split(test, "&");
for (int i = 0; i < l.length; i++) {
result.put(StringUtils.substringBefore(l[i], "="), StringUtils.substringAfter(l[i], "="));
}

3行目のsplit()で、文字列を"&"で分割し、Stringの配列を取得します。

その後、配列の長さ分だけfor文を回して、配列に格納された"key=value"の文字列を処理してきます。

今度はその"key=value"を"="の前と後ろで分けて値を取得するのですが、ここでsubstringBefore()とsubstringAfter()を利用します。

これで、hogeの値を取得したいときは、

result.get("hoge");

で取得できます。簡単ですよね。

これをStringクラスのsubstring()を使って実装しようとすると、結構面倒です。文字列長を誤ると、StringIndexOutOfBoundsExceptionなんかも発生しやすかったりするので、バグも発生しやすいです。

ちなみに、StringUtilsクラスのsubstring()メソッドは、この文字列長の扱いが割とゆるやかで、

String test = "abcdefg";

このような文字列の4文字目から20文字目を取得しようとしたとき、

test.substring(4,20);

だと、StringIndexOutOfBoundsExceptionが発生しますが、

StringUtils.substring(test,4,20);

だと、"defg"が取得できます。

初心者Javaプログラマが一歩ステップアップするために、このようなAPIを積極的に利用するようにしましょう。


Jakarta Commons クックブック―Javaプロジェクト必須のレシピ集
ティモシー・M. オブライエン Timothy M. O’Brien 長瀬 嘉秀 テクノロジックアート
オライリージャパン
売り上げランキング: 39496

2007年2月 5日

tomcatのソースやバグ情報をチェック

現在開発中のシステムで、POSTパラメータの送受信でちょっとした不具合が発生しました。

原因究明のため色々と調査していく中で、アプリサーバのtomcatのソースコードまで見ることに。

そういや今まで、POSTパラメータの取得方法なんて気にしたこともありませんでした。

良い機会なので、色々と学習。

「電文はこんな形式で飛んでくるのかー」「tomcatってこうやってパラメータ分割してるんだー」と、一々勉強になりました。

この対応の中で、Google Code Searchの使いどころがようやく分かった気がします。

一通り見た後で、今度はtomcatのバグチェック。

バグレポートを見ると、思いの外たくさんアップされてました。全部が全部対応されているわけでもないようなので、バージョンを上げたら意外と解決しちゃうのかしら。

オープンソースってこういうことできるから楽しいですね。

2007年2月 4日

share the MAP! を微妙に更新

半年ほど放置していた"share the MAP!"を久しぶりに更新しました。

と言っても、メインは「FireFoxだとMapの保存ができない」という致命的な不具合を修正するのが目的だったんですけどね。

先月パソコンを移行したばかりだったので、MySQLやApache、PHPをインストールするところから始めました。

さすがにこれまで何度もインストールしているので、躓くことはなかった、と言いたいんですが、MySQL関連でいくつか問題が発生しちゃいました。

そういうときのトラブル・シューティングがまたおもしろかったりするんですが。

開発環境も整ったので、いくつか持っているアイデアを実装していこうと思ってます。

地図を使わなきゃ、というときは是非ご利用くださいませ。

2007年2月 3日

動画コンテンツを利用した広告

Japan.internet.com Webマーケティング - YouTube の動画にコンテンツ連動型広告を挿入、「ブレイナービデオ」サービス開始
コンテンツ連動型動画広告サービス「ブレイナービデオ」を開始

先日「YouTube動画に字幕やコメントを付けるサービス (でぃべろっぱーず・さいど)」で、YouTubeの動画を利用したコミュニケーションサービスを紹介しましたが、今度はYouTubeの動画にコンテンツ連動型広告を挿入するサービスだそうです。

YouTube動画を自分のページで紹介したいときに、間にこのサービスを挟み込むことで、動画に広告を埋め込むことができるそうです。

うーん。試みとしてはおもしろいですが、YouTubeを買収したGoogleはGoogleAdwards、GoogleAdsenseといった広告サービスをすでに持っているわけで、そのうちこういうサービスにも対応しそうなんですよね。サービス自体、YouTubeのコンテンツに依存しているというのは、なんだかものすごくグレーな感じがします。

2007年2月 2日

Googleのサーバエラー画面

全世界から大量のアクセスがあるにもかかわらず、なかなかサービスがダウンしないGoogle。

それだけに、サーバダウンに遭遇するとちょっと嬉しくなります。

↓昨日遭遇。(クリックでポップアップします)

遭遇したのはこれで3度目。

昨年末にGoogleの検索ページで、一昨日にGoogle Newsで、そして今日Google Videoで遭遇しました。

こういう状態に遭遇して嬉しくなるのは、もちろん、数分以内にはサービスを復旧してくれるだろうという暗黙の期待値があるからなんですけどね。

2007年2月 1日

エラーハンドリングこそしっかりと。

プログラムを作成するときはエラーハンドリングこそしっかりしましょう。

納期に迫られ、焦ってくると「とりあえず動くものを」と焦って、エラーハンドリングもそこそこにしてしまいがちですが、そこはぐっとこらえて、エラーハンドリング部分はしっかりと作り込みましょう。

その後の、結合テストやシステムテストフェーズで、必ず役に立ちます。

逆に言えば、エラーハンドリングを適当にすませて単体テストレベルのスケジュールを守ったところで、必ず後でつけがまわってきます。