Highcharts を使ってみるよ

Highcharts は JavaScript でグラフを描画するためのツール
サイトのサンプル 見ると、jqplot より機能が豊富そう。
あ、redmine で使うことを想定してます。

ダウンロード

http://highcharts.com/download から。

インストール

public/javascripts に js 配下のファイルをコピー。

使い方

http://www.highcharts.com/documentation/how-to-use を参考に。
基本は jqplot と変わらない。 div で領域を確保して、グラフを書く。

http://highcharts.com/demo/ のデモから自分のやりたいことを探して、ソース見ればまぁまぁ大丈夫。

日付の指定

"Date.UTC(2010,9,31)" のように、JavaScript のコードとして指定する。
文字列での指定は無理なのかな?

データを後から注入

series の setData を使う。

var chart = new Highcharts.Chart({
    chart: {
      renderTo: 'container',
    },
    series: [{
      name: 'value',
    }, {
      name: 'cost',
    }]
});
var series_0_data = [0,1,2];
var series_1_data = [2,3,4];
chart.series[0].setData(series_0_data, false);
chart.series[1].setData(series_1_data, false);
chart.redraw();

Windows で Sphinx を使ってみるよ(その後)

rst2pdf がアップデートされました! ( ver 0.16 )

easy_install --upgrade rst2pdf
make pdf

font が見つからないとエラーが。
pdf_font_path 大文字小文字を区別するっぽい?
conf.py を修正。

pdf_font_path = ['C:\Windows\Fonts']

再度挑戦。
meiryo が見つからないエラーはない。
けど、以下のエラーが延々と出力されて、処理が終わらない。

[ERROR] findfonts.py:248 Unknown font: DejaVu Sans Mono-Oblique

rst2pdf なら問題ないのに。何が違うんだろう?
DejaVu Sans-Oblique がないのが問題か?
フォントはスタイルで指定するので、 conf.py のスタイルの設定を疑ってみる。

pdf_stylesheets = ['sphinx','a4','kerning','ja']

kerning.style で 'DejaVu Sans-Oblique' を利用しているようだ。削除。
再々挑戦。

Running Sphinx v1.0.4
loading pickled environment... done
building [pdf]: targets for 1 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
processing redmine-hudson... index
resolving references...
done
writing redmine-hudson... done
build succeeded.

Build finished. The PDF files are in _build/pdf

できた!

が、タイトルの後と、目次の後に謎の空白ページが。
まぁとりあえず出力はできたから、よしとしよう。

conf.py

修正したとこ
extensions = ['sphinx.ext.autodoc','rst2pdf.pdfbuilder']
rst2pdf のための設定
pdf_documents = [ 
    ('index', u'redmine-hudson', u'redmine-hudson', u'Toshiyuki Ando'),
]

pdf_stylesheets = ['sphinx','a4','ja']

pdf_font_path = ['C:\WINDOWS\Fonts']

pdf_language = "ja"

# How many levels deep should the table of contents be?
pdf_toc_depth = 3

# Add section number to section references
pdf_use_numbered_links = False

# Background images fitting mode
pdf_fit_background_mode = 'scale'

ja.json

{
  "fontsAlias" : {
    "stdFont": "meiryo",
    "stdBold": "meiryob",
    "stdItalic": "meiryo",
    "stdBoldItalic": "meiryob",
    "stdMono": "meiryo"
  },
  "styles" : [
    ["base" , {
      "wordWrap": "CJK"
    }],
    ["literal" , {
      "wordWrap": "None"
    }]
  ]
}

Windows で Sphinx を使ってみるよ

Sphinx はドキュメントの作成ツール。reStructuredText を使って書くのです。
Python のドキュメントが Sphinx でかかれているらしい。

Overview — Sphinx v1.0 (hg) documentation

Python のインストール

Download Python | Python.org から。
パスを通すのを忘れずに。

easy install のインストール

Ruby で言う gem みたいなものだと思う。
http://peak.telecommunity.com/dist/ez_setup.py をファイルに保存して

> python ez_setup.py

でインストール開始。プロキシ使ってる人は環境変数 HTTP_PROXY 設定しておくこと。
Python インストールしたフォルダにある Scripts にパスを通しておくこと。

Sphinx のインストール

> easy_install sphinx

でOK。簡単。

プロジェクト作成

> sphinx-quickstart

あれこれ質問に答えておしまい。

rst2pdf のインストール

> easy_install ret2pdf

pdf 作成

> rest2pdf index.rst

index.pdf ができあがり。簡単。

日本語に対応させる

Linux だとフォントの埋め込みしたほうがいいらしいけど、Windows は大丈夫っぽい。
以下の内容の ja.json ってファイルを作る。

{
  "fontsAlias" : {
    "stdFont": "meiryo",
    "stdBold": "meiryob",
    "stdItalic": "meiryo",
    "stdBoldItalic": "meiryo",
    "stdMono": "meiryo"
  },
  "styles" : [
    ["base" , {
      "wordWrap": "CJK"
    }],
    ["literal" , {
      "wordWrap": "None"
    }]
  ]
}

もう一度 PDF 作成

> rst2pdf -s ja --font-path=C:\Windows\fonts index.rst

Sphinx から pdf ができるようにする

ここからが難所。というか遭難中。

Sphinx プロジェクトの設定ファイルに PDF のための設定を追加する

conf.py

extensions = ['rst2pdf.pdfbuilder']
pdf_documents = [ 
    ('index', u'redmine-hudson', u'redmine-hudson', u'Toshiyuki Ando'),
]

pdf_stylesheets = ['sphinx','kerning','a4','ja']

pdf_font_path = ['C:\windows\fonts']

pdf_language = "ja"

# How many levels deep should the table of contents be?
pdf_toc_depth = 3

# Add section number to section references
pdf_use_numbered_links = False

# Background images fitting mode
pdf_fit_background_mode = 'scale'
バッチをPDFに対応させる

make.bat

if "%1" == "pdf" (
    %SPHINXBUILD% -b pdf %ALLSPHINXOPTS% %BUILDDIR%/pdf
    echo.
    echo.Build finished. The PDF files are in %BUILDDIR%/pdf
    goto end
)

Sphinx ビルド!

make pdf

でも、以下のエラーを吐いて終了。何故なんだろう?
pdfbuilder.py をのぞくしかないのか??

processing redmine-hudson... index [ERROR] pdfbuilder.py:120 BuildEnvironment instance has no attribute 'modules'
Traceback (most recent call last):
  File "U:\Development\Python27\lib\site-packages\rst2pdf-0.15-py2.7.egg\rst2pdf\pdfbuilder.py", line 112, in write
    appendices=opts.get('pdf_appendices', self.config.pdf_appendices) or [])
  File "U:\Development\Python27\lib\site-packages\rst2pdf-0.15-py2.7.egg\rst2pdf\pdfbuilder.py", line 203, in assemble_
octree
    if self.config.pdf_use_modindex and self.env.modules:
AttributeError: BuildEnvironment instance has no attribute 'modules'
FAILED
build succeeded.

ruby1.9.2 + rails3 で redmine を動かしてみる(まだ動いてないよ)

私の力では無理だろうけど、やってみる。
!まだ動いてません!

ruby 1.9.2 インストール

フツーにダウンロード。
gem も入っているので安心。
追加でDLLを bin にインストール。

readline4.3
http://jarp.does.notwork.org/win32/readline-4.3-2-mswin32.zip
iconv1.8
http://www.meadowy.org/meadow/dists/snapshot/old/iconv-1.8.win32.zip

rails3 インストール

gem install rails
gem を追加
gem install rack-mount -v=0.4
gem install sqlite3-ruby
gem install rubytree

redmine を rails3 にアップグレード

rais_upgrade を利用する。

rais_upgrade インストール

は、結局やらなかったよ。

自力で redmine を移行

rails3 アプリケーションを上書き作成(なんて言葉ある?)

rails new redmine-trunk-rails3

上書きするか?と聞いてくるので、以下のものに Yes を返した。

  • Rakefile
  • Gemfile
  • config/environments/production.rb
  • config/environments/test.rb
  • config/initializers/backtrace_silencers.rb
  • config/initializers/secret_token.rb
  • config/initializers/session_store.rb
  • config/boot.rb

プラグイン rails_upgrade を削除
忘れると足をすくわれる。

redmine-trunk を起動

rails server

起動した! でもオチタ!!

lib/tasks/plugins.rake

require 'rails/source_annotation_extractor' に修正。

vendor/plugins/prepend_engine_views

とりあえず無視。

Gemfile

gem 'rubytree', :require => 'tree' を追加。

lib/redmine.rb

以下を追加。何故なんだろう?

vendor/plugins/engines/lib/plugin.rb

Rails::Plugin を継承できないってエラー。
面倒くさそうなので、思い切って削除。

あ、すげー。上がるだけは上がったw
ルーティングにちょっと追記& public/index.html を削除して、アクセス

root :to => 'welcome#index'

おぉ。エラーが出た。

rails-upgrade でアップグレード

http://omgbloglol.com/post/364624593/rails-upgrade-is-now-an-official-plugin

rails2 環境上で

ruby script/plugin install git://github.com/rails/rails_upgrade.git

上手くいかないので、ソースを直接 vendor/plugins/rails_upgrade にコピー。
以下のライブラリが必要。

rak1.0
gem install rak
win32-open3
http://rubyforge.org/frs/download.php/59130/win32-open3-0.3.1-x86-mswin32-60.gem

vendor/plugins/rails_upgrade/lib/application_checker.rb の require を修正。

require 'win32/open3'
移行前のチェック
rake rails:upgrade:check

色々アラートが出てくる。とっても時間がかかる模様。
check_ar_methods で app 配下全部 grep してる…。確かにかかるよなぁ。

移行

近い将来移行ができるらしい。

rails:upgrade:gems
rails:upgrade:routes

Netbeans にプラットフォームを認識させる

FastDebugger インストール

RubyForge から gem を入手してインストール。

gem install -l [gemのパス]
ruby-debug-base0.10.3.2
http://rubyforge.org/frs/download.php/70304/ruby-debug-base-0.10.3.2-java.gem
ruby-debug-ide0.4.10
http://rubyforge.org/frs/download.php/57172/ruby-debug-ide-0.4.6.gem

ruby-debug-ide は最新のだと nmake が必要なので 0.4.6 を入れる。

Agile2010 に行ってきました

感想をグダグダ書いてみる。英語ができないので、セッションの感想はテキトー。
メインは気分的なもの。

行く前

  • 2008年:アメリカでスゴイ人たちが集まってAgileの話するんだって!
  • 2009年:すごかった!! もう一回行ってみよう
  • 2010年:どうしようか?


この2年で英語力が向上しているわけでもなく、自分が発信できるメッセージがあるわけでもない。
となると、今年行く意味ってなんだろう?と。
実際、3人で行くと100万くらいかかるし…。ね。


とか相方さんに言ってたら、「一流に触発されて何かするタイプなんだから、多分行ったほうがいい」という言葉に背中を押されて、行くことに決定。
そんなモチベーションだったんで、事前の準備はほとんどなし。

カンファレンス中

アップダウン多くて体調もそんなに良くなかったり。寝てる時間もかなり長かった。
気分的なものも多かったんじゃないかと思われる。


AgileConference のエネルギーはとても大きくって、上手くその波に乗れるとヒャッホー!できるんだけど、乗りそこなうと、結構キツイ。
自分が乗ろうとしてないのが悪いんだけど、周りが高いところに行ってるのをみて、そこまで行けない自分にガックリするわけで。


そんな中で、ヒャッホー!だったのは、 Mary Poppendieck さんとお話できたこと。
セッションの中に出てきたボランティア・マネジメントという言葉が、今の自分の悩みにヒットしたので、どんなものなのか聞いてみた。


色々話してくれたのだけど、残念ながらあまり聞き取れなかった。

  • ボランティア => 町内会とか教会とか色んなところで見ることができる
  • あなたの周りにあるコミュニティに、運営として参加することで、ボランティア・マネジメントを体感できる


ってコトを話してくれてたと思ってる。

参加したセッション

少しだけ。

Patterns for customer interaction - Linda Rising さん

お客さんと上手にダンスを踊るための色んなお話。
お客さんの質問にはその日に返事をしましょうとか。グサグサくるところ多し。
2秒息すって、2秒息止めて、2秒息を吐いてから話すと落ち着けるので良いらしい?

Lean in a Nutshell - Mary Poppendieck さん

リーンを一言で言うと。

  • 顧客にフォーカスを当てる(価値を大事にする)
  • 技術を洗練する
  • レベル・ワークフロー(なんだろう?)
  • しつこいほどのカイゼン
  • 人々を尊敬する

という5つの項目についてお話。
ボランティア・マネジメントと、レベル・ワークフローに出てきた エンパイア・ステートビルの構築に関する話に興味あり。
エンパイア・ステートビルの話は去年もされてたし、大事なのかなーとか。


今回のプレゼン資料訳して、会社で紹介できないかなぁ。

Cooking the Product Stew

13年のたまりに溜まったレガシーコードとの格闘。
全体をドメインに分割し、フィーチャーチームを作って開発。
CI大事。何でも自動化。
などなど、基本を守ってコツコツ進めるのが大事。ということみたい。
ウルトラCみたいな技を期待してたんだけど、都合良すぎと反省。

Scaling Software Agility Advanced Practices for the Agile Enterprise

途中でKO。(体力切れで眠くなって退室)

Product Ownership in the Large

Microsoft さんの大規模開発論。
概要には Scrum of Scrums が機能するのはxxx人くらいまでで、
それ以上になると工夫が必要なんだとかあって、とても期待していたんだけど
開発のプロセスをタンタンと説明してただけだったような…。


よくよく考えたら、 @tomohn さんに聞いたほうがもっと濃い話聞けるじゃん!

First-Time Implementation of Agile & Scrum at the New York State Department of Transportation


官公庁だと聞いて。でもKO。

カンファレンス後

仕事に埋もれててまとめも何もしなかったんだけど、 XP祭り2010 で参加報告しなきゃいけなくって急遽ふりかえり。
@daipresents さん @ebacky_ja さん @AyumiHOSOZAWA さんと話しているうちに、自分のもやもやが何となーく見えてきた。

相方さんの「一流に触発されて何かするタイプ」は的を射てる

報告の時は「エネルギー」って言葉を使ったけど、パルスだ、パルス、やる気パルス!!
一流のやる気パルスに触れて自分を共振状態にするために、あそこに行くんだよ。うん。
だから、そのために、セッションを選ばなきゃいけない。
今回は会社の話(標準化)とか持ち込んで、あぁ、こっちのセッションに顔を出さないとなぁ、とかごちゃごちゃ考えたのもまずかった。


相方さんは良く分かってるなぁ。来年はこの辺気をつけよう。


ってことを、まぁ、50万以上かけて再確認したのが、今回のカンファレンスの成果らしい。

今後やること

  • ヒアリングがんばる
  • コミュニティのスタッフやってみる
  • 事あるごとにパルスを話題に出して、忘れないようにする