技術ブログ | 株式会社アイプランニング IPlanning corporation

アイプランニング社員が調査したこと、学んでいることが具体的にどんなものなのかを披露します。 Here is what the IPlanning corp employees surveyed and what they learned.

Intel NUC (NUC6i5SYH) を導入しました

会社で Intel NUC (NUC6i5SYH) を購入してもらいました。 組み立てとWindows10のインストール、ドライバインストールやBIOSアップデートについて紹介します。

使っていたデスクトップ用のWindowsPCが不調で、PCを新調する必要があったので思い切ってIntel NUCを買ってもらいました。

f:id:iplcojp:20171218153354j:plain

NUC本体にはメモリとストレージが入っていないため別途購入となります。

メモリは32GB、SSDは512GBのものを購入しました。

Mac Miniと比較するとその小ささが際立ちます。

f:id:iplcojp:20171218153409p:plain

デスクの上にこの2台を置いてもすっきりしてて良い感じです。

控えめに言って最高なので、今後もっと会社に導入されていって欲しい感あります。

この後は、NUCの組み立て方法とWindows10のインストール、ドライバインストールなどの初期設定について書いていきます。

NUCを購入した方や購入検討の方への参考になればと思います。

組み立て方法

組み立てはいたって簡単で、裏蓋を空けてメモリとSSDを挿すだけです。

まず裏蓋を空けてメモリを取り付けます。

f:id:iplcojp:20171218153427j:plain

裏蓋と本体がつながっているので強く引っ張らないように気をつけたほうが良さそうでした。

次にSSDです。

f:id:iplcojp:20171218153441j:plain

M.2が凄く小さくてびっくりしました!512GBの容量があってこのサイズすごいですね。

f:id:iplcojp:20171218153714j:plain

SSDはネジで止める必要がありますので、購入したM.2のタイプを確認して説明書通りにネジで止めます。

後は蓋を閉じれば完了です。

簡単に取付可能なのでPCの中身をいじった経験のない方でも簡単にできると思います。

まだOSをインストールしていませんが、BIOSからメモリとSSDがちゃんと取り付けられて認識されているか確認します。

f:id:iplcojp:20171218153729j:plain

f:id:iplcojp:20171218153740j:plain

Intel Visual BIOS かっこいいし見やすいので良い感じです。

Windows10のインストール

USBからインストールできるタイプのWindows10を使用してインストールします。

f:id:iplcojp:20171218153758j:plain

中を開けるとUSBとプロダクトコードが入っています。

f:id:iplcojp:20171218153811j:plain

USBをさす方向で少し迷いましたが、保護フィルムを剥がして以下のように差し込みます。

f:id:iplcojp:20171218153822j:plain

SSDの中身も空なのでNUCを起動するとUSBからWindows10のインストーラが起動します。

f:id:iplcojp:20171218153835j:plain

64bit版を選択しました。

f:id:iplcojp:20171218153846j:plain

f:id:iplcojp:20171218153856j:plain

インストールの種類はカスタムを選択して表示されているドライブを選択しました。

パーティションを分けたい場合はここでカスタマイズします。

あとはメニューに従ってインストールをしていきます。

結構時間がかかることを想定していたのですが、10分程度でインストールが終わりました。

f:id:iplcojp:20171218153909j:plain

Windows10を初めて起動すると初期設定を行う画面がでてきます。

この設定は簡単設定でも行えますが、項目を確認の上カスタマイズして設定したほうが良さそうな内容でしたのでそちらをおすすめします。

ドライバのインストール

NUCにWindows10をインストールしたものの、LANケーブルをさしていてもネットワークに接続されません。

ドライバをインストールする必要があります。ドライバは下記のリンクからダウンロード可能です。

Drivers & Software

ドライバインストールにあたって、NUCの各部分の正式名称が気になりましたので以下を参考にしました。

Intel® NUC Kits: NUC6i5SYH and NUC6i5SYK Product Brief

以下に貼ってあるドライバのリンクは逐次更新されるので実際にインストールするときは最新のドライバをインストールすることをおすすめします。

なのでリンクは参考程度に。

ネットワークドライバのインストール

ネットワークに繋がっていないと困りますのではじめにネットワークドライバをインストールします。

NUCはまだインターネットにつながっていないので、インターネットがつながっている別のPCでドライバをインストールします。

Download Intel® Gigabit Network Connection Driver for Intel® NUC Kits NUC6i[x]SY and NUC6i7KYK

Windows10のドライバをダウンロードしてUSBに入れます。

ドライバを入れたUSBをNUCに接続して、exeを実行してネットワークドライバをインストールします。

BIOSのアップデート

最新版のBIOSもありましたのでアップデートします。

Download BIOS Update [SYSKLi35.86A]

ダウンロードできる形式がいくつかありますが、exe形式のものをダウンロードします。

ネットワークドライバをインストールしたのでNUCから直接ダウンロードしてexeを実行してアップデートを行いました。

グラフィックドライバのインストール

BIOSをアップデートしたところ、画面がちらつくようになってしまったのでグラフィックドライバをインストールしました。

Download Intel® HD Graphics Driver for Windows 7, 8.1 and Windows® 10 for Intel® NUC Kits NUC6i[x]SY

グラフィックドライバはzip形式で配布されており、解凍して中に入っているSetup.exeを実行してインストールします。

インストール途中でオプションの選択があります。

f:id:iplcojp:20171218153928j:plain

アドバンスド・ネットワーク・サービスはWindows10では正しく動作しないとアラートが出るのでチェックを外しました。

SNMPエージェントは使う予定がないのでチェックを入れていません。

最後に

NUCの日本語情報があまりなく、ドライバのインストールなどどうやってやるのか手探りで行いましたが無事に終わって良かったです。

ドライバは他にもありますので必要になれば適宜インストールをすれば良さそうです。

せっかくメモリ32GBと潤沢なので仮想マシンのホストとして使っていく予定です。

NUCはコンパクトでデスクトップ用としてはとても良いと思いますので会社でもっと増えると面白いかなと思います。

これだけ覚えるGit

これからのソース管理のスタンダード「Git」についてご紹介します。非常に多機能なツールですので、必要最低限のコマンドのみご説明します。

Gitを始めよう

ソースバージョン管理ツールには、「Subversion」「CVS」「VisualSourceSafe」など数多くあり、プロジェクトの特徴に合わせて使い分けられてきました。

近年、急速にGitが使われるようになり、今やソース管理のデファクトスタンダートとなりつつあります。今後新規案件でSubversionCVSが使われることはなくなっていくと考えられます。

ただし、Gitは取っつきにくい点が多いのが難点です。Gitの考え方及び、コマンドラインでの使い方を習得しなければなりません。弊社でも多くのプロジェクトで採用されていますが、引き継ぎ時にGitがネックとなることがあります。

Subversionとの比較

ここでは、以前のデファクトである「Subversion」と「Git」を比較し、特徴を説明します。

Subversionの場合

チーム開発でSubversionを使うとき、中央リポジトリを用意するのが一般的な構成となります。コミットは中央リポジトリと接続(オンライン)されていないと行なうことが出来ません。

中央リポジトリへのコミットは他のメンバーに影響を及ぼすので、内容を十分に吟味してからコミットを行なう必要があります。作業中にとりあえずコミットするような使い方には向かず、手元で別ディレクトリにファイルを退避するなどの対応をすることもあります。

f:id:iplcojp:20171218154507p:plain

Gitの場合

Gitでは、分散型という仕組みを使っています。下記の図のように、各人がリポジトリのコピーを所有し、リポジトリ同士で変更点を送り合って同期するという仕組みです。

このことにより、Subversionのように、いきなり中央リポジトリにコミットするようなことがなくなります。作業中のコミットを手元のリポジトリで行い、その後に複数のコミットを一つにまとめることで、コミットログを綺麗に保つことが出来ます。

f:id:iplcojp:20171218154523p:plain

Gitを始める前に

Windowsの場合

Gitクライアントは、SourceTreeを使うのが現状最も無難と思われます。コマンドラインから使えるGit for Windowsなどもありますが、OS標準でないシェルを使うことになるため、Gitに慣れてからの方がいいでしょう。

Linux / OSXの場合

GUIのGitクライアントは利用せず、ターミナルから直にコマンドを実行することをおすすめします。これが面倒に思われる場合は、お使いのエディタにGitプラグインを導入してください。

  • CentOSでは、yum install gitを実行します。
  • Ubuntuでは、apt-get install gitを実行します。

OSXでは、homebrew経由でインストールすると良いでしょう。詳しくは:MacにHomebrewでgitをインストールする | e2esound.com業務日誌

GitHubに登録しよう

まず、GitHubにアカウントを作ることをおすすめします。GitHubはGitの最良の相方とも言うべきWebサービスです。以下のような恩恵を無料で受けることが出来ます。

  • 無料でソースコードを保管することができます(ただし公開状態になることに注意)
  • リポジトリごとにイシュートラッカー(バグやTODOなどをリスト管理することが出来る)を利用可能
  • Wikiを利用可能
  • プルリクエスト(コミットの取り込み依頼)を発行することが出来る

Gitリポジトリを新規作成する

リポジトリを作成するには、下記の2つの方法があります。

  • フォルダを作成して、その中でgit initを実行する。.gitというフォルダが作成されます。
  • GitHub上でリポジトリを新規作成してからgit cloneを行なう。詳しくは、リポジトリ作成後に表示される操作手順に従って下さい。

リポジトリを用意したら、早速コミットを行ってみましょう。

コミットの基本的な流れ

コミットの基本的な流れは、下図の通りです。

f:id:iplcojp:20171218154542p:plain

  1. まず、ファイルの編集を行います。
  2. コミットしたいファイルを git add ファイル名 コマンドで登録します。この操作を「ステージング」と呼びます。
  3. (オプション)git status コマンドを実行し、どのファイルがコミットされるかを確認します。
  4. (オプション)git diff コマンドを実行し、ファイルの差分を確認します。
  5. コミットを行います。コマンドは git commit -m "コミットメッセージ" です。

このように、コミットを積み重ねることで、変更点のログが出来上がっていきます。これをコミットログと呼びます。コミットログは、git log で確認することが出来ます。また、tigSourceTreeなどのツールを利用すると、よりグラフィカルにコミットログを閲覧することが出来ます。

2番目の手順「ステージング」は、やや独特な概念ですので、下記で説明します。

ステージングとは

Gitでは、コミットの前にステージングという段階があります。ステージングでは、次のコミットに何を含めるかを検討します。

このステージングによって、Gitでは複数の変更点が一つのコミット内に混じることを防いでいます。 git add . コマンドで全ファイルをコミットに含めることも出来ますが、意図しないファイルをコミットに含めないよう、実行後に git status で実行内容を確認してください。

実際のコミット例

では、コミットの流れを実例で見てみましょう。

f:id:iplcojp:20171218154556p:plain

まず、AAA.txtBBB.txtという2ファイルがある状況を例にします。

編集中のフォルダの内容は、「ワークツリー」と呼ばれます。実ファイルのことと考えて問題ありません。

f:id:iplcojp:20171218154611p:plain

ファイルをステージすると、「インデックス」という場所にファイルが登録されます。

登録にはgit addコマンドを使います。例では、すべてのファイルをaddするためにgit add .を実行しました。

f:id:iplcojp:20171218154626p:plain

ファイルのコミットを実行します。コミットを行なうと、インデックスに登録されていたファイルの変更点がリポジトリに記録されます。

コミット時には必ず「コミットメッセージ」が必要です。後で誰かが見た時に、何の変更が行われたかわかりやすいよう、具体的に書いて下さい。

f:id:iplcojp:20171218154636p:plain

さて、今度はファイルを変更して、もう一つコミットを作成してみましょう。

まず、AAA.txtを編集します。ここでgit statusコマンドを実行すると、AAA.txtはまだステージされていないため、これだけではまだコミットできません。

f:id:iplcojp:20171218154650p:plain

次に、git add AAA.txtで変更点をステージしましょう。

ステージにより、インデックスにAAA.txtが登録され、コミット可能になりました。git statusを実行し、ステージされていることを確認してみましょう。

f:id:iplcojp:20171218154704p:plain

コミットを行います。

このようにして、コミットログが積み重なっていきます。

リモートリポジトリとの同期

次に、他のユーザと変更点を共有するにはどうしたらいいか、ご説明します。

ここでは、GitHub(またはBitBucketやGitLab)を使っている前提として説明を行います。

まず、GitHub上に新規リポジトリを作成し、ローカルにそのリポジトリを予めcloneしておくとスムーズです。

Push

Pushは下記の手順で行います。

f:id:iplcojp:20171218154721p:plain

  1. まず、コミットログを重ねます。コミットは一つ以上必要です。
  2. 次に、他のメンバーがコミットを行っていないかチェックしましょう。git fetch origin masterでリモートリポジトリの変更を取得します。
  3. git merge origin/master で取得してきた変更点のマージを行います。ここで変更点が衝突し「コンフリクト」が発生することがあります。コンフリクトの解消については、この記事が参考になります:Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita
  4. ローカルの変更をgit push origin masterコマンドでリモートに送信します。

ここで出てくるoriginとは、リモートリポジトリの名前です。普通はoriginという名前で登録しますが、別の名前で複数のリモートリポジトリを登録することもできます。

masterとは、デフォルトで選択されているブランチ名です。今回は解説しませんが、「プルリクエスト駆動開発」などを行う場合は、別のブランチを作る必要があります。

補足

git push / git fetch ではなく、git push / git pullの対応で紹介している入門記事もありますが、慣れるまではgit pullを使わない方が、理解しやすいと思います。理由についてはこちらの記事が詳しいです:Git pullを使うべきでない3つの理由 · DQNEO起業日記

git push origin masterというコマンドを紹介しましたが、GitHub等ではmaster以外の「ブランチ」を作成して、プルリクエストで変更を取り込む手順が推奨されるようになってきています。本稿では紹介しませんでしたが、masterに直接コミットするのは危険という考えが一般的になってきています。gitに慣れたら、ブランチの使い方についても学習してみてください。

おわりに

Gitにはとっつきにくい点もありますが、現行ではベストのソリューションと考えられます。Gitがオープンソース文化の勢いの源となっていることは間違いありません。

単体で使うだけだと利点を感じにくいかもしれませんが、GitHubやGitLabと合わさると非常に開発効率向上に貢献します。プログラマーのモチベーションも高く保つことが出来るでしょう。ここでは紹介しませんでしたが、プルリクエストやIssue Trackerもぜひ使ってみてください。