redmine.tokyoの第10回勉強会へ行ってきた

redmine.tokyoの第10回勉強会へ行ってきたので、その際のメモを載せておきます。 聞き間違えや誤植があるかもです。。

View customize plugin、Pivot Tableは試してみたいです。

みんなでRedmineをより良くしよう

@g_maeda さん

  • Redmineと貢献

    • 貢献のチャンス
      • 前から気になってるバグがある
      • 追加して欲しい機能がある
      • など
  • 貢献の例

    • バグをツイートする
      • 誰かが動いてくれる
      • 情報を出すことが重要
    • チケットでバグを報告する
      • 関係者が問題や要求をお認識できる
      • 再現手順が記載されていると対応しやすい
      • チケット作成は重要な貢献
    • パッチを投稿する
    • チケットにコメントする
      • 賛同
      • 変更に対する懸念
      • 提案者のモチベーションにつながらう
    • パッチの評価・動作確認
    • 情報発信(ブログ、Qiitaなど)
    • プラグインやテーマの開発
  • パッチなどの取り込み方針としては、リグレッションは積極的に行っているとのこと。

  • パッチは大歓迎だが、テストコードもできれば一緒にあげてもらいたい、とのこと。

  • 前田さんがやっていること

    • Redmine.JPの運営
    • パッチの送付
      • 日本語訳、小さな改善のパッチ
      • お客様が踏んだバグの修正
  • 貢献することによるメリット

    • 利用しているツールが改善される
    • Redmineの進化の方向性に影響を与えることができる
    • 社会発展に貢献
    • 楽しい
  • Redmineのコミッタ

    • 4人(現状、実際にコミットしているのは2人。内、日本人1人)
    • 意外と手薄w
  • こういう人が増えるとうれしい

    • パッチ、テスト、コメントを書く人
  • 公式サイトでの動き方

    • www.redmine.orgからアカウントを作る
      • 誰でもアカウントを作って良い
      • 英語で書く
      • スクリーンショットは英語画面のものを使う
        • 言語設定で英語に切り替えてから
    • トラッカー
      • Defect バグ報告
      • Feature 機能要求
      • Patch パッチ
    • パッチを作る
      • 公式のSVNからtrunkブランチをチェックアウト
      • trunkに対してコードを変更
      • svn diffを実行してパッチ作成
      • パッチをチケットに添付する
    • 英語対策
      • Weblio
      • Linguee(Weblioと同じ)
      • Gengo
        • 人力翻訳サービス
        • 1文字5円
  • QA

    • チケット書くとき、英語に自信がない場合は日本語も書いてよいか?
      • 日本人が英語苦手ということはみんな知っているのでいらないw
    • ついーとの内容がチケットにされた件数は?
      • ここ数ヶ月で数チケット

Redmine最新動向〜3.3の変更点について〜

@naitohさん さん

  • 主な変更点(気になったもの)

    • admin初期パスワードが強制される
  • Attachment

    • 添付ファイルは今までダウンロードのみだったがプレビューできるリンクが追加される
  • Email notifications
    • チケット登録のメール返信時、To, Ccのメールアドレスをウォッチャーに追加
  • Issues
    • チケット一覧を右クリックしたときのサブメニューにウォッチャーを追加
  • UI
    • 新規チケット作成時は、タブではなく、ボタンからとなる。
      • 管理>設定>表示から、タブ表示の復活が可能

View customize pluginを使いこなす

@onozaty さん

  • Redmineの画面をカスタマイズするためのPlugin
  • Javascript CSSを埋め込むためのPlugin

  • できること

    • プロジェクトごとにヘッダの色を変える
  • 注意点
    • 画面上でできることに限られる
  • プラグインはインストールしただけでは何も変わらない

    • 管理 > View customizeから設定する
  • View customizeを触る上でキーとなる技術

    • JS or CSSで設定するので、それらの知識が必要
  • jQuery

  • CSSセレクタ

ソフトウェアメトリクス概要〜メトリクスがいようとよく使われるメトリクス〜

@yohwada さん

  • メトリクス分類表 IPA/SEC Report

    • ダウンロードできる?
  • ソフトウェアメトリクスとは

    • 活動を定量化し
    • 定量化したデータを管理(マネジメント)に使えるように加工した指標
  • 余談:管理とマネジメント

    • 管理:維持・籐製(上から下への統制)
    • マネジメント:組織や団体、人が存続・発展するためのすべての活動。成果を出せるような環境を作り出す。
    • マネジメントには"管理"という意味合いのほか、あらゆる意味を含んでいる。
  • メトリクスに関わる企画

    • JIS、ISO、IEC
      • JIS X 0141 : 2009
      • JIS X 0160 : 2012
      • などなど
  • メトリクスの目的

    • いいものを効率的に、低コストで、楽に作りたい
    • 「測定できないものは制御できない」(Tom Demarco)
  • メトリクス・タイプ

    • 数値 Number
    • 属性 Attribute
      • 計測対象の特性
      • XX度、XX性
    • モデル Model
      • 理論やデータに基づくもの
      • ソフトウェア信頼度成長モデル、など
    • 尺度 Scale
      • 対象を分類するための枠組み
      • 比例尺度:数値の差とともに数値の比にも意味がある
      • 身長、体重、金額
    • 間隔尺度
      • 数値の差のみに意味がある
      • 摂氏温度、速度、バグ数
    • 順序尺度
      • 値の大小関係だけに意味がある
      • 階級(ヘビー、ウェルター、ライト)、故障の重要度(軽微、普通、重要)
      • それぞれに1・2・3などの数値を対応させる
    • 名義尺度
      • 観察される変数と数値を対応させる
      • 分類として記号の意味を持つ
      • 血液型、発生工程にもとづくバグ分類、故障重大度の5段階評価基準
      • 血液型O, A, B, ABに、0・1・2・3などを対応させたもの
  • メトリクスの分類の違いにより、分析方法を変えることが重要

  • メトリクスの分類

    • プロダクトメトリクス
      • プロダクトの複雑さ
        • モジュール結合度、FP、
      • プロダクトの量
      • プロダクトの室
        • 故障数、欠陥数(バグ数)、故障率、バグ密度
    • プロセスメトリクス
      • 各フェーズにおいて
        • 時間、工数、コスト、関連イベントの発生回数(打ち合わせ、レビューに要した工数)
    • リソースメトリクス
      • 開発作業の入力となるもの
        • 開発要員数、作業単価、スキルレベル、開発用マシンスペック、使用ツール
  • メトリクス管理サイクル

    • PDCA(計画、実施、対策、診断)
    • 期待効果
      • 可視化
        • 作業や数字を見えるようにする
      • 予測
        • 見えるようになると予測できるようになる
      • 計画
        • 過去の実績及び予測に基づいた計画を立案できる
      • 改善対象の特定
  • メトリクス(分析)の種類

    • リアルタイムメトリクス
      • ある時点で得られるメトリクスから、計算で得られるデータを分析する
    • ヒストリカルメトリクス
      • 時系列にメトリクスを蓄積し、推移を分析する
    • 予測メトリクス
      • 上記2つから予測するもの
  • よく使われるメトリクス(分析)

    • 後日、公開されるスライドにて
  • メトリクス管理の留意点

    • 目的と整合性の撮れたメトリクスを用いること
      • データ提供する側にたいして、情報を公開すること
    • メトリクス情報は、測定したい概念のいち部分であることを意識する
    • メトリクスは手段であって目的でない
      • 集めることを目的としない
      • 標準化することが目的ではない
    • メトリクスを人の評価に使ってはいけない
      • 正しい情報が取得できなくなる

Redmineでメトリクスを見える化する方法

@mattani さん

Perlでデータ取得用のスクリプトを作成 →REST APIでデータ取得(テキスト) →Gnuplotでグラフを描画 →Wikiへ貼り付け

以上をJenkinsでCI


工数把握のすすめ〜WorkTimeプラグインの使い方〜

@tkusukawa さん

  • 工数を取得する目的

    • 原価管理
    • 見積もり精度の向上
  • 共通テーマ:成果の最大化

    • 躊躇せずに手を動かせるようにすること
    • 躊躇してしまう仕事?
      • 無駄に感じること
      • リーダとメンバで、費用対効果の認識にギャップがあること
  • メンバの手間は報われるようにしたい

    • 手間の見える化
    • 想定外の工数(認識ギャップ)には手を打つべき
    • 工数(業務)の責任をリーダが負えるようにする
  • No Ticket, No Work

    • すべての業務について必ずチケットがあり、状況共有できるようにする
    • 内部監査や籐製という大義名分で導入することも
  • 運用について

    • 工数集計専用のPJとチケットを作成する

参加者アンケート

グループディスカッション


LT: ある向上のRedmine画面カスタマイズ

@netazone さん

  • View Costumize Plugin
    • 説明の枠の幅を変更
    • 更新して欲しい項目の背景色を黄色にする、など
    • カスタムフィールドにPJごとのデフォルト値設定

LT: Redmineカスタムフィールド表示改善

@y503unavailable さん

  • カスタムフィールドのセクション区切りを変更できる
    • ソースファイル、CSSを編集する

Redmineの初期設定

新規でRedmineを立てた際、インストール直後に実施する設定についてまとめておく。

環境は次のとおり。

Environment:
  Redmine version                3.2.1.stable
  Ruby version                   2.1.8-p440 (2015-12-16) [x86_64-darwin10.0]
  Rails version                  4.2.5.2
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.8.13
  Git                            2.6.1
  Filesystem                     
Redmine plugins:
  no plugin installed

設定は次のメニューから。

管理 > 設定 

全般

  • テキストの書式: Markdown

表示

  • 週の開始曜日:月曜日
  • 日付の形式:yyyy-mm-dd
  • 時刻の形式:12:34 (24h)
  • ユーザー名の表示書式:Last First(日本語名で氏名の順で表示されるように)

チケットトラッキング

  • チケットの一覧で表示する項目:期日を追加

メール通知

  • メールのフッタ
--
Redmine
http://your_url/Redmine

仕事中に調べたことを個人的なメモとしてWikiに残す

仕事中に分からないことに遭遇することがあります。

大抵、Google先生に質問して解決するのですが、たまに
「前にも同じようなこと調べたな」
というようなことになります。

そんなとき、
「前はどのページを参考にさせてもらったっけ?」
とか、
「どんな検索ワードで調べたっけ?」
とか、考え始めてしまい、 余計なことに時間や労力をかけてしまいます。

そこで、数年前からやっていることが、調べた内容を個人用のWikiにメモしておき、 まずはその中から探す、というやり方。

ここで探してなければきちんと調べた上でまとめ、個人用Wikiにメモしておきます。
(ちなみに、月5件~10件くらいのペースで増えてます。。)

これをやるのに便利なのが、TiddlyWiki
(これを執筆時点でのバージョンは、5.0.13-beta

TiddlyWikiは、1ファイルのWikiで、「サーバを立てて、、」などの作業が不要です。

TiddlyWikiのベースとなるHTMLファイルをダウンロードしてくれば、 ChromeなりFirefoxなりで閲覧、編集、保存ができます。

数年前にTiddlyWikiに辿り着いたときは、TiddlyWikiClassicと呼ばれるものでしたが、 最近のものはHTML5を使っているとかで、見た目が結構きれいになりました。

何より、Markdownが使えるのが大きいです。

言葉では表現しにくいところでも、画像ファイルとして用意すれば さっと貼り付けることができますから。

TiddlyWikiに関する記事はあまりない(TiddlyWikiClassicの記事はそこそこある?) 気がしたので、書いてみました。

小さいグループで情報共有を目的にするのであれば、 十分使えるのではないかと思います。

Windowsでインターネットエクスプローラとかエディタなどのフォントを変更する

VirtualBoxCentOSのターミナルをいじるようになってから、 Windowsのフォントが気になり始めました。

では、ということで、フォント変更をしようと探してみました。

メイリオ」とか「Meiryo UI」がよさ気でしたが、 次のページ

Windowsで最高のターミナルを構築する方法

を見ると、英字フォントは「Inconsolata」にしたいなーと思いました。

ところが、Inconsolataは半角文字しか持っていないので、 日本語を表示する場合はフォントリンクを行わなければならないようです。

いろいろ試してみて、次のような感じで落ち着いたので、 メモしておきます。

使用するフォント

主に指定するフォントは次のとおり。

  • メイリオ」または「Meiryo UI」
    • Windows 7では標準で入っているようでした)
  • 「Inconsolata」
    • Google Fonts で「Inconsolata」を検索
    • 画面右上の「↓」アイコンから、ZIPをダウンロード
    • ZIP展開後、.ttfファイルを右クリック→インストール
  • 「MigMix」
    • M+ と IPA の合成フォントから、「MigMix 1M」をダウンロード
      • 今回は migmix-1m-20130617.zip をダウンロードしました。
    • Inconsolataと同様、展開後、.ttfファイルをインストール

Inconsolataは半角英数字と半角記号しかないので、日本語が表示できません。

そこで、Inconsolataで日本語を表示するときは、フォントリンクして、MigMix 1Mを 表示させます。

  • レジストリエディタ(regedit)で、次の階層をたどる
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
  • 画面右側で、右クリック→「新規」→「複数行文字列値」
    • 「新しい値 #1」を「Inconsolata」に変更
    • 上記で作成したキーを開き、「値のデータ」にmigmix-1m-regular.ttf,Migu 1M,130,91を指定
      • 130,91の値は適当です。。
      • ここの値の詳細については、よくわかりませんでした。

ここまでやったら、PCを再起動します。

各アプリケーションごとのフォント指定

Windowsのメニュー表示など

  • デスクトップ右クリック→個人設定→ウィンドウの色→デザインの詳細設定
  • 次のものを、「メイリオ」または「Meiryo UI」に設定する
    • 非アクティブタイトルバー
    • アクティブタイトルバー
    • 選択項目
    • メッセージボックス

インターネットエクスプローラ、メーラ

Google ChromeFirefoxThunderbirdは、次のような設定にしました。

  • 標準フォント
  • Serifフォント
  • Sans Serifフォント
  • 固定幅フォント
    • 「Inconsolata」

Sakuraエディタ

  • 設定→フォント設定
    • 「Inconsolata」を指定

コマンドプロンプト

ここまで設定した上でコマンドプロンプトを見ると、 とても読めた文字ではないことに気づきました。。

ここもInonsolataにしたいと思ったのですが、どうもフォント指定できなかったので、 とりあえずMigMix 1Mを指定しておくことにしました。

  • レジストリエディタ(regedit)で、次の階層をたどる
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
  • 画面右側で、右クリック→「新規」→「文字列値」
    • 「新しい値 #1」を「932.」に変更
    • 上記で作成したキーを開き、「値のデータ」にMigMix 1Mを指定
    • 再起動する
  • 再起動後、コマンドプロンプトのタイトルバーを右クリック→既定値
  • 「フォント」タブのフォントで、「MigMix 1M」を選択→「OK」ボタン

フォントサイズは好みですが、20ポイントくらいあったほうが良さそうです。

一応これで、MSゴシックよりは読みやすくなりました。

変更前(MSゴシック、16ポイント)

f:id:njuntech:20140406184820p:plain

変更後(MigMix 1M、20ポイント)

f:id:njuntech:20140406184828p:plain

ホストOS上のファイルを見るために、VirtualBoxの共有フォルダーの機能を使いたい

タイトルのとおり。 これには、Guest Additions(VBoxLinuxAdditions?)という機能をインストール(?)しなくてはいないらしい。

いろいろググってみたけど、どれもVirtualBoxメニューの「デバイス」→「Guest Additionsのインストール」

VirtualBoxメニューの「デバイス」→「Guest Additionsのインストール」

みたいになってるけど、実際のところ、

VirtualBoxメニューの「デバイス」→「Guest AdditionsのCDイメージを挿入」

というものしかなくて、お話にならない。

Guest Additionsのインストール

というわけで、辿り着いたページがここ。

Qiita:MacBook AirにVirtualBoxを入れ仮想マシンにCentOS6.5(64)をインストールしRails環境を構築してHerokuにサンプルをデプロイするまでの手順

タイトル長いです!
でも、かなり詳しく解説しているみたいなので分かりやすかったです。
参考にしたのは、サブタイトルの

の以上3つ。

mountコマンド

共有設定したフォルダは、次のコマンドでマウントできる。

mount -t vboxsf [共有フォルダー名] [mount先のPATH(/mnt/dirなど)]

ゲストOSのネットワーク設定してみた

ホストOSであるWindows 7に、仮想環境をVirtualBoxで作成し、ゲストOSであるCentOS 6.5をインストールした。 その続きで、ゲストOSから外のネットワークに繋がるように設定してみる。

手順をメモしそこねたので、最終形のみ。
一番つまったのは、ifconfigしたときにeth1しかないんだけど!ってところ。
一度設定してしまえばそれまでとなってしまうけど、一応まとめておく。
下の方のまとめに、ネットワーク図(もどき)を置いといたので、視覚的に理解したいときに役立つかも。

IPアドレス

上記状態で、ゲスト→ホストへのpingは通ってた。
ホスト→ゲストが通ってなかったので、通してみる。

routing

  • ホスト側
    • コマンド実行
    • route add 10.0.2.0 mask 255.255.255.0 192.168.56.101

この設定でホスト→ゲストへpingが通るようになった。
ちなみに、ゲストOS内で、ping www.google.co.jpでも結果が返ってくるようになったので、 パッケージのアップデートyum updateなんかもできるように。

まとめ

ネットワークのイメージがつきにくいので、簡単にまとめておく。

ネットワーク図(もどき)

Internet       Windows 7(Host)                      CentOS(Guest)  | === Newwork Address ===
-------------------------------------------------------------------+------------------------
        ) <--> [Network Adaptor 1]                                 | 192.168.1.0/24
                 +                                                 | 
                 +                                                 | 
               [VirtualBox Host-Only Network] <-->  [eth1]         | 192.168.56.0/24
                                                      +            | 
                                                      +            | 
                                                    [eth0]         | 10.0.2.0/24

IPアドレスメモ

  • [Network Adaptor 1]
    • IP Address : 192.168.1.11/24
    • Gateway : 192.168.1.1
  • [VirtualBox Host-Only Network]
    • IP Address : 192.168.56.1/24
    • Gateway : (NULL)
  • [eth1]
    • IP Address : 192.168.56.101/24
  • [eth0]
    • IP Address : 10.0.2.15/24

ルーティングメモ

  • ホストOS側
C:\>route print 10.0.2.*

IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
         10.0.2.0    255.255.255.0   192.168.56.101     192.168.56.1     21
===========================================================================
  • ゲストOS側 f:id:njuntech:20140301145250p:plain

VirtualBoxをインストールしてみた

仮想環境を整えるのに、Oracle VM VirtualBoxがオススメだと聞いたので、早速インストール。

インストーラのダウンロード

Oracleのページからダウンロード可能。
ただし、実際のダウンロードはUSサイトから。
現時点の最新版、バージョン4.3.6をダウンロード。

f:id:njuntech:20140217215545p:plain

VirtualBoxのインストール

ダウンロードしたexeファイルを実行。
次へ。

f:id:njuntech:20140217214955p:plain

次へ。

f:id:njuntech:20140217215022p:plain

特にオプションも変更せずに次へ。

f:id:njuntech:20140217215034p:plain

何か注意を促される。
特別なネットワーク設定はしていないので、次に進む。

f:id:njuntech:20140217215040p:plain

インストールしたいので、Install。

f:id:njuntech:20140217215042p:plain

インストールが進みます。

f:id:njuntech:20140217215044p:plain

ところどころ、デバイスソフトウェアのインストール確認が表示されたので、 インストールしておく。

f:id:njuntech:20140217215046p:plain

インストール終了。
VirtualBoxを開始してみる。

f:id:njuntech:20140217215048p:plain

ようこそVirtualBoxへ!

f:id:njuntech:20140217215051p:plain

というわけでインストール終わり。

@ITが参考になりそうなので、次以降参考にさせていただく。
第9回 Oracle VM VirtualBoxを使う(前) (1/3)