Windows8.1 Hyper-V ゲストOS USBモバイル端末 インターネット接続

客先常駐環境で、持ち込みのノートPCに対して設定を行ったときのメモ

有線や無線の社内ネットワークにはつなぐことができないため、
持込のソフトバンク203HWを利用して構築

テザリングやその他WiFiを利用した環境は簡単に構築できたので割愛

1.Hyper-Vを有効にする
 Hyper-Vは初期状態では無効になっているため、「Windowsの機能の有効化または無効化」から
 有効にする。Hyper-V以下のすべてにチェックを入れる

2.Routing and Remote Access サービスを有効にする
 Hyper-Vでは仮想スイッチの種類が外部・内部・プライベートの3種類になり
 NATを明示的に指定することができない。
 詳細は後述するが、Routing and Remote Access サービスを有効にしないと
 NAT接続ができないため有効にする。
 コンピューターの管理→サービスからRouting and Remote Access を探し出し
 スタートアップの種類を自動に設定し、右クリックから開始を選択

3.仮想スイッチを作成する
 Hyper-Vマネージャーから仮想スイッチマネージャーを起動
 新しい仮想スイッチを内部で作成する。
 ここではモバイルという名前を設定した。

4.モバイル端末接続を共有する
 203HWを接続状態にする。
 コントロールパネルからネットワーク接続に行き、
 モバイルブロードバンドとvEthernet(モバイル)があることを確認する。
 モバイルブロードバンドを右クリック→プロパティで共有タブを開く。
 インターネット接続の許可をチェックし、ホームネットワーク接続にvEthernet(モバイル)
 を設定する。

後はゲスト環境から、仮想スイッチ:モバイルを選択すればよい

<詰まったところ>
2.の手順がネット上で見つからず、3.4.だけを行ってもInternet接続ができなかった。
4.の設定をするとホスト上のvEthernet(モバイル)には192.168.137.1が割り振られるが、
ゲストのIPが192.168.137.XXでない場合は2.の設定が行われていない可能性があります。
Routing and Remote Access サービス(RRAS)を有効にすることにより、NATルーティングが
行われ、適切なIPがゲストに割り振られます。
 

コード定義をenumで行う

ことについて考えてみる。
□良い点

  1. 開発者が、設計書を見なくてもコードの意味がわかる。
  2. if文で利用する際、意味がわかりやすい。

□悪い点

  1. 画面とのやり取りや、データベースとのやり取りの際にコード⇔enum変換が必要。
  2. DBで管理するものとenumで管理するものの判断がつきにくい。

□悪い点の改善策

  • モデルやドメインのフィールドとしてはコードで扱い、比較を行うときだけenumで判断するようにする。そうすると画面・データベースのやり取りもそのまま行えるし、判定文の意味のわかりやすさも維持できる。
  • すべての区分はDBで管理し、判定文の材料となるものだけenum化する運用にする。

システム開発の体系

システム開発の体系―JIS X0160・共通フレーム98対応

システム開発の体系―JIS X0160・共通フレーム98対応

共通フレーム2007で社内標準を作っている続き。
共通フレームは,原則(こうあるべきみたいなもの)を定めているものなので,共通フレームだけだと実際の成果物のイメージがつかみにくい。しかも,聞きなれない言葉(ソフトウェア品目とか)が多く,それって設計書に何を書くことを言ってるの??といった感じでした。
そこでこの本。結構古い本ですが,共通フレーム(98なのでチョット項目がずれてる)を元に設計書の目次を書いてくれているので,共通フレームと成果物の間のモヤモヤを少し埋めてくれます。巻末の対応表が便利。

あとは,共通フレームに対応した設計書類のテンプレートを作る作業が残ってるんだけど,サスガにネット上にそういうサンプルはないから難航中。共通フレームに則ったRFPってのは政府関係のページで見つかるんだけどな・・・
IPAが「共通フレーム2007準拠 システム設計書(Webアプリ編)」みたいなのを作ってくれりゃいいのにと正直思う。

共通フレーム2007

共通フレーム2007―経営者、業務部門が参画するシステム開発および取引のために (SEC BOOKS)

共通フレーム2007―経営者、業務部門が参画するシステム開発および取引のために (SEC BOOKS)

ソフトウェアライフサイクルプロセスの本。
最近はこの共通フレームを社内標準に適用する仕事をしてます。

この本を見ていると、現場でどんだけ「アジャイルが良い」と叫んでも、
契約をしっかり行わないとむーりーなことがよくわかります。

アジャイルな契約の仕方を熟知しているマネージャーと一度仕事がしてみたいですね。

気になる本

コンピュータビジョン

コンピュータビジョン

コンピューターが画像をどのように解釈しているかすごく気になりますね。

物体認識には4通りの方法があるらしいですよ。一つも知らないけど。

ものすごく高い本ですが、ちょっとほしい。。。

Java5の並行処理ライブラリ

queueの仕組みを組み込む必要があったのでせっかくだからJava5から利用できるようになったライブラリを使ってみた。

呼び出し元のスレッドに処理結果を返せるってところがいいですね。

import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

/**
 * 値を返すことのできる非同期処理
 * Futureを利用することにより処理結果を呼び出し元のスレッドに渡すことができる
 * CompletionServiceを利用することによりスレッドが終了した順に値を取り出すことができる
 *
 */
class Main4 {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		Util.println("main");
		ExecutorService ex = Executors.newCachedThreadPool();
		CompletionService cs = new ExecutorCompletionService(ex);
		for (int i = 0; i < 4; i++) {
			cs.submit(new RandomWaitCall());
			Util.println("submit");
		}
		ex.shutdown();
		for (int i = 0; i < 4; i++) {
			Future f = cs.take();
			int r = f.get();
			Util.println("" + r);
		}
	}
}