Gunma.web #11に参加してきました
今日はWebサイト作成のための勉強会Gunma.webに参加してきました。
20人くらい集まって大変盛り上がっていました。
LTをしてくださった方もたくさんいましたね。
さらにivoryworksさんは新作Androidアプリを公開しました。
その名も「JOJOしりとり」です。
https://play.google.com/store/apps/details?id=com.ivoryworks.android.jojoshiritori&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5pdm9yeXdvcmtzLmFuZHJvaWQuam9qb3NoaXJpdG9yaSJd
「ジョジョの奇妙な冒険」で使われている言葉を使ってしりとりをするゲームです。
僕はジョジョを知らないのですが印象的な言葉が多いですね。
20th センチュリー・ボーイって何www
それから今日は参加者の方にWebページ作成ツールを紹介していただきました。
Aptanaというやつです。
フリーソフトですがAdobe Dreamweaverとほぼ同等の機能を持つそうです。
これはなかなか使えそうですね。
今回は技術的な話がたくさん聞けて良い刺激になりました。
tsurumauさんの魔法少女の仕事(俗に言うフリーランス)の話も面白かったです。
僕もあんなふうに面白いLTができるようになりたいですね。
そんなわけで皆さんの発表の構成も参考にさせていただきます。
今後ともよろしくお願いします。
四則演算のオペランドに対応する英語表現
四則演算のオペランドは2つあります。例えば2+3の場合、2と3がオペランドです。
このとき最初のオペランドの2を被加数といい、2番目のオペランドの3を加数といいます。
被加数は英語で augend 加数は addend と表現されます。
四則演算ごとにオペランドの英語表現があるのでまとめます。
第一オペランド | 演算 | 第二オペランド |
---|---|---|
augend | + | addend |
minuend | − | substrahend |
multiplicand | × | multiplier |
dividend | ÷ | divisor |
ついでに日本語表現だと次のようになります。
第一オペランド | 演算 | 第二オペランド |
---|---|---|
被加数 | + | 加数 |
被減数 | − | 減数 |
被乗数 | × | 乗数 |
被除数 | ÷ | 除数 |
Apache Thriftのインストール
UbuntuにApache Thriftをインストールしました。
まず次のところからApache Thrift v0.8.0をダウンロード。
https://thrift.apache.org/
展開します。
tar xf thrift-0.8.0.tar.gz
ディレクトリ移動。
cd thrift-0.8.0
configureを実行。
./configure
makeを実行。
make
ここでエラーが出ました。
rake aborted! cannot load such file -- spec/rake/spectask
調べてみるとRSpecのバージョンが関係してるみたいです。
とりあえずconfigureにオプションつけて解決しました。
./configure --without-ruby
もう一度make。
make
今度は通りました。
最後に
make install
でインストール出来ました。
でも何故か
make check
すると途中で
Timeout alarm expired; attempting to unblock transport
というのが5回くらい出て止まってしまいました。
現在原因調査中です。
UbuntuでサクッとGoogle Testを使ってみよう
サクッとGoogle Testを使ってみよう!
前回UbuntuでのGoogle Testのインストール方法を示したので、 今回は実際にGoogle Testを使ってテストをする。サクッとね。
前回の記事はこちら。
UbuntuでGoogle Testをインストール
テスト対象のコードを考える
まずテスト対象のコードを考える*1。
今回は引数同士を足した結果を返す関数addをテストする。addを定義してみよう。
int add(int x, int y) { return x + y; }
テストコードを考える
次にテストコードを考える。 addの引数に具体的な値を与えて期待する値が得られるか確かめよう。
例えば2+3=5なので今回はaddの引数に2と3を与えて5が返ってくるか確かめるコードを記述する。
TEST(AddTest, TwoAndThree) { EXPECT_EQ(add(2, 3), 5); }
Google Testではテストはマクロで記述する。
一つのテストを記述する時はTESTというマクロを使う。
TESTの最初の引数にはテストケース名、2番目の引数にはテスト名を記述する。 Google Testは複数のテストを行う場合テストケース名でグループ化してテストを実行する。 テストケース名が異なればそれぞれに同じテスト名を記述することができる。
TESTのブロック内にはこのテストで実行するC++のコード記述する。 ここにはアサーションというテストが成功あるいは失敗するための条件を記述することができる。 Google Testではアサーションをマクロを使って実現する。
EXPECT_EQはGoogle Testで使えるアサーションの一つである。 最初の引数と2番目の引数が等しい場合に成功、そうでなかった場合失敗となる。
今回の場合add(2, 3)
と5
が等しくなるか確かめたいので
EXPECT_EQの最初の引数にadd(2, 3)
2番目の引数に5
を与えた。
ソースコードを書く
それではテスト対象のコードとテストコードを繋げてファイルに書き込もう。
Google Testのマクロを使うときはgtest/gtest.hをインクルードする必要があるので注意。
add_test.cppというファイルにでも書き込むといいと思う。
Gistにも上げてあるので自分で書くのが面倒な人はダウンロードしてね*2。
https://gist.github.com/1256079
本当はテスト対象のコードとかテストコードは 別のファイルに記述する方が実際の開発の状況に近いんだろうけど、 ここではサクッと記述してサクサクッとビルドしてサクサクサクッと実行できるコードを示したかったので 全部一つのファイルに記述することにした。
ビルド
Google Testはテスト用の実行ファイル作成して、それを実行することでテストを行う。
その実行ファイルを作るには、さっき記述したコードをコンパイルしてGoogle Testのライブラリとリンクする必要がある。 オプションに-lgtest_mainと-lpthread *3を付けてg++でビルドしよう。
$ g++ -o add_test -lgtest_main -lpthread add_test.cpp
テストの実行
それでは今回作ったテストを実行してみよう。
先ほどビルドした実行ファイルを実行する。
$ ./add_test
すると次のような結果が出力される。
Running main() from gtest_main.cc [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from AddTest [ RUN ] AddTest.TwoAndThree [ OK ] AddTest.TwoAndThree (0 ms) [----------] 1 test from AddTest (0 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (0 ms total) [ PASSED ] 1 test.
とりあえずOKとか出てるので、なんとなくテストが成功したことが分かる。
もっと詳しい情報
もっと詳しい情報はこちらで。
Google Test — Google Test ドキュメント日本語訳
UbuntuでGoogle Testをインストール
Google Testの紹介
Google TestはC++でユニットテストを書くためのフレームワークである。
googletest - Google C++ Testing Framework - Google Project Hosting
Google Test — Google Test ドキュメント日本語訳
Google Testをインストール
Ubuntuの場合apt-getでインストールできる。
インストールするパッケージを確認したい時は apt-cacheで次のように検索するとヒットする。
$ apt-cache search libgtest
libgtest-devとlibgtest0がインストールするパッケージである。
次のコマンドでインストールできる。
$ sudo apt-get install libgtest-dev
$ sudo apt-get install libgtest0
実際にGoogle Testを使ってテストをする方法はこちら
UbuntuでサクッとGoogle Testを使ってみよう
ブログ始めました
ブログを始めました。
内容としては主にプログラミングやソフトウェアの話題になると思います。
更新頻度はそれほど高くないと思いますが、よろしくお願いします。