sphinxとblockdiagのインストール

ドキュメント作成めんどいなーとおもいながらネットをぶらぶらしてたらSphinx + blockdiag で始めるドキュメント生活 @ yokohama.pm 2011/05 - TIM Labsとか見つけた。いままで文章とかTexで書いてたけど、ちょっとした内容の物を書くとか図が増えてくると大変だったのでsphinxはどうかなーと思いながら入れてみる。あと、拡張機能のblockdiagとかかっこよすぎ。自動でブロック図とか作ってくれるあたり惚れる。

sphinx

インストールは簡単。easy_installでsphinxをインストールするだけ。easy_install入ってない人はpythonから入れよう。

> sudo easy_install sphinx

入れたら確認のために一度起動してみる。

> sphinx-quickstart
Welcome to the Sphinx 1.1 quickstart utility.

Please enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).

Enter the root path for documentation.
> Root path for the documentation [.]: 

起動を確認。Ctrl+Cで終了させる。

blockdiag

blockdiagのサイト(sphinxcontrib-blockdiag — blockdiag 1.0 ドキュメント)を参考にインストール。
こちらもeasy_installで簡単。

> sudo easy_install sphinxcontrib-blockdiag

試しにドキュメントを作ってみる

> sphinx-quickstart

sphinx-quickstartで聞かれる項目についてはsphinx-quickstartの詳細説明 — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会を参考に。
プロジェクト作ったら具体的に中身を書いていこう。テストなんで簡単なかんじで。

まずはsphinxプロジェクトの設定。conf.pyの内容を変更。
extensionsにblockdiagを追加して、更にフォントを指定する。けっこう適当。フォントの指定しないとエラー吐くので注意。

> vim conf.py
...
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinxcontrib.blockdiag']
blockdiag_fontpath = '/Library/Fonts/Osaka.ttf'

設定が終わったら具体的に内容を書いていく。新たにtest.rstというファイル作ってドキュメントを作成。

> vim test.rst

テストのテスト
=============================
:日付: 2011/11/01

概要
===================
sphinxとblockdiagがちゃんと動くかのテスト。

blockdiagのテスト
===================
明日から昨日への輪廻

.. blockdiag::

  diagram {
    一昨日 -> 昨日 -> 今日 -> 明日 -> 明後日;
    明日 -> 昨日
  } 

index.rstにtest.rstを追加。

> vim index.rst

...
Welcome to Sphinx-test's documentation!
=======================================

Contents:

.. toctree::
   :maxdepth: 2

   test

書くときに拡張子.rstは書かない。ここまでできたら後はmakeコマンド打つだけ。"make html"でHTMLファイルを、"make latex"でTex形式のファイルを作ってくれる。

> make html

そして出来たHTMLファイルの一部がこんな感じ。ブロック図とか結構スマートにかけて嬉しいね。編集も楽だしrstファイルそのままでもある程度読めるのでちょっとしたドキュメントとして扱うことも出来るね。

まとめ

ちょっとした編集が多いドキュメントにはありがたい。テキストで編集できるので軽いし簡単だし、体裁を勝手に整えてくれるので文章を書くのに集中できる。今後しばらく使って様子見ます。とりあえずブロック図をテキストで書けるのは便利やー。

QStringで桁合わせ

Qtで計算結果を表示したりするのに普段QLineEditとかQLabelとかで表示してるんだけど,桁をあわせる(というか小数点の位置を合わせる)方法についていろいろと悩んだのでまとめる。自分はQLineEditをReadOnlyにしてよく数値の表示を行うんだが、そのときのやり方はQString::number()を使って以下のように書いてる。

lineEdit->setText(QString::number(value));

だけど、この数値の表示がいくつか並んだ場合(自分の場合はよくXYZ座標を表示する。)に桁が合わないので常に更新するようなプログラムだと変化がわかりづらいしかっこ悪い。

そこで、QString::number()の第二引数と第三引数を以下のように指定することによって桁合わせをすることができる。

lineEdit->setText(QString::number(value, 'f', 5));


このように第三引数に数点以下の桁数を入れることで表示をそろえている。第二引数は'e'、'E'、'f'、'g'、'G'の5つの値を設定することができ、'e'と'E'は指数表示で表示する。QString::number(10.0345, 'e', 5)だと 1.00345e+01 となる('E'だと 1.00345E+01)。'f'は非指数表示、'g'と'G'は指数表示または非指数表示どちらかが選択される(判断基準は不明)。
注意! 'g'を指定した場合、桁数が合わない時がある。
というか自分の環境だと第二引数に'g'を指定した場合、桁数が合わなかった。なので'f'を指定することをおススメする。ここに時間取られた。(他のサイトなどではできてるような文章が多いから自分の環境がおかしいのかな?)

秋の九州ボードゲームフェスティバル

10月16日に北九州の門司で行われた秋の九州ボードゲームフェスティバルに参加しました。各方面から多数の人が集まり、DREADFLEETの体験会やドミニオン大会などが行われ、非常に楽しい一日を過ごせました。今回はDREADFLEETとウォーハンマーといい線いきまSHOWとタイトル忘れた・・・。ウォーハンマー系の物をやりました。このフィスティバルでは第三回北九州ドミニオン大会が同時に行われ、そちらも大変盛り上がっていました。

DREADFLEET


このゲームは船を操る人になって2つの陣営に分かれて戦う海戦ゲームです。写真を見てもらえばわかりますが(汚い画像でごめんなさい・・・)、ディテールが素晴らしく、フィールドも大きいので見ていてわくわくしますね。ちなみに写真では色がついていますが、実際はプラスチック色(灰色っぽい色)なので、実際に買ってもこのような色はついてないのであしからず。プレイ時間はインスト含めて3時間ほどかかってしまった。ルールも教えてもらいながらでしたのでなおさら時間がかかったのですが、覚えてしまえば単純なので一度やればサクサクっと進みますね。今回は1対1の戦いでしたので今度は複数人でやりたいですね。ちなみに勝ちました!

ウォーハンマー


いままでやりたくても出来なかったウォーハンマー!立体感のあるフィールドと作りこまれたキャラクターが臨場感をかもしだす!はじめてだったんですが、そこまでルールが難しいということはなかったです。早見表みたいなものが必要であることは間違い無いですが。自分が人間で相手がスケイブンの1体1のバトル。最初から毒ガス攻撃を受けて「ヤバイ!」となったけど、相手の撃破判定のダイスロール運が悪かったのでなんとか持ちこたえた。その後、民兵がすぐに全滅したけれど強い奴から狙い付けて各個撃破していき、勝利!騎馬隊強い!今度はもっと大きなフィールドでやりたいですね。

いい線いきまSHOW

写真撮るの忘れた・・・。単純なルールで盛り上がれるゲーム。一人がお題を言ってみんながそれの答えを書く。(答えは必ず整数になるようにする。少なくとも数字で答えるようなお題を出す。)そして、みんなでいっせーので公開して昇順に並べ、一番大きい数字の人と一番小さい数字の人が−50点、真ん中の人(位置的に真ん中。平均という意味ではない。)が100点を貰い。お題を出す人が2週して得点の大きい人の勝ち!というもの。時間がなかったので8人で1周して200点をゲット!他にも200点の人が居ましたが、同率一位で勝ちました!

ウォーハンマーっぽいもの?


ちょっとタイトル忘れてしまった。ドワーフを操ってフィールドに存在するモンスターを捕まえるという内容でした。4人でプレイし、他のプレイヤーが捕まえたモンスターを奪ったり、捕まえたモンスターが逃げ出したりしてなかなか自分の思う通りにいかなくて圧倒的のビリでした。プレイ自体はウォーハンマーっぽく、定規で移動できるところまで移動して、捕獲や戦いの判定をダイスで行うというものでした。う〜。もう一度やって勝ちたい!

まとめ

今回のボドゲ会ではDREADFLEETやウォーハンマーなどのフィールド内でキャラクターを動かしたりするゲームを主に遊んだ。ウォーハンマーとかは前から興味を持っていたのにやる機会がなかったので遊べてよかった。やっぱミニチュア動かすのって楽しいよね。欲しくなる気持ちを抑えつつ次回遊べる日まで待ちましょう。

Qt @福岡 第5回勉強会 で発表してきました

前回の勉強会で発表するという流れになってたのでQt+OpenCVで発表させて頂きました。当日は津田さんが電源ケーブル忘れて発表中にパソコンのバッテリーが切れたり、ゆーちさんのパソコンが不調で急遽発表の予定が変わったりと、てんやわんやしてました。

2Dグラフィクスのお話

最後の予定でしたが、ゆーちさんのパソコン不調で急遽トップバッターに。企画者の津田さんの発表で、「QGraphicsScene、 QGraphicsView」を利用したグラフィック表示についての内容でした。SceneとViewのそれぞれの役割や、描画するオブジェクトの作り方、配置の仕方などわかりやすかったです。途中でパソコンのバッテリーが切れたので自分のパソコンを貸しましたが、環境が違うので動作の見せれなかったものがいくつかあるようです。
津田さんの話は2次元グラフィックスのお話に資料としてまとめられているので、いずれじっくりと読もうと思います。今回は時間が足りずに次の勉強会で続きをやるそうなので、次回が楽しみです。

Qt+OpenCV

自分の発表です。QtでコンピュータビジョンライブラリであるOpenCVを使う方法について話させてもらいました。ちょっと事前知識と言うか、幾つか答えられない部分があったのでまだまだ勉強不足ですね。個人的にはOpenCVをQtで使うために.proファイルを設定するところや、画像の読み込み、書き込みさえ理解してもらえたら満足でしたが、うまく伝わったかな〜?と。あと、カメラキャプチャの笑い男ネタがちょっと失敗したのでしょぼーんな感じでした。今後はこのブログで詳しく説明していこうかなと思います。

ちなみに今回の発表に使ったスライドはこちら。qtf5.pdf

3次元CGの原理とQt/3Dでどのように実装するか

okaokapさんの発表で、自分と同じく前回の勉強会で「やります!」と言った流れ。QtでOpenGLを使うというか、3DCGの基本となる座標変換などの詳しい説明まで入っており、なんか授業の復習している感じでした。3D/Qtの使い方やインストール方法、グラフィックス表示などの基本的なことを丁寧に説明しててわかりやすく、実際に動かしながらだったのでとても参考になりました。Teapotとかうさぎの話などが面白かったです。歴史があるっていいですね。

キュートにQt vol 4.

トップバッターを務めるはずだったゆーちさんの発表。結局パソコンの不調は治らずじまいで、okaokapさんのパソコンを使用していました。内容はQtでGoogleMapで場所を検索するアプリケーションを作ること!実践しながらの発表はとてもおもしろかった。時間がぎりぎりでしたが、直前のパソコン変更にもかかわらず見事作り上げました。とても興味深かったので懇親会の席でプロジェクトファイルを頂きました。自分で作れるようになりたいですね。

総評

今回も楽しい勉強会で、いろいろな知識や情報を入手することが出来ました。自分も勉強会で初めて発表させてもらいましたが、いろいろな質問を貰うのは、新しい気づきがあって良いですね。あと、勉強不足を感じますね・・・。次回の予定は未定(11月か1月?っていう話があるけど)らしいので、他の用事とかぶったらやだなーと思いつつ楽しみに待ちましょう。何か発表できるネタを考えようかなー・・・。

Google+ってどう使うの?

from京都

明日が学会なので京都にいます。台風を追っかけて福岡から京都へ・・・。雨の中二条城行ってきたけど雨風が強い時に行くもんじゃないな。結局ここしか見れなかった。明日は発表なのいま発表練習してるとこ。

Google+が一般公開?されたので登録してみたけどどう使えばいいのかわかんねー。とりあえず登録してプロフィールとか設定してた。まぁあとは福岡に帰ってから考えましょう。

とりえず明日は学会いってきます。

高専カンファレンスin大阪で発表して来ました

2011/08/27に行われたんだけど3週間以上たって記事書いてるあたりやる気ない。「災害とロボット」と言う内容で参加させてもらったけれど正直発表がgdgdで申し訳なかったです。他の発表聞いてるとみんなハキハキと言っててすごいなーと思う今日この頃。

今回のLTですべてのことが言えなかったのでこのブログに少しづつ書いていこうかなーと思ってます。発表スライドは基本的に「画像」だけなので上げません。というか上げても言葉が無いからなにを言いたいのかわかんないかも。見たい方はUstの記録でも見てください。


カンファ前からバイト始めたせいで最近忙しいのです。すべてがめんどくさいぞ!

第38回北九州ボードゲーム交流会

8月7日に北九州の門司駅近くの赤煉瓦という場所でボードゲーム交流会があったので参加してきました。
今回は人が多く40人を超える人が集まったみたいです。くわしいことはこちらから。http://www.windmirror.org/kbis/

今回はクォーリアーズを中心に遊びましたが、それ以外にもたくさんのボードゲームで遊ぶことができました。

クォーリアーズ


ドミニオンをダイスにしてみましたという感じ。ドミニオンと違ってダイスを振って出た目が効果になるから、ダイス運がなければほんとに何も出来ないまま終わる。逆によければ圧倒的な差で勝てることも。一度も勝てなかったけども。あと、カードじゃないのでシャッフルする必要がないのがいいな。
個人的にすごくツボにはまったので、3回もやりました。その後すぐさま購入。

AVANTI


レースゲームではあるが、レースで1位になることが目的でなく、夢の島にたどり着くことが目的のゲーム。レースで順位が高いほど夢の島により早くたどりつける。だけどある程度はお金で夢の島に近づけるという感じになってる。
レースの進み方が面白く、進んだ先に他プレイヤーのコマがあったら更に進んだ分だけ進むというルールなので、うまくいけば最下位から一位を取ることも可能。そのダイナミックに動く局面と読み合いが面白い。これは勝てたのが嬉しかったな。

未確認生物テレビ


無茶ぶりゲーム!まず、お題がプレイヤーに伝えられ、1分間で絵を描く。例えば「メカ生物」とか「着れる生き物」とか・・・。その後、全員分集めてランダムに配る。そして次に状況が伝えられ、レポーターのつもりで1分間レポートする。状況とかはカードに記されててランダムに選ぶけど、ムチャぶり具合が面白い。例えば「太陽の陽の届かない地中500mで発見。」とか。みんなで騒げるゲームですね。

アークキング


サンファンと似たような感じらしいです。自分の王国を作るために仲間を使って資源を獲得したり、獲得した資源を使って建物建てたりします。
仲間を使う回数や資源の制限があるけども建物の効果とかで回数を増やしたり、資源を復活させたりしてコンボのようにつながるようにプレイすると楽しいです。残念ながら気づくのが遅く、負けましたけど面白かったです。

グランノワール


はっきり言ってUNOです。以上!あとはちょっと特殊なカードを加えてあるくらいです。UNOより楽しいと感じました。これは欲しいですね。

GREED


サイコロを使ったゲーム。たしかAndoroidゲームの中にも似たようなのがあったと思う。ちょっとした時間でできるのがいいね。あと、この写真のパッケージは個人で作られたらしいです。センスよくてカッコイイ。

まとめ

ボドゲ三昧の一日でした。いやーたくさんの人と遊べるっていいですね。楽しいです。今回はついついクォーリアーズとレジスタンスとヤギ戦争を買ってしまいました。おかげで金欠です。とりあえず仲間内でやりたいなー。