Googleダッシュボードを見てみた

Googleの2012/3/1からのプライバシーポリシーが気になったので、少し調べた。


気になったのは、通話相手の電話番号も収集対象だという点。サービスを使う上で自分の情報を収集されるのは当然だが、相手の情報まで収集されるのは良く分からず(通話履歴っていう意味では自分の情報ではあるのだけど)、どう利用されるのか調べてみた。


が、分からなかったので、せめて収集されてる情報は何か調べてみることにした。調べたのは2/3なのだが、おそらくすでにある程度の情報は収集されてるだろうと過程して。


ログイン - Google アカウント


前提として、googleは以前から使っています。google+も利用しています。スマホauXperia acroで、発売日に買ったのでメーラーgmailを利用していましたが、今はau oneメールです。
今回はコンタクトの部分を見ました。


Myコンタクトの部分に、Bumpというアプリで交換した情報(電話番号、メールアドレス)がありました。
サークルの部分に、google+の友だちが表示されました。
その他の連絡先に、携帯/スマホでしか連絡したことない人のメールアドレスが表示されました。


そこで、「その他の連絡先」をすべて削除し、スマホから電話アプリで電話をかけてたり、au oneメールアプリでメールを出しました。しかし、「その他の連絡先」に追加されません。単純にまだ収集していないのか、gmailアプリを使っていないからなのか。
これについては3月になって再度調べてみることにします。


今回調べてておもしろかったのが、Ads Preferences Managerです。
Ads Settings
これは+1や閲覧ページによって興味あるものを推定して表示する広告のカテゴリーが表示されるのですが、その中に次のものがありました。

  • コンピュータ、電化製品 - プログラミング
  • コンピュータ、電化製品 - プログラミング - Java

最近はJavaよりもRubyやGroovyとかの方が多いのにおかしいなあと思って、プログラミングの下にどんなカテゴリーがあるのか調べてみたら、これだけ。つまり、プログラミングにまとめられていたわけですね。

shinagawa.redmine第二回にもぐりこんできた

http://shinagawa.redmine.r-labs.org/projects/shinared/wiki/%E7%AC%AC%E4%BA%8C%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A

二回目は土曜の昼間に行われました。が、USTREAMがあったので家で見ればよかったかもしれません。これは良い意味で、

  • USTREAMによりその場にいなくても参加できる(TLでそれを視聴してる方を確認)
  • Twiterでのつぶやきがたくさんあって状況を把握しやすい
  • 発表資料がすぐにアップされたので確認が容易
  • 外に出て寒い思いをしなくて良い

ということが実現できていたからです。もちろん、それでも行くことの意味はありますが、今日はあまりにも寒すぎました。

今回はプロジェクトを運営していく上でのプラグインを作って使用している、という話が多くあったように思います。というか、うちも最近要求があって作ろうかと思っていたところだったので、印象付いただけかもしれません。@daipresentsさん、@me_umachaさん、@akiko_pusuさん。@yohshiyは開発入門として、実際にどうすればいいかを説明してくださいました。@vegashrineさんの日本語全文検索はもっとごつい話でした。@mikoto20000さんはパッケージングしたALMinium。@yandoさんはPHPで再実装したCandyCane。あとは、@naitohさんのPDF文字化け問題の事情と@TrinityTさんのRedmine運用について、でした。

DBのテーブルを更新するようなプラグインでなければ、vendor/plugins以下に作成したプラグインを置けば組み込まれるので、まずはレポートやビューワー、初期設定などの単純なものをがんがん作ってみるとよいかもしれません。とりあえず、今年度中には何か作れるようがんばる。

ALMiniumは今のところ個人で入れただけですが、春あたりに仕事で使うつもりです。現在はBitnamiで運用しているのですが、プラグインの導入やSubversionのバージョンアップが困難であるため、今後のために切り替えたいと提案しました。うちはサーバーはすべて仮装OSにしてESXi上で動かしていて、CentOSでインストールするつもりです。

プラグインの作成や、今日紹介してもらったプラグインの使用感はおいおい。

astahのERデータ型をファイル入出力で共有するプラグインを作った

 今のプロジェクトではastahをよく利用しています。ER図でデータモデルの色分けをしたり、MySQLの型を利用するためERデータ型の設定をしています。そのため、他の人と設定を共有したいのですが、そのような機能はありません。特に、後者のERデータ型はプロジェクトファイルに設定される内容なので、自分だけの世界であっても、新規作成するたびに設定しなおす必要があります。これは非常に面倒なので、astah*プラグインで作成することにしました。

github jarファイル

github wiki

 上記jarファイルをダウンロードして、astah*Professionalのpluginsフォルダにコピーしてください。communityで試してないので分かりませんが、ERデータ型はERモデルのERスキーマオブジェクトの要素であるため、ER図書き込み機能のないcommunityでは動かないと思います。
 astah*を起動するとメニュー[ツール]に[ERデータ型の設定]があるので、ファイル出力したり入力したりできるようになります。ファイルはプレーンテキストなので拡張子は気にしてません。今後ここをどうするかは検討中です。思い浮かんだことはチケット書きました。

github issue


補足1:実は少し前にアップしてたのですが、動かなかくて変更の方法が分からなかったので、一から作り直しました。astah-generate-projectで作成後、名前を一斉変換したのですが、それが原因だと思われます。astah-launchでは組み込まれるのに、jarファイルをpluginsフォルダにコピーするとRESOLVEDとなって動かなかったのです。名前を変えるときは注意。

補足2:astah*6.5では、java7で動かすとメッセージダイアログが表示されない問題がありましたが、6.5.1では解決されていました。

補足3:astah*pluginに同梱されてるMavenがjava6を想定してるようで、pom.xmljre=1.6になってます。そのため、java7特有の記述をするとastah-buildで失敗します。pom.xml内のこの箇所を書き換えるとビルドは成功しました。

補足4:プラグイン一覧で表示される「名前」はbundle.name、「説明」はbundle.descriptionですが、これを定義するファイルは、src/main/resources/OSGI-INF/l20n/bundle.propertiesです。しかし、bundle.descriptionは何故か、src/main/resources/plugin.propertiesでも定義できます。bundle.nameは後者ファイルに定義できません(有効になりません)でした。

Redmineでのタスクの進捗報告について

Redmine Advent Calendar jp 2011 : ATND の18日目です。
プラグインの開発や利用をほとんどしていないのですが、一応本体は1年半使い続けているので、今のプロジェクトでの利用方法について書きます。

背景
Shibuya.trac#13に滑り込んでみた - いぬおせろ でも書いたのですが、紙とRedmineでチケット(作業)を運用しています。紙はみんなが話し合うために、Redmineはやりたいこと(wiki/フォーラム/チケット)とやったこと(SCMへのコミット)の紐付けと、マネージャへの報告のために利用しています。


タスクに進捗率があっても、チケットに進捗率はない
Redmineにはチケットに進捗率を入力する欄がありますが、みなさんはどのように利用していますか?
進捗率といえば「永遠の90%」問題が有名ですね。担当者に話を聞くと、考慮することがどんどん出てきた、仕様が追加されていった、他の箇所の変更に対応していたら作業が増えた、あるいは単純にバグコードばかり書いていた、なんてのが明らかになります。大切なのは、きちんと理由のある作業がそこに存在していた、ということです。このような時は別のチケットを発行しますが、現在のチケットの子チケットとして発行するか、今のチケットと新しく発行するチケットの親チケットもあわせて発行すると便利です。親チケットを参照すると、その子チケットの作業時間と予定工数の総数が表示され、調整された開始日、期日、進捗率が表示されます。進捗率は Σ(予定工数÷Σ予定工数×進捗率) で表示されます。

管理上、作業のそれぞれの内容も気になるのですが、気にするのは、作業に遅れがないか、その理由は何か、です。「進捗率を見るのは親チケット」であり、「作業内容や遅延理由(障害)となる事象(への対処作業)は子チケット名」となります。よって、子チケットは「どれだけ出来ているか」ではなく「何をやっているか」を扱うため、「出来た」か「未着手/作業中」だけが分かれば良いのです。Redmineではデフォルトでは0%〜100%を10%刻みで選択できるようになっていますが、チケットのステータスに対応して進捗率を0%か100%にする設定ができます。

設定は管理画面で行うので、Redmine管理者でログインしてください。
管理メニューから、[設定] > [チケットトラッキング] 画面を開き、[進捗の算出方法] を [チケットのステータスを使用する] に変更します。

次に、[チケットのステータス] 画面を開き、それぞれのステータスの進捗率を指定してください。ここでは、解決、終了、却下に100%を、それ以外に0%を設定しています。0%を設定しないと、間違えて却下にしたチケットのステータスを進行中に戻したとき、進捗率が100%のままになってしまうので、念のため設定しておくとよいでしょう。

これで子チケットの更新画面から進捗率が消えました。親チケットには進捗率がありますが、変更できないようになっています。

もしこれで「永遠の0%」のチケットが出るのであれば、それは子チケットを作るチャンスです。積極的に子チケットを作ってください。


進捗率の報告に手間をかけない
上記の運用を行っていくと、Redmineの機能で自動的にガントチャートが出来上がっていきます。ガントチャートというと「ウォーターフォールがダメだから」を理由に否定的な方もいるかもしれませんが、全体を把握するレポートとしてはそんなに悪いものではありません。「ガントチャートを作る作業」が存在しているのであれば確かに嫌ですが、Redmineが通常のチケット駆動を行った結果からガントチャートというフォーマットの表を作成してくれるので、邪険にするようなものでもありません。むしろ、他の部署に魅せたり、マネージャが上役などに説明する際の道具としても利用することができるので、活用できます。
この例ではチケットにバージョンも設定しています。バージョンはマイルストーンやScrumでいうスプリントと言い換えることもできます。これを設定すると、ガントチャート画面で見せたい作業やバージョンだけを表示することができます。


補足:Firefoxを使っていて困ること
最初の画面で開始日と期日の欄が見切れていました。IE(8)やChromeならすべて表示されるのですが、Firefoxだとこのようになってしまうようです。Firefoxを使いたい方は次のファイル

$REDMINE_HOME/public/stylesheets/application.css

の末尾など適当な位置に次の記述を追記してください。

input { font-family:Arial,Helvetica,sans-serif; }

次は@nobiinu_andさん、お願いします。

Redmine1.3のグループへのチケット割当について

Redmine 1.3新機能紹介: グループへのチケット割当 | Redmine.JP Blogをみて、早速Redmine1.3を使ってみました。
今のプロジェクトではほとんどのプログラミングがペアで行われています。このとき、作業時間の記録をどうするか、という疑問があります。
チームの作業として捉えるならば、個人の作業時間を細かく管理する必要はまったくないのですが、別業務の作業が頻繁にはいるため、こちらのプロジェクトにどれだけの割合で活動できているかの把握をしておきたかったのです。
今のところ、担当者違いの同じチケットを2枚作ったり、それをまとめる親チケットを作ったりもしていますが、1つのチケットに複数人割り当てられれば作成するチケットが1つになるのに・・・と思っていたので、グループ割当という機能はその代替になるのかと思って試してみました。
※チケットにユーザ型のカスタムフィールドを追加することで、複数の担当者を登録することもできます。追加した担当者をウォッチャーとして登録すればDashboardにも表示されるのでやり様はあったのですが、少し違和感を感じたのでその方法はやっていませんでした。

まず、グループ割当の設定が必要なので、Redmine管理者でログインし、管理メニューから [設定] > [チケットトラッキング] 画面を表示して、[グループのチケット割当を許可] をチェックしてください。

次に、ユーザu1, u2, u3、ペアプログループpair-u1-u2, pair-u1-u3, pair-u2-u3を作ります。

プロジェクトの設定画面で、メンバー登録でペアプログループを登録します。このとき、グループは個別に設定してください。開発者全体をまとめたグループを設定しても、グループに親子構造はないため、選択できません。

チケットを作り、u1とu2で作業時間を記録します。

ユーザu1とu2の作業時間の集計が表示されたので、担当者ごとの作業時間は分かるようになりました。ただし、これによりチケットの作業時間を単純計算で2倍にしなければならないので、プロジェクトに対する作業スピードの見積もりはむずかしくなるかもしれません。素直にグループ割当は親チケットを登録するときに使って、ペアプロの記録は別方法を使ったほうが良いかもしれません。

23BYの酒米と期待している日本酒

23BYの新酒が出だし、何本かいただきました。
今年も非常に美味しい。というか、去年より美味しい。少し甘いか?
酒屋や蔵人に聞くと、今年は酒米の出来がよいそうです。よく聞くのは山田錦、五百万石あたり。黒龍 しずくは去年は少し苦味があり微妙な味わいでしたが、今年はいつもの甘みのあるきれいなお水でした。手取川 露堂々は去年も美味しかったけど、かすかにあった苦味が和らいで、更に美味しかったです。逆に、鍋島 New Moonは甘くなりすぎたかもしれない。美味しいのだけれども、去年の方がしっかりとした味があって私は好みでした。丸くなりすぎていました。もしかしたら鍋島のようなお酒は、今年は山田錦よりも五百万石を使っている方が美味しく感じるかもしれません。

まだ飲んでいない(出ていない)23BYのお酒で期待しているのは、富美菊酒造の羽根屋 純米槽場詰め 無濾過生原酒です。
http://www.jizake.com/html/Sake8013.html
これは2月末〜3月頭頃にでる五百万石を使った期間限定酒です。昨年度はまだ知っている人は僅かでしたが、今年度は認知度があがってきたため、急いで買わないとすぐになくなってしまうでしょう。

次に期待しているのは、小林酒造の鳳凰美田 Phoenix 純米大吟醸 生原酒です。これはもう出てます。
http://www.yajima-jizake.co.jp/products/detail.php?product_id=1801
酒米は愛山を使っていて、一昨年度は辛口と甘口の絶妙なバランスが取れた非常に美味しいお酒でした。しかし、昨年度は1年貯蔵させたもの(古酒)を出荷しており、甘口よりにバランスが崩れてしまいました。今年度は生原酒が復活しており、小林専務も出来に満足されているようなので、非常に楽しみにしています。

ここのところ気にしているのは、吉田酒造の手取川 純米大吟醸 吉田蔵です。もう出てるのかな?
http://konchikitai.com/53_171.html
吉田酒造は二人の杜氏がおり、それぞれの蔵を持っています。私が始めて飲んだ手取川はベテラン杜氏の山本さんの露堂々のため、若手杜氏の吉田さんの吉田蔵に対しては辛口評価になりがちですが、1年に1回、新酒を飲むようにしています。昨年は米の出来が悪いにもかかわらず、一昨年よりも僅かに美味しく、成長を感じることができました。米の出来の良い今年は一体どうなっているか、気になっています。

プログラミングお題に挑んでみた:FizzBuzz編

※12/15 コード修正、内容加筆
お題:FizzBuzz - No Programming, No Life への挑戦。単純なのはすぐにかけるが、よりよい書き方はないか考えてもなかなか思いつかず、参考になるものを調べるとその書き方は出来ないので更に悩んでしまったので、思いついた限りを書くことにしました。

eachだけを使う場合、内部にprint文を書くので「FizzBuzzを出力する」記述は省略できました。collectを使うと、collectに判定を、eachに出力を分けてかけるので、よりシンプルにかけたと思います。collect内での判定にswitchを使うとステップ数は少なそうですが、if文とどちらが見やすいかな。
3の1行書きは前回つながりのネタです。三項演算子は、私は基本的はプライベートコード(言語仕様のために書かざるを得ない面倒くさいコードや、言葉を定義できる5行程度のコードをメソッド抽出したもの)で書きます。オープンな場所で書きたいときは"?"と":"で改行して3行で書いたほうが読みやすいです(なので大抵はif文をつかう)。