2009年2月12日

無線LAN 接続できない

無線LANを実家に導入したのだが、どうしてもうまくつながらない。

ドライバーや関連ソフトを再インストールしても、手動で設定しなおしても、暗号化や認証なしでもダメ。
無線LAN子機付きの製品を買ったんだから、子機側の問題も無いはず。
無線LANルータから有線LAN接続はできる。

なぜだ・・・と、1日格闘した結果、原因が判明。
「Wireless Zero Configuration」サービスが動いていなかった。
無線LANルータは、BUFFALOの AirStation WHR-G300N/U。無線LAN構成ツールで設定していたが、内部的にはこのサービスを使っているということだろうか。

サービスで無線LAN設定の制御をしているとは、思わなかった。。。

2009年1月27日

Redmine Wikiで親子階層表示を試す

一番期待していた機能だが、しばらくどうやれば作れるか分からず焦った。

Wikiページを作成後、名前変更で親ページのWiki名を入れればいい。





子ページにはパンくずリストが表示され、


索引(名前順)でも階層表示される。


親ページで以下のマクロを書けば、子ページ一覧のリンクも追加される。
(でも見栄えはそれほどでもない)

{{child_pages}}



プロジェクト横断検索もできるし、良い良い。
今度はメール受信も試してみるかな。

Redmine 0.7.3 から 0.8.0 にバージョンアップする

バージョンアップしてみた。動作確認含め、正味1時間。

1. rialsのバージョンアップ

F:\www>gem install rails -v=2.1.2
Bulk updating Gem source index for: http://gems.rubyforge.org
Install required dependency activesupport? [Yn] Y
Install required dependency activerecord? [Yn] Y
Install required dependency actionpack? [Yn] Y
Install required dependency actionmailer? [Yn] Y
Install required dependency activeresource? [Yn] Y
Successfully installed rails-2.1.2
Successfully installed activesupport-2.1.2
Successfully installed activerecord-2.1.2
Successfully installed actionpack-2.1.2
Successfully installed actionmailer-2.1.2
Successfully installed activeresource-2.1.2
Installing ri documentation for activesupport-2.1.2...
Installing ri documentation for activerecord-2.1.2...
Installing ri documentation for actionpack-2.1.2...
Installing ri documentation for actionmailer-2.1.2...
Installing ri documentation for activeresource-2.1.2...
Installing RDoc documentation for activesupport-2.1.2...
Installing RDoc documentation for activerecord-2.1.2...
Installing RDoc documentation for actionpack-2.1.2...
Installing RDoc documentation for actionmailer-2.1.2...
Installing RDoc documentation for activeresource-2.1.2...


2. redmine-0.8.0をダウンロード

3. F:\wwwに解凍

4. redmine-0.7.3/config/database.yml を redmine-0.8.0/configにコピー

5. redmine-0.8.0/config/email.yml.example をコピーして email.yml を作成

6. 既存の Redmine のサービスを停止

7. サービスをアンインストール

F:\>cd www\redmine-0.7.3

F:\www\redmine-0.7.3>mongrel_rails service::remove -N redMine
redMine service removed.


8. DBのマイグレーション

F:\www>cd redmine-0.8.0

F:\www\redmine-0.8.0>rake db:migrate RAILS_ENV="production"
(in F:/www/redmine-0.8.0)
== 93 AddWikiPagesProtected: migrating ========================================
-- add_column(:wiki_pages, :protected, :boolean, {:null=>false, :default=>false})
-> 0.3590s
== 93 AddWikiPagesProtected: migrated (0.3590s) ===============================

== 94 ChangeProjectsHomepageLimit: migrating ==================================
-- change_column(:projects, :homepage, :string, {:default=>"", :limit=>nil})
-> 0.3440s
== 94 ChangeProjectsHomepageLimit: migrated (0.3440s) =========================

== 95 AddWikiPagesParentId: migrating =========================================
-- add_column(:wiki_pages, :parent_id, :integer, {:default=>nil})
-> 0.2350s
== 95 AddWikiPagesParentId: migrated (0.2350s) ================================

== 96 AddCommitAccessPermission: migrating ====================================
== 96 AddCommitAccessPermission: migrated (0.2960s) ===========================

== 97 AddViewWikiEditsPermission: migrating ===================================
== 97 AddViewWikiEditsPermission: migrated (0.2650s) ==========================

== 98 SetTopicAuthorsAsWatchers: migrating ====================================
== 98 SetTopicAuthorsAsWatchers: migrated (0.1870s) ===========================

== 99 AddDeleteWikiPagesAttachmentsPermission: migrating ======================
== 99 AddDeleteWikiPagesAttachmentsPermission: migrated (0.1100s) =============

== 100 AddChangesetsUserId: migrating =========================================
-- add_column(:changesets, :user_id, :integer, {:default=>nil})
-> 0.2820s
== 100 AddChangesetsUserId: migrated (0.2820s) ================================

== 101 PopulateChangesetsUserId: migrating ====================================
== 101 PopulateChangesetsUserId: migrated (0.9850s) ===========================


9. REDMINE/filesを旧フォルダからコピー

10. 試し稼動

F:\www\redmine-0.8.0>ruby script/server -e production
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.1.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with production environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. INT => stop (no restart).
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.


11. サービスの登録

F:\www\redmine-0.8.0>mongrel_rails service::install -N "Redmine" -c F:\www\redmine-0.8.0 -p 3000 -e
production
Mongrel service 'Redmine' installed as 'Redmine'.



動作テストしてみたが、特に問題なし。
開発が進められている0.8.1で解消される不具合も大きなものはない。
職場で個人用に使っているRedmineもあげてしまおう。

2009年1月5日

Redmine バックアップする

イマイチなので修正予定。


Redmineをバージョンアップする前にバックアップを取っておこうと思い、バックアップスクリプトを作成。

バックアップするのは以下
- Redmineのデータ(MySQL)
- 添付ファイル(filesフォルダ)
- Subversion

以下スクリプトを適当なフォルダに保存して、バックアップフォルダと作業用の専用フォルダを用意して実行する。


rem redmineバックアップスクリプト
rem
rem 使い方
rem ~~~~~~
rem 1.バックアップディレクトリを作成し、以下フォルダを掘る
rem BKUP_DIR
rem /TODAY
rem /YESTERDAY
rem 2.環境変数を設定する
rem 3.正常動作を確認した後、定期実行する
rem

pushd %~dp0

set HOST=localhost
set USERNAME=root
set PASS=password
set DBNAME=redmine

set REDMINE_DIR=F:\www\redmine-0.7.3
set MySQL_DIR=C:\Program Files\MySQL\MySQL Server 5.0\bin
set BKUP_DIR=F:\www\redmine-scripts\bkup
set WORK_DIR=F:\www\redmine-scripts\work
set SVN_DIR=C:\usr\svn-repo

set PATH=%PATH%;%MySQL_DIR%


pushd %BKUP_DIR%

rem Copy today yesterday
xcopy /s /q /y TODAY YESTERDAY

popd


pushd %WORK_DIR%

rem Dump MySQL descriptions
mysqldump -h %HOST% -u %USERNAME% -p%PASS% %DBNAME% -d -r redmine_dmpd.sql

rem Dump MySQL data
mysqldump -h %HOST% -u %USERNAME% -p%PASS% %DBNAME% -t -r redmine_dmp.sql
zip redmine_dmp.sql.zip redmine_dmp.sql
del redmine_dmp.sql

rem Zip redmine files
pushd %REDMINE_DIR%\files
zip -r ..\redmine_files.zip *
popd
move %REDMINE_DIR%\redmine_files.zip .

rem Dump subversion
for /d %%i in (%SVN_DIR%\*) do svnadmin verify %%i if not "%ERRORLEVEL%" == 0 pause
for /d %%i in (%SVN_DIR%\*) do svnadmin dump %%i > repo-%%~ni.dmp
for /d %%i in (%SVN_DIR%\*) do zip repo-%%~ni.dmp.zip repo-%%~ni.dmp
for /d %%i in (%SVN_DIR%\*) do del repo-%%~ni.dmp


popd

rem Transfer work today
xcopy /s /q /y %WORK_DIR% %BKUP_DIR%\TODAY


リストアテストしていないけど、大丈夫かな?

2008年12月31日

Redmine 0.8.0, 0.7.4 リリース

Redmine 0.7.4 and 0.8.0 released

個人的にうれしい機能はこんなところか。
- e-Mailによるチケットの登録
- プロジェクト横断検索
- 階層型Wikiページ
- Redmineユーザとリポジトリユーザのマッピング

プロジェクト横断Wikiが先送りされたのが若干痛いか。
タグはつくんだろうか。

時間を見てアップグレードしてみよう。

2008年12月16日

Redmine のショートカット

日常的に使うようになるとマウス操作が面倒になるが、実はRedmineの一部メニューにはショートカットが用意されている。

操作ショートカット
Shift+Alt+7新しいチケット
Shift+Alt+Ewiki編集 or wiki編集エリアにフォーカス移動
Shift+Alt+Rwiki編集時 プレビュー
Shift+Alt+F検索フィールドにフォーカス移動


Firefoxの場合は上記操作でOK。
IEの場合、フォーカスが移動するだけなので、その後Enterを押す必要があるのでイマイチ。

後、時々Ctrl+Rでページの再読み込みしないように注意。

2008年12月12日

Redmine テーマ(スタイル)をカスタマイズする

Redmineは独自CSSを用意する事で、テーマ(スタイル)をカスタマイズする事ができる。仕事でまじめにRedmineを使うと気になるところがいくつかあったので、組み込んでみた。

手順は以下のとおり。
  1. redmine-0.7.3/public/themes以下にフォルダを作成(このフォルダがテーマ名になる)
  2. さらにその下にstylesheetsフォルダを作成する
  3. 2で作成したフォルダに application.css を作成し、カスタムスタイルを定義する。
  4. Redmineを再起動
  5. 管理 > 設定 > 全般 > テーマで、追加テーマを選択


フォルダ構造は以下のようになる。

redmine-0.7.3/public/themes
/alternate
/classic
/my_theme ←ここ以下を追加
/stylesheets
application.css


application.cssは、こんな風にしてみた。

/* デフォルトスタイルシートをインポート */
@import url(../../../stylesheets/application.css);

/* 日付フィールドを幅広に。数字フィールドは右寄せ。*/
#issue_start_date { width: 80px; }
#issue_due_date { width: 80px; }
#issue_estimated_hours { text-align: right; }
#issue_done_ratio { text-align: right; }
#time_entry_hours { text-align: right; }

/*
* 本文をインデントしてh1~h3を目立たせる
* (全体をインデントして、見出しをマイナスインデント)
* h2, h3に章番号を表示(Firefox用、IE未対応)
*/

fieldset.preview {
margin-left: -20px;
padding-left: 20px;
padding-right: -40px;
}

div.wiki {
margin-left: 20px;
margin-right: 20px;
}

div.wiki h1, div.wiki h2, div.wiki h3 {
margin-left: -20px;
}

div.wiki h1 {
margin-right: -20px;
}

div.wiki h2 {
counter-increment: chapter;
counter-reset: section;
}

div.wiki h2:before {
content: counter(chapter) ". ";
}

div.wiki h3 {
counter-increment: section;
}

div.wiki h3:before {
content: counter(chapter) "." counter(section) ". ";
}

div.wiki h4 {
border-bottom-width: 0px;
text-decoration: underline;
}


/*
* 警告と情報の強調表示
* *(warn) xxxxx
* *(info) xxxxx
*/
ul.warn>li {
border: 1px solid silver;
margin: 5px 0px 5px -20px;
padding: 2px 0px 3px 30px;
background-image: url(../../../images/warning.png);
background-repeat: no-repeat;
background-position: 5px 50%;
list-style-type: none;
}

ul.info>li {
border: 1px solid silver;
margin: 5px 0px 5px -20px;
padding: 2px 0px 3px 30px;
background-image: url(../../../images/help.png);
background-repeat: no-repeat;
background-position: 5px 50%;
list-style-type: none;
}

/* テキストエリアのフォントを小さく */
textarea.wiki-edit {
font-size: 12px;
}

2008年12月5日

Redmine Wiki用ブックマークレット(IE TAB対応)

机の上よりましでしょう:redMineのWiki用ブックマークレット が便利なので使っていたが、FirefoxのIE TABでIEレンダリングしている時は誤ったURLが表示される。ちょっと修正してみた。

変更前:

javascript:void(a=prompt(%27%27,%27"%27+document.title+%27":%27+location.href));


変更後:

javascript:void(a=prompt(%27%27,%27"%27+document.title+%27":%27+location.href.replace(%27chrome://ietab/content/reloaded.html?url=%27, %27%27)));


ブックマークレットとして登録するには、URLを上記コードに指定したお気に入り(IE) or ブックマーク(Firefox)に追加する。

2008年12月3日

Redmine トップメニューをカスタマイズする

トップにチケット一覧を表示するメニューがほしかったので追加した。
これ本番ですか? Redmineリンク追加 を参考にした。

redmine-0.7.3/lib/redmine.rb の 96行目あたりから始まる MenuManager.map :top_menu do |menu| を修正する。(一番下の行を追加)

Redmine::MenuManager.map :top_menu do |menu|
menu.push :home, :home_path, :html => { :class => 'home' }
menu.push :my_page, { :controller => 'my', :action => 'page' }, :html => { :class => 'mypage' }, :if => Proc.new { User.current.logged? }
# チケット
menu.push :issues, { :controller => 'issues', :action => 'index', :query_id => '2' }, :caption => :label_issue_plural


カスタムクエリを追加する場合は以下のように :query_id => x を追加すればいい。
  menu.push :issues, { :controller => 'issues', :action => 'index', :query_id => '2' }, :caption => :label_issue_plural


活動を追加するには以下を追加する
  menu.push :activity, { :controller => 'projects', :action => 'activity' }


ホームを任意のプロジェクトのメインwikiに変更するには redmine-0.7.3/routes.rb を修正する。9行目あたり、map.home ...を以下のように変更する。:id はプロジェクトID。
  #map.home '', :controller => 'welcome'
map.home 'wiki/:id/:page/:action', :controller => 'wiki', :id => 'tetu', :page => nil


特定のwiki名にするなら:pageを変更すればいいと思う。

2008年11月30日

RedmineのApache-Proxy構成でFaviconを表示させる

Redmine をApache-Proxy経由で表示させると Favicon が表示されない。
Faviconを表示させるために若干ソースに手を加えた。
もっといい方法がある気がするけど。。。

redmine-0.7.3/app/views/layouts/base.rhtml の8行目あたりに以下を追加。

<link rel="shortcut icon" href="/redmine/favicon.ico" type="image/vnd.microsoft.icon">
<link rel="icon" href="/redmine/favicon.ico" type="image/vnd.microsoft.icon">

href内の /redmine 部分はApache-Proxyのパスに合わせて修正。
Faviconは、redmine-0.7.3\public 以下にある。

2008年11月18日

Faviconをフリーで作るサイト

Favicon Generator でFaviconを作ってみた、簡単に作れて便利。
視認性がぜんぜん違うのに企業内ではやらない理由は簡単に作れないからだろうか。

ためしにこのブログのFaviconを変更しようとしてみる。
が、BloggerではFavicon(ico)をアップロードできない!
gifやpngに変換するか? うーん。

2008年11月3日

Redmineのトラッカーやチケットの設定をする

トラッカーやチケットには、様々なパラメータを設定する事ができる。デフォルト値でも十分使える気はするが、後で分析できるように考えながら設定してみる。懲りすぎると逆に混乱するので注意が必要。。。

プロジェクト

この単位でトラッカー、メンバー、ソースコード管理システムのリポジトリ、Wiki、アナウンス、文書などを登録、公開する。ソフトウェア開発の場合は、管理対象のソフトウェア毎に作成するのが普通。

今回は、主にIS仕事のタスク管理に使うので以下プロジェクトを作成した。
  • 既存システム
  • 目標管理(AD構築など数ヶ月かけて行う作業)
  • その他何でも入れるプロジェクトを1つ
1プロジェクトで全て管理する事も考えたが、数年使い続ける事を考えると、何らかの単位で分けたほうがいい。後々公開する事も考慮。


トラッカー

トラッカーは、チケットの入れ物で、チケット発行時にどのトラッカーに含めるかを選択する。(ただし、後から異なるトラッカーに移動する事もできる) トラッカー毎にワークフローを定義できるのがポイント。プロジェクトの概要ページでは、トラッカー毎に未完了、合計チケット数を表示する。

若干細かすぎのような気もするが、以下のように作った。
  • 課題 : 既存の仕組みで問題があり、改善の必要がある(マイナスを無くす方向)
  • 要望 : 既存の仕組みに機能拡張したい(プラスする方向)
  • サポート : 利用者からの問い合わせはとりあえずここ。後で課題や要望に変化する可能性がある。
  • タスク : マスター登録などシステム変更を伴わない作業。
  • 障害 : システム停止等、障害発生件数は抑えておきたいので分けておく。
  • アイデア : やるかやらないか分からないアイデアを登録。課題や要望の件数に含めないようにするために作成。

バージョン

プロジェクトのロードマップを示すためにバージョンを登録する事ができる。プロジェクト毎に登録するし、各チケットには、ターゲットバージョンを指定する。ロードマップタブでは、関連チケットの一覧と、進捗率を表示する事ができて結構便利。
今回、バージョンやマイルストーンがあるわけではなかったため、以下のように作成した。
  • 月毎のバージョン(200811等)
  • 期毎のバージョン(2008B等)


チケットのステータス

チケットの進捗を示す。終了ステータスを複数種類登録できるのは、便利。(完了したのか、重複登録で却下されたのか等終了のさせ方も複数あるため) また、トラッカー・ロール毎にどのステータスから何のステータスに変更できるかといったワークフローを定義する事ができる。デフォルトでは若干不足しているので以下のようにした。
  • 新規
  • 割当済み
  • 着手 : 未着手と着手の状態を分けたかったため作成。
  • 待ち : 外部の人の作業待ち状態を明らかにしたかったため作成。
  • 終了
  • 却下
解決やフィードバックは必要ない気がするがどうか。。。 まあ、どのステータスで作業が止まりがちになるかを分析するために使うのだろうから、プロジェクトのやり方によっては必要なのだろうが。


カテゴリ

複数のモジュールやサブシステムに分割できる場合は、それをカテゴリとして登録する。故にプロジェクト毎に設定するもの。


優先度

あまり意味がないと思うパラメータのひとつ。優先順位は、問題の大きさ、影響範囲、期限、作業の大変さ、依存関係で変わってくるし、相対的なものだと思うから。誰かうまい使い方を知っている人がいたら教えてください。
とりあえず、高中低にして、常に中。


活動

チケット更新時に作業時間とともにその概要を記録する事ができる。活動は、そこで指定する区分。
あれ、でも誰がどの活動にどれだけ使ったか一覧表示する画面がないような・・・。
とりあえず、以下のように作成。
  • 計画
  • 調査
  • 設計
  • 実行(実装、作業、どれがいいんだろう。。。)
  • まとめ
  • 会議

2008年10月28日

Redmineをインストールする

仕事の都合上Notesが使えなくなったので、Redmineを使ってタスク管理やノウハウ蓄積をしていく。
Tracも考えたけど、何となく後発のRedmineにしてみる。
3年後、生き残って入れくれればいいけど・・・。


インストールメモ&はまった点

環境はWindows XP。ruby経験0でも何とかなるもんだ。