Visual Studio 2015 を使ったCLIアプリケーション開発 (第1回)

さて2016年ももう終わりですが、Microsoftより無償で使えるIDE Visual Studio 2015 Communityが提供されています。

その昔、それなりの機能が使えるVisual Studioは有償(Express版は無償)で提供されていたのですが、2015からはタダで使えるになっています。これを使わない手はありませんね。

 

Visual Studio 2015 Community」を使って C++/CLI アプリケーションのこと始め的な記事を複数回に分けて書いてみようと思っています。今回はソフトのダウンロードからインストールまでの勝手を紹介します。

 

以下のリンクにアクセスして、「Download Community 2015」のところをクリックする。

https://www.visualstudio.com/vs/community/

f:id:tuttitan:20161226181128p:plain

 

インストーラーがダウンロード開始されるので、ダウンロード完了後にファイルを実行する。

f:id:tuttitan:20161226181447p:plain

 

インストーラーの準備が整ったら下のような画面になるので、「インストール場所」を設定し(任意)、「インストールの種類」は「カスタム」を選択し、「次へ」をクリックする。

f:id:tuttitan:20161226181726p:plain

 

「機能の選択」は「プログラミング言語」→「Visual C++」を選択する。そして「次へ」をクリックする。(下図ではMFCも一応使いたかったのでチェックが入っています)

f:id:tuttitan:20161226183625p:plain

 

確認画面になるので設定を確認して、問題がなければインストールを開始する。環境にもよるけどインストールには20~30分くらいかかるのでコーヒーでも飲んで待ちましょう。

f:id:tuttitan:20161226182037p:plain

 

...20~30分後。

f:id:tuttitan:20161226183950p:plain

 

時間は少しかかりますが、ここまでは簡単ですね。

ssh接続でpassphraseを毎回入力するのは嫌だ

WindowsCygwin環境からsshコマンドを叩いたときの話。

 

前書き

SSHサーバをこしらえて、セキュリティの観点から認証方法を公開鍵認証(RSA)にしたのだけど、SSHサーバに接続する都度『id_rsaのpassphraseを入力してね』と聞かれて面倒くさい。

Macなら一度passphraseを入力してしまえば、基本的に聞かれることはないのにどうしたものかと調べてみたら、Cygwinでも使える便利なものがありました。

 

便利ツール

その名も「keychain」というツール。(Macのそれとは違うみたい)

これはLinux/Gentooディストリビューションの親戚Funtooのプロジェクトで開発されているツールのようでCygwinにも入れることができました。keychainを使うことでターミナルがpassphraseの情報を記憶してくれるようになるっぽいです。

 

導入方法
  1. gitにkeychainのソースがあるのでgit cloneするかzipをダウンロードする

    https://github.com/funtoo/keychain

  2. 展開した(Makefileがある)ディレクトリに移動してmakeする
    $ cd keychain
    $ make
  3. 「keychain」という実行可能形式のファイルができるので、/usr/binにコピーする
    $ cp keychain /usr/bin/
  4. Cygwin起動時に自動実行するように ~/.bashrc に以下を追記する
    if [ -e /usr/bin/keychain ]; then
        eval `/usr/bin/keychain --eval --agents ssh id_rsa`
    fi
    
  5. 端末を開き直すか、source ~/.bashrc で起動スクリプトを読み込む

 

参考Webページ

iroha Board を試してみる。その2

前回の記事からの続きになります。

 

tuttitan.hatenablog.com

 

今回は手順4〜手順9の手順補足をします。

 

手順概要(再掲)
  1. ゲストOSのイメージをダウンロードする
  2. ゲストOSをインストールする
  3. ゲストOSの使い勝手をよくする(以降はゲストOSでの作業)
    a. ソフトウェアアップデートを行なう
    b. Parallels Toolsをインストールする
    c. (必要に応じて)作業用のアカウントを作成し、適当に権限を付ける
    d. vim, emacs, chromiumをインストールする
    e. ホームディレクトリを英語表記に直す
    f. キーボード入力メソッドの設定を行なう
  1. 「iroha Board」のWebページでインストール手順を確認する
  2. apache2をインストールする
  3. mysqlをインストールする
  4. php5.6をインストールする
  5. iroha BoardとCakePHPのソースをダウンロードする
    a. 公開ディレクトリを用意する
    b. ダウンロードしたソースを用意したディレクトリに展開する
  6. mysqlの設定を行なう
  1. データベースを作成する
  2. cake phpが動作することを確認する
    a. 所有者をapache(www-data)に変更する
    b. Security.salt と Security.cipherSeed の値を変更する
    c. rewriteモジュールを有効にする
    d. apacheのディレクティブを変更する
  3. iroha board の設定を行なう
    a. database.php を修正する
    b. core.php を修正する

 

手順補足

手順4:バージョンアップによって導入手順が変わっていたら困るので、公式ホームページでインストール手順を確認する。執筆時点ではバージョンは0.9.7で、手続きとしては以下の通り。

  1. iroha Board のソースをダウンロードして展開
  2. CakePHP のソースをダウンロードして展開
  3. 公開ディレクトリに展開したファイルを配置
  4. データベースの設定をする
  5. 必要に応じてwebrootの設定ファイルを修正する
  6. ブラウザよりインストールする

手順5:普通にaptより入れる。
$ sudo apt-get install apache2

手順6:普通にaptより入れる。途中でMySQL root のパスワードを何にするか問われるので予め決めておく。
$ sudo apt-get install mysql-server

手順7:lubuntu 16.04 のデフォルトのphpは7.0なのでphp5.6をインストールできるようにppaを追加する。
$ apt show php
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo atp-get install php5.6
phpmysqlを扱うので、php5.6-mysql パッケージもインストールする。
$ sudo apt-get install php5.6-mysql

手順8:iroha Board の公式Webページにリンクが張ってあったのでそこからソースをダウンロードする。

手順8.a:通常、apacheの公開ディレクトリは /var/www/html あたりだけど、ごちゃごちゃになるといけないので今回は /var/www/iroha を新規作成し、ここを公開ディレクトリとして設定する。
# mkdir /var/www/iroha
/etc/apache2/apache2.conf に以下を追記。
Alias /iroha/ "/var/www/iroha/"
<Directory /var/www/iroha>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>

手順8.b:/var/www/iroha はroot所有になっているので展開はroot権限で行なう。
$ sudo mv ~/Downloads/source.tar.gz /var/www/iroha
$ cd /var/www/iroha
$ sudo tar xvzf source.gz.tar
ソースを展開後、ディレクトリ名を "iroha Board" は "irohaboard" に変更、"cakePHP" は "cake" に変更しておく。(別に名称は任意でよいが)

手順9:iroha Boardでは初期設定時にデータベース無効な日付(0000-00-00 00:00:00)を書き込むため、SQLの設定にALLOW_INVALID_DATES を指定しておく必要がある。
/etc/mysql/my.cnf などの設定ファイルに以下を追記。
[mysqld]
sql_mode=ALLOW_INVALID_DATES
追記後、サービスを再起動させる。
$ sudo service mysql restart
サービス再起動後、mysqlにrootで入り、sql_modeを確認する。
mysql> select @@sql_mode;

 

一応、ここまでが iroha Board を導入するまでの下準備になります。

手順10以降の手順詳細は次の記事で紹介します!

 

参考Webページ

iroha Board を試してみる。その1

OSSOpen Source Software)を使って手軽にe-Learning環境を構築できないか?

兼ねてよりe-Learningには関心があり、有名どころのmoodleあたりを触ってみようかなと考えていたのだけど、ネットで調べてみると『iroha Board』なる軽量なLMS(Learning Management System)があるとのこと。

https://irohaboard.irohasoft.jp/

 

これはシンプルで良さげ!というわけで、とりあえず入れてみることに...
が、これの導入に少し手を焼いたので記事としてまとめます。

 

必要なもの

LMSを構築するにあたり最終的に必要となるものを以下にざっくり列挙する。

  • Linux環境
  • Webサーバ
  • php
  • MySQL
  • iroha Board ソース(公式よりダウンロード)
  • Cake PHP ソース(公式よりダウンロード)

 

前提としての環境

いきなりネイティブに入れるのは、面倒くさかったのでVM上で環境を作ることにした。

ホスト環境(MacBook

ゲスト環境

  • OS:lubuntu 16.04.1 LTS(Desktop環境)
  • SQLmysql 5.7.16
  • PHPphp 5.6.29
  • Webサーバ:apache 2.4.18

 

手順概要

Macに仮想化ツールがすでにインストールされている前提で進めます。

  1. ゲストOSのイメージをダウンロードする
  2. ゲストOSをインストールする
  3. ゲストOSの使い勝手をよくする(以降はゲストOSでの作業)
    a. ソフトウェアアップデートを行なう
    b. Parallels Toolsをインストールする
    c. (必要に応じて)作業用のアカウントを作成し、適当に権限を付ける
    d. vim, emacs, chromiumをインストールする
    e. ホームディレクトリを英語表記に直す
    f. キーボード入力メソッドの設定を行なう
  1. 「iroha Board」のWebページでインストール手順を確認する
  2. apache2をインストールする
  3. mysqlをインストールする
  4. php5.6をインストールする
  5. iroha BoardとCakePHPのソースをダウンロードする
    a. 公開ディレクトリを用意する
    b. ダウンロードしたソースを用意したディレクトリに展開する
  6. mysqlの設定を行なう
  7. データベースを作成する
  8. cake phpが動作することを確認する
    a. 所有者をapache(www-data)に変更する
    b. Security.salt と Security.cipherSeed の値を変更する
    c. rewriteモジュールを有効にする
    d. apacheのディレクティブを変更する
  9. iroha board の設定を行なう
    a. database.php を修正する
    b. core.php を修正する

 

手順補足

長くなりそうなのでこの記事では手順3までを補足します。(手順概要の赤枠のところ)

手順1〜2:普通に行なう。なおゲストOSには以下のイメージを使用した。

Lubuntu 16.04.1 LTS 32-bit PC (i386) desktop image

http://cdimage.ubuntu.com/lubuntu/releases/16.04.1/release/lubuntu-16.04.1-desktop-i386.iso

手順3.a:ゲストOSの初回ログイン時にソフトウェアの更新を提案されるのでそれに従う。

手順3.b:ゲストOSウィンドウの右上にビックリマークがあるので、クリックして「Parallels Tools をインストールする」を選択。(メニューバーからもいけるはず)
Parallels Toolsのメディアがマウントされるのでマウントポイントに移動して、
$ sudo ./install
インストールが完了したらゲストOSを再起動し、マウントポイントからメディアをアンマウントする。

手順3.d:使いやすいエディタやWebブラウザのパッケージをインストールする。

手順3.e:xdg-user-dirs-gtk-update するとParallels Desktopでは不都合があるので、次のようにシンボリックリンクを張るようにする。
$ ln -s ~/デスクトップ ~/Desktop

 

続きは次回に!

tuttitan.hatenablog.com

 

参考Webページ

秋イベを振り返る。その6

艦これの2016年秋イベントの話になります。
今回はE4海域輸送部門について...

この海域はMAP左半分が輸送作戦、右半分が戦闘作戦になっていて、難易度リセットすると輸送作戦からまたやり直しという意地の悪いMAPになっています。そして甲種に挑んだ私はラスダン運ゲーに泣き、乙種でやり直すことに...

輸送に関しては甲でも乙でも難しさとしては変わらない感じでした。(必要になる輸送量が甲種のほうが多いくらいで)

f:id:tuttitan:20161208095344p:plain

輸送作戦はある程度軽い編成でないと最短ルートを航行できないので、軽巡1、駆逐2、航巡2の編成にしました。編成が軽い上に敵が強いので道中支援は必須でした。なお、Hマスにフラヲ改がいるので道中支援を出していても事故るときは事故ります。

大発動艇を入れつつ がっちり対空装備を固めます。索敵値がないとLマスに逸れるということみたいなので航巡には水戦に加え水観を載せています。

f:id:tuttitan:20161208095813p:plain

ボスまで辿り着けば夜戦でA勝利は確実なので、疲労を抜いて回していればその内 輸送量が満了します。輸送作戦ではレア艦のドロップはありませんでした。

なお、道中支援は駆逐2、正母2、高速戦艦2(全艦キラキラ)でしっかり出しておきましょう。

 

秋イベを振り返る。その5

E3海域攻略の記事になります。

MAPを見ると複雑に見えますが、この海域もE2と同様史実艦をある程度(7隻以上?)編成に入れるとルートを固定できるみたいです。
...固定というよりは編成の条件を緩和できる感じでしょうか。

E2とE3は共通の札なのでE2で使った史実艦をここでも使えます。史実艦としては嵐、野分、祥鳳、瑞穂、蒼龍、飛龍、愛宕高雄、羽黒、妙高、神通、摩耶、鳥海、木曽あたりがレベル的に使えそうな感じ。

空母機動部隊編成ですが正規空母を3隻以上入れると逸れてしまうので、軽空母を配して艦戦多めです。道中に航空戦が2回あり、ボスは連合艦隊になっています。

 

ひとつ前の記事で編成をすでに紹介していますが、こんな感じになります。

 

第1艦隊

f:id:tuttitan:20161208133452p:plain

 

第2艦隊

f:id:tuttitan:20161208133533p:plain

 

道中の航空戦マスで事故ることがあるので、基本的にラスダン以外は決戦支援を出さない方向で攻略を進めました。全キラの決戦支援を出しても(12隻中)2~3隻落としてくれればいいところでカスダメのことも多かったので支援効果は薄かったように思えます。

また、道中は潜水艦マスと航空戦マスしかないので支援の必要はなかったです。ルート的には、1BEILQ を進みます。

f:id:tuttitan:20161208143015p:plain

 

ギミック解除でどの程度弱くなったのかは分かり兼ねますが、ラスダンになってから10数回挑むことになったので、すんなりクリアという風には運びませんでした。(甲作戦にて)

なお、欲しいレア艦はE2で既に出ていたので堀りのことを考えることなく清々しく攻略しました。

 

次回は本イベント最高難易度との呼び声が高い、魔のE4海域です...

 

秋イベを振り返る。その4

E3海域のギミック解除の記事になります。なおE3海域は連合艦隊による出撃になります。

攻略サイトを見て回っているとこの海域にはギミックがあるらしく、解除することによってボスが弱くなるとかならないとか。ギミックの解除には次の手続きが必要とのことです。

  • E2海域の航空戦マス(A, G, K, L)でS勝利
  • E2海域の空襲で「制空権確保」かつ「被害なし」を3回以上
  • E3海域の所定のマス(C, K, D, H, J)でS勝利

甲種でE2をクリアしたため、2つ目の条件がなかなか厳しかったですが潜水艦編成で「制空権確保」となるまで周り続けました。

 

E2海域での作業

f:id:tuttitan:20161208123250p:plain

1つ目の条件である、航空戦マスでのS勝利は潜水艦編成で周れるマスばかりなので潜水艦だけの編成にすることで楽にS勝利することができます。ですので、2つ目の条件に主眼を置いて条件を潰していきます。ただし、航空戦マス以外では先制雷撃で駆逐艦などを撃ち漏らすと普通に中大破するのでそこはお祈りです。(Fマスは潜水艦マスなので無条件でD敗北...)

f:id:tuttitan:20161208103423p:plain

陣形はすべて単縦でよいでしょう。

 

まずは基地航空隊を2部隊とも「防空」にして、局戦x3+彩雲の編成にします。空襲ではWヲ級改が相手になりますが、航空優先だったり制空権確保だったりでした。

第1部隊: 飛燕244、雷電雷電、彩雲
第2部隊: 飛燕、飛燕1丁、飛燕1丁、彩雲

 

E3海域での作業

E3海域は水上打撃部隊と空母機動部隊によってスタート地点が異なります。辿り着けるマスが編成によって異なるので、編成を使い分けてギミックを解除していきます。

  • 上スタート:空母機動部隊(D, H, Jマス)
  • 下スタート:水上打撃部隊(C, Kマス)

f:id:tuttitan:20161208120926p:plain

最終的にボス攻略は史実艦編成によって 1BEILQ のルートで進めることを考えると、Eマスは能動分岐になるので、HマスとJマスは攻略編成で行けることになります。

そこでまず攻略用の編成を考えてから、そこに手を加えて他のマスの勝利を目指します。この編成については次の記事に譲ることにして、結果的には次のようになりました。

 

第1艦隊

f:id:tuttitan:20161208133452p:plain

 

第2艦隊

f:id:tuttitan:20161208133533p:plain

 

上の機動部隊編成でHマス、Jマスに勝負していきます。
一方、Dマスへは速力が低速の艦を含めることによって進むことができます。ですので、第1艦隊の龍驤をE2で使った飛鷹に変更して出撃しました。

f:id:tuttitan:20161208134320p:plain

 

水上打撃部隊は第1艦隊の正規空母を適当に重巡に変えて出撃させました。(第2艦隊は据え置き)

 

第1艦隊

f:id:tuttitan:20161208141057p:plain

もっと編成を重くしても良かったのですが、S勝利1回ずつなら夜戦入りでこの編成で大丈夫でした。

f:id:tuttitan:20161208141311p:plain

 

感想

E3での作業は編成を考えたり変えたりして煩わしかったですが、「被害なし」が中々出なかったE2での作業のほうが手が掛かりました。