Doxygenでドキュメントを自動で生成してみる。
またまた、Twitterで・・・・
ついこの間まで使ってました。Java1.4案件でしたが。 RT @yusuke 詳細仕様/設計なんてなくて、納品時にJ仕様書工房ってソフトでソースから分厚い設計書を作って納品したことある - http://t.co/xbijtjYeY6
— ざきやま@IDEA試用中 (@z_a_ki3) 2015, 3月 16
以前の現場で使っていた、ソースコードからドキュメント類を自動生成するF社製のツールについて
話題が挙がっていて、今、この手のドキュメント自動生成ツールはどんなのがあるんだろうと
調べたらDoxygenなんてものがあったので、インストール〜とりあえず生成までしてみました。
前提条件
インストール
brewでさくさくインストールします。graphvizは図を生成するのに必要です。
$ brew install doxygen ==> Downloading https://homebrew.bintray.com/bottles/doxygen-1.8.9.1.yosemite.bottle.tar.gz ######################################################################## 100.0% ==> Pouring doxygen-1.8.9.1.yosemite.bottle.tar.gz 🍺 /usr/local/Cellar/doxygen/1.8.9.1: 5 files, 15M $ $ brew install graphviz ==> Installing graphviz dependency: libpng ==> Downloading https://homebrew.bintray.com/bottles/libpng-1.6.16.yosemite.bottle.tar.gz ######################################################################## 100.0% ==> Pouring libpng-1.6.16.yosemite.bottle.tar.gz 🍺 /usr/local/Cellar/libpng/1.6.16: 17 files, 1.3M ==> Installing graphviz ==> Downloading https://homebrew.bintray.com/bottles/graphviz-2.38.0.yosemite.bottle.1.tar.gz ######################################################################## 100.0% ==> Pouring graphviz-2.38.0.yosemite.bottle.1.tar.gz 🍺 /usr/local/Cellar/graphviz/2.38.0: 469 files, 68M
サンプルの準備
皆さんおなじみのTwitter4Jで見てみます。
$ mkdir Doxygen $ cd Doxygen $ wget http://twitter4j.org/archive/twitter4j-4.0.2.zip $ unzip twitter4j-4.0.2.zip
設定ファイル生成
ドキュメントを生成するソースのルートで doxygen -g
を実行します。
カレントディレクトリに Doxyfile
ファイルが出来ます。
doxygen -g [filename]
でファイル名を指定できます。
$ doxygen -g Configuration file `Doxyfile' created. Now edit the configuration file and enter doxygen Doxyfile to generate the documentation for your project
設定ファイルの変更
設定項目は非常に多いですが、とりあえず RECURSIVE = YES
にすれば
ディレクトリ内を再帰的に検索してドキュメント化してくれます。
# The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. #RECURSIVE = NO RECURSIVE = YES
ドキュメントの生成
doxygen
コマンドでドキュメントが生成されます。
設定ファイル等で指定していなければカレントディレクトリにhtmlディレクトリが
作成され、自動生成されたドキュメント類が格納されます。
$ doxygen Searching for include files... Searching for example files... Searching for images... Searching for dot files... Searching for msc files... 〜略〜 Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... lookup cache used 0/65536 hits=0 misses=0 finished...
ドキュメント
こんな感じにできました。
参考
メソッドの命名 ableとcan
TLでメソッド名の命名についてちょっと盛り上がっていて、エアリプしていくなかで、
1つ自己解決でスッキリしたので備忘録に。
よく、状態を確認するboolean型のメソッド名で
- canHoge
- isHogeable
と付けるパターンがあって、「人それぞれ、好みでしょ!」と思ってたんですが、
この記事を見て納得しました。
例えば、「タイプできる」
I can type.
I am able to type.
と、確かにどちらも可能ですが、can はすでに持ち合わせている能力、だからいつでもタイプできるという能力で、able は実現できる能力、いつでもできる能力という意味ではなく、発話時点で実現可能な能力です。
JavaのインタフェースでRunnableやThrowable、Iterableなどは実装することによって
その機能(能力)を実現することが出来るので〜ableと命名する。
boolean変数を返すメソッドはその機能(能力)が即時に実現(実行)できるかどうかを
返すメソッドなのでcan〜と命名する。
そう考えるとスッキリ納得することができました。
英語ネイティブの人からしたら、この辺はもう無意識に使い分けるんでしょうかね。
とりあえず基本的なことなので、少しずつしっかり理解していきたいと思います。
オリジナルステッカー作り〜素材選び編〜
前回、ステッカー印刷をお願いする会社を選び、サンプル請求しました。
オリジナルステッカー作り〜会社選び編〜 - おれろぐ #z_a_ki3
で、届いたサンプルはこちらです!!
※写真では正確に質感が伝わらないことがあるので、あくまで参考としてください。
ちなみに今回はビックリマンシールのキラシールをイメージしていたので
プレミアムステッカーのサンプルを請求しました。
プレミアムステッカー|印刷通販のグラフィック|オリジナルネットプリント作成の決定版!
アセテートサテン
グロス
マット
ヘアラインシルバー
ホログラムスター
ホログラムハート
ホログラムレインボー
ホログラムレンズ
私はこの中でホログラムレインボーとレンズが気に入りました!
どっちにするかは決めかねているので、ゆっくり考えたいと思います。
サンプルは問題なさそうなので、データ作りに入っていきたいと思います。
次回
データ作成編
オリジナルステッカー作り〜会社選び編〜
さて、前回、ステッカーぺたぺた環境を構築した訳ですが、
ステッカーぺたぺたエンジニアに憧れて - おれろぐ #z_a_ki3
Java(Duke)関連のステッカーが手に入っておらず、手に入れる機会も無いので・・・
「無いのなら 作ってしまおう ステッカー」
という事で、オリジナルDukeステッカーを作りたいと思います!!
(今年はJava生誕20周年なのでJava Day TokyoやJJUG CCCで手に入るといいなぁ〜)
前提
- 初めてのステッカー作り。
- 印刷会社にコネがない。
- デザイナーではない、普段はコード書いたりしているエンジニア(自称)
会社選び
まずはじめに、作ってくれる会社を探す必要があります。
[ シール 印刷 ] 【検索】
とりあえず、検索してみます。
世の中にはたくさん印刷会社があるので、どこの会社にするか悩みますが、
判断基準はこんな感じでしょうかね。
- 価格
- 納期
- 入稿データの形式
- 同人関連の取り扱いの有無
- サイトの雰囲気
「同人関連の取り扱い」については、同人グッツは小ロットであったり、
印刷に関する知識が少なくても対応してもらえるかどうかを判断する為です。
そんなこんなでお願いする会社を絞り込んで、印刷の通販グラフィックさんに
お願いすることにしました。
印刷通販のグラフィック|各種印刷やオリジナルネットプリント作成の決定版!
会社が絞り込めたら、サンプル請求をして届くのを待ちます。
サンプルで印刷の質を確認するのは非常に重要です。
サンプルを見て、あ、コレは・・・と思ったらまた振り出しに戻ります。
サンプル請求が出来ない会社だったら・・・
残念ですが、もう一度、会社を選び直しましょう。
次回
素材選び編
ステッカーぺたぺたエンジニアに憧れて
この業界に入って、いろいろな勉強会に参加するようになって目についたのが
ステッカーぺたぺたエンジニアでした。
ただ、ステッカーを貼り付けたら修理の時にどうなるんだろう、フォーマルな場に
持って行きたいときは・・・等と考えたりして、ちょっと日和ってました。
でも、やっぱりいいなーステッカー貼り付けたいなーなんて思っていたところで
天板にクリアのハードカバー付けてそこにステッカー付ければ良いじゃん!と
小学生並みの思いつきでカバーを探してみました。
まずはパワーサポートのエアージャケットセット!
パワーサポート エアージャケットセット for Macbook Pro 15inch Retinaディスプレイ(クリア) PMC-41
- 出版社/メーカー: パワーサポート
- 発売日: 2013/01/30
- メディア: Personal Computers
- クリック: 1回
- この商品を含むブログを見る
うん、高い!
品質はそれなりなんだろうけど、単にステッカー貼り付けたいだけなので5千円は高い!!
で、カラーバリエーションが豊富(12色)で、安価だったMS factoryのコレにしました。
パッケージはこんな感じ
カバーは光沢ギラギラなので、この辺は好みが分かれるかも。
でも、ステッカーぺたぺた貼るので気にしない(・∀・)
ストッパーはこんな感じ。
ツメでぱっちんしてるだけなので、簡単に外せるかな。
とりあえず、カバーは付けたので、これからステッカーぺたぺたしていきます!
あと、Javaというか、Dukeのステッカーが手持ちでない&もらう機会が無いので、
ちょっと自作しようかなと思っています。
こんな感じで・・・
ビックリマンシール風Duke pic.twitter.com/GsgvBoW2rj
— ざきやま@IDEA試用中 (@z_a_ki3) 2015, 3月 13
あ、この記事書くときに見つけた、こっちの方が(紹介によると)金型の痕が
無いらしいので神経質な人にはいいかもです。
[NEXARY] MacBook Pro Retina 15 インチ クリスタル ハードケース / 金型跡無し、ACアダプタポーチ セット (透明 PR15 クリア)
- 出版社/メーカー: NEXARY
- メディア: エレクトロニクス
- この商品を含むブログを見る
MacにbrewでPostgreSQL
ローカルの開発環境にPostgreSQLをインストールしたので備忘録として。
インストール
パッケージ管理ツールの brew
でインストールしました。
$ brew install postgres ==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.4.1.yosemite.bottle.1.tar.gz ######################################################################## 100.0% ==> Pouring postgresql-9.4.1.yosemite.bottle.1.tar.gz ==> Caveats If builds of PostgreSQL 9 are failing and you have version 8.x installed, you may need to remove the previous version first. See: https://github.com/Homebrew/homebrew/issues/2510 To migrate existing data from a previous major version (pre-9.4) of PostgreSQL, see: http://www.postgresql.org/docs/9.4/static/upgrading.html To have launchd start postgresql at login: ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents Then to load postgresql now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Or, if you don't want/need launchctl, you can just run: postgres -D /usr/local/var/postgres ==> /usr/local/Cellar/postgresql/9.4.1/bin/initdb /usr/local/var/postgres ==> Summary 🍺 /usr/local/Cellar/postgresql/9.4.1: 2996 files, 40M
自動起動の設定
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
実行結果
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents /Users/hoge/Library/LaunchAgents/homebrew.mxcl.postgresql.plist -> /usr/local/opt/postgresql/homebrew.mxcl.postgresql.plist
ln
コマンドでシンボリックリンクを作成しています。
オプション | 意味 |
---|---|
-s | シンボリックリンクを作成する。 |
-f | リンク先ファイルが既に存在する場合、上書きする。 |
-v | 実際にリンクを作成するファイル名を表示する。 |
~/Library/LaunchAgents
はlaunchd*で各ユーザが管理するユーザごとに実行するエージェントの設定ファイルを置くディレクトリとなっています。
launchdはデーモン、アプリケーション、プロセス、スクリプトの起動・停止・管理を行う、オープンソースのサービス管理フレームワークである
設定ファイル homebrew.mxcl.postgresql.plist
を覗いてみるとこんな感じ
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>homebrew.mxcl.postgresql</string> <key>ProgramArguments</key> <array> <string>/usr/local/opt/postgresql/bin/postgres</string> <string>-D</string> <string>/usr/local/var/postgres</string> <string>-r</string> <string>/usr/local/var/postgres/server.log</string> </array> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/usr/local</string> <key>StandardErrorPath</key> <string>/usr/local/var/postgres/server.log</string> </dict> </plist>
キー | 意味 | 値 |
---|---|---|
KeepAlive | 1度起動したら継続的に実行されるのか、あるいはリクエストの度ごとに起動されるのかといった情報を定義する。 | true |
Lavel | ジョブの名称 | homebrew.mxcl.postgresql |
ProgramArguments | 実行するプログラムおよびオプション、引数など | /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log |
RunAtLoad | launchdにジョブがロードされたときすぐにタスクを起動するか | true |
WorkingDirectory | ジョブを実行するまえにこのディレクトリにchdirする。 | /usr/local |
StandardErrorPath | 立ち上げたプロセスのための入出力ファイルを定義 | /usr/local/var/postgres/server.log |
起動する
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load
で指定した設定ファイル(homebrew.mxcl.postgresql.plist)を読み込みます。
ログは /usr/local/var/postgres/server.log
に出力されます。
$ cat /usr/local/var/postgres/server.log LOG: database system was shut down at 2015-03-12 21:35:58 JST LOG: database system is ready to accept connections LOG: autovacuum launcher started
※停止する場合
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
※launchdで自動起動の設定をしない場合
postgres -D /usr/local/var/postgres
とりあえず、これで起動まで出来ました。
参考
Mac(OS X)ではcronじゃなくてlaunchdでやる - Furudateのブログ
launchd - Wikipedia
launchd.plist(5) Mac OS X Manual Page
クール
数年前からいわゆる深夜アニメを見るようになりましたが、たびたびクールの定義が
分からなくなるので再確認しました。
1月から12月までの1年間は4クールに分けられ、それぞれ、第1・第2・第3・第4クール、冬・春・夏・秋クール、1月・4月・7月・10月クールなどと呼ばれる。 クール (放送) - Wikipedia
- 1〜3月:冬
- 4〜6月:春
- 7〜9月:夏
- 10〜12月:秋
今(3月)放送されているのは冬アニメってことですね。
以下、2015年春アニメで気になる作品