tech.guitarrapc.cóm

Technical updates

Github for Unity を導入してみる

Unity はいくつかの理由で Github.com を使うのが手間になることがあります。その中で最も障害となりえるのがlarge binary assets、つまり大きなサイズのバイナリファイルの扱いです。

今回は、先日発表された Github for Unity を利用することで、このフローがどう改善するのか見てみましょう。

github.com

目次

なぜ Github.com で Unity を管理するのが手間なのか

さて、ゲーム開発は多くのスタッフが協力して成り立ちます。コードやアセットの管理にGithub のような 分散バージョン管理システム(DVCS) を用いるのは、エンジニアから見るとごく自然だと思います。

これはUnity のようなゲームエンジンでコンテンツを作るときも同じです。しかし Unity をはじめとしてゲーム開発ではアセットが大量に必要になります。特に Texture *1 ファイルの数とサイズが大きくなりやすいことで苦しいことも多いのではないでしょうか。

ここで立ちはだかるのがGithub.com のDisk Quota と称される単一ファイル、リポジトリへの制限です。*2

About large files on GitHub - GitHub Docs

2017/7/14時点で次の推奨 (事実上の制限) になっています。*3

  1. We recommend repositories be kept under 1GB each. This limit is easy to stay within if large files are kept out of the repository. If your repository exceeds 1GB, you might receive a polite email from GitHub Support requesting that you reduce the size of the repository to bring it back down. (リポジトリサイズ : 1GB未満維持を推奨。超えた場合サポートからのサイズ縮小リクエストが来ます。)
  2. we place a strict limit of files exceeding 100 MB in size (単一ファイル当り 100MBの制約)

※ 他にも Webからのファイル追加では、25MBまでのファイルサイズ制限があったりしますが主眼ではないので割愛します。

このGithub.com サイズ制約を意識していないと、大量の画像ファイルやメッシュデータなどをバージョン管理しようとしたときに容易に制限に引っかかってしまいます。私は当時、よくpush しようとして File limit でpushが失敗してしょんぼりしましたが皆さんはどうでしょうか?

大容量に成りうるファイルのバージョン管理には Git LFS を利用する

Github は、そういった大容量のファイルを扱う際は Git LFS を利用することを推奨しています。

Managing large files - GitHub Docs

git-lfs.github.com

LFS 対象のファイルは、Github 上ではポインタファイルとして扱われるのでファイルの大きさによらず 1KB未満 で済みます。やったね。

version https://git-lfs.github.com/spec/v1
oid sha256:4665a5ea423c2713d436b5ee50593a9640e0018c1550b5a0002f74190d6caea8
size 36

おそらく初めに悩むのが、git LFS が利用している git の smudge filterclean filter 機能だった方は私だけではないのではないでしょうか?実際、このfilter でトラブルが起こったります。*4

Git LFS に関しては素晴らしいQiitaエントリがあるので参考にどうぞ。smudge/clean filterについてもサクッと理解できます。

qiita.com

ただ git と git lfs は別のコマンドなので少し面倒な部分があります。またコマンドはなく何かしらのGit を扱えるツールを用いる場合、別途 Git LFS をサポートしている必要があります。

Github for Unity を用いないこれまでの流れ

さて、Github + git lfs の例を見てみましょう。

今回はサバイバルシューターのチュートリアルでやってみます。

unity3d.com

ディレクトリを見ると Textures に pngや tif があるのでこれを git lfs 対象としてみます。

まず、.gitattributes はこのようにしてみました。

gist.github.com

私はUnityの場合、.gitignore をこのようにしています。

gist.github.com

早速 git add します。Source Tree で staging にあげようとすると2MBを超えるファイルは警告がでますね。もちろんこの *.asset も git lfs の対象拡張子にしています。

さて、git add でstaging エリアに上がったファイルを見ると smudge フィルタを通ってポインタファイル化されています。例えば、ArchesDiffuse.png という画像(バイナリ)ファイルがテキストで表現されています。

SourceTree で push 状態を見ると Git LFS に対象ファイルがどんどんpushされているのが見えます。これはもちろんコマンドでも同様にわかります。

無事に普段と同じフローで lfs 対象ファイルもpush されました。

では Github.com 上のファイルを見てみます。

github.com

先ほどの ArchesDiffuse.png は、中身がポインタファイルにも関わらず、Github.com 上ではちゃんと png としてLFS先の実体画像が表示されています。LFS対象でない普通の画像ファイルと同じように扱えているのは素晴らしいですね。

GithubForUnitySample/ArchesDiffuse.png at master · guitarrapc/GithubForUnitySample · GitHub

通常のファイルと LFS 管理ファイルの違いは、Stored with Git LFS という表記があることです。

では実際の中身を見るため、Rawファイルを見てみましょう。

https://raw.githubusercontent.com/guitarrapc/GithubForUnitySample/master/Assets/Textures/ArchesDiffuse.png

先ほど同様ポインタファイルになっていることが分かります。

git lfs の場合の git lfs clone/git lfs pullはここでは主眼ではないので、ぜひ試してみてください。

Github for Unity を用いてみる

さて通常の git/git lfs を用いた Github での Unity ファイルのバージョン管理はわかりました。これが Github for Unity でどう変わるか見てみましょう。

ダウンロード

導入するためには、.unitypackage を使います。つまり、プロジェクトごとに利用を選択できます。

GitHub for Unity | Bring Git and GitHub into Unity

パッケージは、リリースタグから取得できます。今のところは Alpha なので動作が不安定なことは理解した上で使うといいでしょう。*5

Releases · github-for-unity/Unity · GitHub

今回は、 v0.15-alpha を用います。

事前準備とかは、README を見るといいです。ブログ見る必要なくなります。

Unity/README.md at master · github-for-unity/Unity · GitHub

なお、現在 サポートしている Unity は 5.4~5.6。LFS は 2.xです。

  • Unity 5.4-5.6 (Unity Personal も可)
    • We've only tested the extension so far on Unity 5.4 to 5.6. There's currently an blocker issue opened for 5.3 support, so we know it doesn't run there. There are some issues for 2017.x, so it may or may not run well on that version. Personal edition is fine
  • Git and Git LFS 2.x

Unity へのパッケージ導入

ツールバーから行きます。 Assets > Import Package > Custom Package.... からダウンロードしたgithub-for-unity-0.15.0.0-alpha.unitypackage を導入します。

いい感じに導入されました。

ツールバーに Github メニューが増えました。

Github ログイン

ツールバーのGithub > Authenticate からGithub にログインできます。このアカウントは、Github Web にログインするときの UserName/Password を用います。

注意点として、内部実装として、Octokit.Net を用いて Github API v3 を使っているため、2FA を使っていても Password です。通常2段階認証の場合、Password の代わりに Personal Access Token というケースが多いと思いますが違うので注意してください。

2段階認証を使っている場合は、2FA PIN コードが求められます。

上手く認証できましたか?

Github ウィンドウ

ツールバーから Github > Show Window でGithub のタブが開きます。

さて、5つのタブがあります。

  • Changes
  • History
  • Branches
  • Settings
  • Account

History タブ

ここにはコミットグラフが表示されます。

先ほどの initial commit というコミットログがグラフに表示されています。

またここから、Getch / Pull / Push 操作が可能です。

コミットログを選択すると対象のファイルがツリー表示されます。

残念なことにツリービューのみの提供に加えて、ここのウィンドウサイズは変更できないため非常に見にくいです。

なお現在は日本語が文字化けます。PRがきているようですが....サイドエフェクトがあるようなのでいつになるか待っている状況です。

github.com

github.com

github.com

Branches タブ

local と remote のブランチ状況が表示されます。

もちろんここでリモートブランチに切り替えたり、新規でブランチを切ることもできます。

ブランチをダブルクリックして checkout できます。

Branches の上に現在のブランチが表示されています。ブランチ一覧でも微妙に bold になっています。

Settings タブ

Git 設定状態や Lockされたファイル一覧が見えます。

Locked ファイルは、噂の他の人との共同作業用の機能です。わくわく機能ですね。

You can see who has locked a file and release file locks after you've pushed your work. https://github.com/github-for-unity/Unity#settings-tab

さて、Path to Git を見るとここで使っている Git が Portabl Git であることが分かります。

C:\Users\<UserName>\AppData\Local\GitHubUnity\PortableGit_f02737a78695063deace08e96d5042710d3e32db\cmd\git.exe

Account タブ

Go to Profie で、Github.com 上のプロファイルページに移動します。

Changes タブ

ここに、git 上の変更が表示されます。ファイルの変更は色で表現されています。

  • 追加 : 緑
  • 削除 : 赤
  • 変更 : 黒
  • ファイルの移動 : 削除と追加として表示されます

残念ながらこの画面で可能なのは、Commit のみです。

よくあるあるな、Discard/Remove/Reset/Ignore などの操作をしようにも右クリックが出ないため git 操作の完結をするには機能不足です。

残念ながら File Diff もサポートしていませんが、Issue に上がって修正PRがマージ済みです。

t.co

github.com

また Staging Area もありませんが、これはIssueが上がっています。

github.com

Commit 操作

Changes タブからGithub for Unity を取り込んだコミットをしてみます。チェックをつけて Commit メッセージを書きます。

これで Commit してみましょう。

上手くいきました。

これを push します。ここが少し時間かかります。が、問題なく リモートブランチを作ってプッシュされるのでちょっと待ってみてください。

push したら、Github.com 上で LFS 対象ファイルがどうなったか見てみましょう。うまく扱えているでしょうか?

https://github.com/guitarrapc/GithubForUnitySample/blob/master/Assets/Editor/GitHub/GitHub.Api.dll

問題なく push されたようです。

マージしてみましょう。残念ながら Github for Unity から PRを直接作成できないので Github.com 上からPRを作ります。

PR をマージします。

Github for Unity で Branches タブから master を checkout します。で、当然 Github for Unity が入る前になるのでタブ消えます。(あっ)

ちなみにSource Tree 上ではこのように表示されるのでorigin/master を Pullしておきます。

さて History を見ると、微妙にツリーっぽい表示になっています。

SourceTree などは見やすいツリー表示なので、ちょっとこれだけで把握は難しいですね。

これで一通りの動きが見えました。

コントリビュート

さて、Github for Unity は Github 上で公開されています。Issue を積極的に受け入れる姿勢を見せており、Twitter でつぶやくと補足されます。うれしいです。

ということで、改善点があれば Issue で積極的に共有するといいでしょう。コードはC# で書かれており、PR も積極的に受け付けているので、ぜひみなさんもどうでしょうか。

私からは4つIssue をあげてあります。

  • Index.lock が消えないケースがあること

github.com

  • Tree View だけでなく、Flat List View を用意することの提案

github.com

  • Changes タブでの Remove/Discard/Reset/Ignore などの git のフル操作の提供提案

github.com

  • Github for Unity から直接PRをする提案

github.com

まとめ

Github for Unity、まだUnity のみですべての git 操作が完結するというには早いです。しかしアルファのわりに動作は比較的安定しており、ある程度の層がここからできます。

ぜひ使ってみるといいと思います。

参考

Github for Unity の基本的な使い方は他の方もまとめておいでです。

http://stepup-next.halfmoon.jp/blog/2017/06/30/unity-for-github/stepup-next.halfmoon.jp

*1:tga や png などの画像ファイル

*2:Github Enterprise のようなホスティングは別とします。またほかのgit を使ったサービスも記事の対象外です。

*3:このサイズ制限がなければ、大規模なUnity開発でも懸念をいただくことなくGithub.com 利用できるですが仕方ありません。

*4:ちなみにlfsの対象指定は smudge/clean filter の指定 = .gitattributes で行います。 https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes

*5:αってそういう意味だしそこを割り切ると楽しく使えます。

最近のPC 構成

私にとってお仕事の道具であり過ごす時間が最も大きいものといえばPCです。

市場に魅力的なスペックのパーツが出てきたときに、値段が落ち着いて買えそう、変える意欲と自分の中の需要もあるという条件でじんわり決めて買っています。

今回、自分メモで今の構成を書いておきます。

メモ : 2017/7/3 時点

目次

構成

PC、Monitor、Keyboard/Mouse、Network、Otherで分けてみます。

特にマウスやモニターはPC本体よりも入れ替え頻度が高く、特にマウスはちょくちょく変えている気がします。

PC

総じて妥協です。必要十分だけど、この構成別に数年前から見ても良くなっただけで革新ないんですよね。PCまだこの形式なのかしら?進化を感じなくて面白くないですね。

  • ストレージやメモリは、次に変えるときは、3D XPointであってほしいところです
  • CPU は Ryzen で次からのモデルに期待です
  • GPU はまだまだダメですねぇ。おっそ
  • 数年前から完全にWifi環境です。ケーブルをいかに減らすかっていいですよ。7260HMWDTX1 はそんなにオススメできないけど、デスクトップをWifiにするにはいい感じです。USBのWifi子機をいくつか試してきたんですが、やはりボード差し込みのほうがおススメです。これはアンテナ自由に配置できるし。*1
Parts モデル 入れ替え日 備考 満足度
PC Case CoolerMaster Silencio 352 2016/6 小さいは正義 ★★★★☆
MotherBoard ASUS H170M-PLUS (Intel H170) 2016/6 こんなのでこの構成ならok ★★★★☆
CPU Intel Core i7-6700 2016/6 いうほど早くない ★★★☆☆
CPU Fan Noctua NH-D9L 2016/6 空冷でいいです ★★★★☆
Power OWLTECH RAIDER RA-650S 2016/6 650W 80PLUS Silver ★★★★☆
RAM DDR4 SDRAM PC-17000 32GB 2016/6 16GB*2
そろそろ64GBかな
★★★★☆
Storage1 SM951 MZVPV256HDGL 2016/6 NVMe
速度〇、512GBほしい
★★★★☆
Storage2 Crucial MX200 2.5 500GB 2015/5 SATA 6Gbps ★★★★★
GPU GeForce GTX1080 8GB Founders 2016/6 Radeon5年使ってましたがやっぱり嫌い ★★★★☆
Wifi Intel 7260HMWDTX1 2016/6 802.11ac/a/b/n + Bluetooth
ドライバが微妙に不安定*2
★★★★☆

Monitor

先日ようやく4K入れました。今後1-2年は変わらないと思います。モニタは Display Port に統一するといろんな問題から結構解放されるのでオススメです。*3Multi Stream Transport 使えるし。HDMI使う理由がないならDP最高です。

  • モニターアームがやっぱり最高なので4Kのスタンドはちょっと考えたいです。まさか4K が 13kgのモニタになるとは
  • Dell U2715HはUSBハブ機能が弱いの以外はかなりバランス良くおススメです
  • Microsoft WirelessAdapter は品質に関しては最悪に近いのでどうしても出なければ推奨しません
Parts モデル 入れ替え日 備考 満足度
Display Monitor1 Acer ET430Kwmiippx 2017/7 4K 43"
ハーフグレア
USBハブなし
★★★★☆
Display Monitor2 Dell U2715H 2016/6 2550x1440 27"
アンチグレア
★★★★★
Monitor Arm エルゴトロン LX 45-245-026 2013/6 耐荷重9kg ★★★★★
Wireless Display Adapter Microsoft WirelessAdapter V2 P3Q-00009 2016/3 ドライバが不安定
使えるから許容
更新ないの最低
★☆☆☆☆

Keyboard/Mouse

マウスぐらいしか買い替えません。しばらく変えない気がします。

  • Realforce ほんと打鍵が楽で好きです。数か月前からスタンド立てなくなって使いやすさ増しました。キーボードだけ有線なのですがモニタのUSBハブにさしています。無線にしたい気もします
  • 小さいマウスが好きなので、5年前からLogicool の小さいものを家で好んで使っていました。LOGICOOL エニウェアマウス M905r を 4年(一度壊れて同じものを購入)、その後 Logicool MXAnywhere2™ MX1500 でしたが、ミドルボタンがスクロールボタンじゃないのが唯一好きになれないポイントでした。これ、Unity でミドルボタン操作で動かす癖のある私にはつらいものがあります。更に3D触っているとなると会社で使っている MX Masterの高速スクロールの快適さがやばいです。我慢の限界で先日調べていると、ちょうど最新版の MX Master2S がちょうど発売したので勢いで買い換えました。幸せです。最高。無線マウス最高です。電池より充電型がおすすめ
  • リストレストは5年つかってたのが壊れて買い換えました
Parts モデル 入れ替え日 備考 満足度
Keyboard Realforce91UDK-G 2013/4 テンキーレス
日本語配列カナなし
静電容量無接点方式
ALL45g荷重
★★★★★
Mouse Logicool MX2100sGR MX Master 2S 2017/6 Unifying/Bluetooth
充電式
高速スクロールがすべて
★★★★★
リストレスト サンワサプライ MPD-MU1NBK 2016/7 安定 ★★★★☆

Network

そろそろプロバイダを Nuro にしたい気持ちです。

  • Yamaha のファンなのですが、そろそろ飽きましたね
  • Wifiは個人ならAterm が安定です。他の何か言いのないかなぁ
Parts モデル 入れ替え日 備考 満足度
Routeer Yamaha RTX810 2013/9 IPSecの検証に便利。
AWS/Azureとつながない理由がない
★★★★★
Wifi NEC AtermWG1400HP 2014/10 いうほど早くないけど安定 ★★★★☆

Other

UPS ないときに雷で何度壊したか.... UPS本当におススメです。

  • UPS はずっと OMRONを使っています。APCが仕事で痛い目にあったことが多いためなのです。処分も楽なので OMRONおススメです。BY80Sはずっと安定してていいUPSです
  • VIVEは開発用途で持っています。VRやってる以上は家にないとつらいです
Parts モデル 入れ替え日 備考 満足度
UPS OMRON BY80S 2012/12 そろそろ交換時期 ★★★★★
HTC VIVE 初期モデル 2016/4 開発用。TiltBrushが好き。 ★★☆☆☆
サーバーPC いくつか 2008~ 型落ちしたら気分でOS入れ替え
捨ててもいいかな
★★☆☆☆

まとめ

一通り一巡していますが、現状だと CPU と GPU が遅いなぁと思うぐらいで他は快適です。

自宅は好き勝手にできるので何かを試すにはちょうどいいです。思いついたら試して壊して構築してをよくやってます。

*1:モニタ裏に私は配置しています。

*2:ほぼ安定なのでok

*3:スリープ復帰時にDirect Xを使用しているアプリが落ちる問題は別に私は影響ない

Acer ET430Kwmiippx で 4K 43" 環境にした

4K はここ一年ぐらいどうしたものか考えてきました。

自宅では、2560x1440(縦) と 1920x1080(横) の2画面構成でいました。しかし、Unity をはじめとして多くのウィンドウを開く必要に年々迫られるようになり ディスプレイで多くのウィンドウを適切な大きさで表示しないと効率が悪い状況になりました。

今回 4K ディスプレイをいくつか検討して Acer ET430Kwmiippx を設置してみたのでメモを残します。

目次

4K の必要性

いらなければ買わないのです。4K である必然性が出てきたのはいくつか自分に納得のいく理由をつけられたからです。*1

ディスプレイは作業空間なので、仮想的に広げるのもいいのですが、単純に今表示している画面が大きいかどうかはポイントだと思います。

同時に開いていおくアプリケーション/ウィンドウの数が増えた

私が主に開くアプリケーションは仕事も個人も大体似ています。これらをウィンドウに大きめに表示することを好んでいます。 - Visual Studio / LinqPad / Unity / PowerShell / VSCode / Chrome / Vivaldi / Slack / SourceTree - ブラウザならタブという手があるのですが、難しいものですね - あとウィンドウをそのまま比較を結構よくやるので、タブやバーチャルデスクトップでは難しいのです

仮想デスクトップは余り活用しておらず、基本的にディスプレイの中にアプリを開きっぱなしにする傾向にあります。

  • 仮想デスクトップにはまっていた時期もあったのですが、開発/普段などの用途で分けるようにしても用途と画面を一致させて切り替える使い方を自分になじませられなかったため上手く扱えていません
  • ノートPC なら便利なのですが、複数ディスプレイ環境での仮想デスクトップの活用がなかなか見いだせていないです

1920x1080 のディスプレイへの不満

  • 1920x1080 画面表示が小さい
  • 2560x1440 と 1920x1080 の構成にしてから 解像度の差が気になるようになった
  • 1920x1080 のディスプレイが7年使っていて2560x1440との色見ギャップが気になるようになった

※ 1920x1080に感じる不満はディスプレイサイズとの不一致に端を発しているので、どのみち 4K にしても根本的な問題が変わらないのですが、まぁ。

だいたいそろった感

ハードウェアにいつも少し様子見する理由です。そろそろ手を出してもいいかなぁと。

  • 価格が5-6万でモデルの選択が出てきたのと、値段がだいたい収まったこと
  • いくつかの知見の記事もそろってきた

4K の選定

4K ディスプレイいくつかあります。周りにも使っている人がいるので意見を伺ってみて選定しました。結果購入したのはAcer ET430Kwmiippx です。

amazon.co.jp - Acer 4K 43インチ ET430Kwmiippx

ディスプレイサイズと文字の大きさ

最も最重視したのは、Windows 上で Text Size 100% にしたときに 文字が読めるかどうかです。

文字が快適に読めないなら4Kディスプレイにした意味がありません。仮に size of text を 120% などにすると画面領域が狭まるため、私にとっては4Kにする意味がかなりなくなります。

www.eizo.co.jp

100%で文字が小さくてもコードなどはIDEなどでテキストサイズを大きくすればいいのですが、システムフォントって想像以上に目に入っているので小さいと読むのに疲れるのですね。

現在の 24" (1920x1080)、 27" (2550x1440) の文字サイズは数年付き合っていて疲れない大きさなので、このバランスを維持することを最優先にします。

実際に4Kを利用している人に話を聞き、自分でも試した限りだと、以下のように感じました。

  • 4K 27" で Text Size 100% は、文字が非常に小さく読めるが読むのがストレス
  • 4K 32" で Text Size 100% は、文字が明らかに小さく2550x1440 がそばにある状況では常に比較してしまい疲れてくる

画面解像度と表示される文字の大きさを優先すると 40" 以上のモデルに限られます。

本当はデスクに置くディスプレイサイズは 27" が最適だと思っているのですが、こればかりは仕方ないです。

価格

VRやAR開発をしているためか、4K に対して過度な期待を抱けないという判断でいます。*2よって、予算は 6万前後まで。*3

40" で6万前後ということで候補となったのが以下のモデルでした。

www.philips.co.jp

www.acer.com

www.iodata.jp

他のスペックで気になるところ

スペック 要件
アスペクト比 16:9 *4
視野角 IPS であればok
接続方式 DP v1.2 *5
光沢 グレア or ハーフグレア *6
フレーム ベゼルはなるべく薄い方がいいです。フレームレスであるひつようはありません
USBハブ あればいいですが無くても 27" にあるので問題なし
高さ調節 なくてもok。必要になればアームに変更

検討

決定打は実機を見て気分で。43" 大きいなぁと思いつつ、PhilipsとAcer で Exploerer 上の文字表示をみて決めました。

モデル メモ
Philips BDM4350UC/11 サポートが5年と長いのですがサポートをほぼ使わないのでプラス材料にならず。重さ9.72kg と軽いのが嬉しいです。USBハブもついていて嬉しいです。ただ、焼き付けの声が多く不安が強かった程度です。
Acer ET430Kwmiippx DP の出力があるので MST に対応しています。USBハブがないのが苦しいところ。Philipsもそうですが、背面と足の突き出しが少し大きいのも嫌かな?実機をヨドバシアキバで見てきたのですが、Philips よりも画面がきれいに映っていたのが決定打でした。
IO-Data lcd-m4k401xvb 40" と他の43"よりも小さいのがいいです。ただ実機でも感じたのですがベゼルが太すぎる、発色が赤っぽい?DPが不安定という話があったのでDP中心にしているのでナシで。

開封の儀

とりあえず梱包状態から設置まで。

到着

Amazon で購入してもよかったのですが、土曜着にしたかったのとポイントつくしで ヨドバシカメラで買いました。

箱大きいです。

とりあえず開封してみるといい感じで大きいです。

背面をみるとVESA規格の 200x100 でマウントできます。

エルゴトロンのLXデュアルデスクマウントアーム サイドバイサイド(耐荷重 9KG)でやれるか変換プレートで試しましたが、案の定無理でした。挑戦はおすすめしません。MX デスクマウントLCDアームでぎりぎりですね。

VESA規格変換段付プレート VESA規格75/100㎜ → VESA規格100㎜×200㎜ NB-VS1020H を用意してたんですが無駄になりました。

スタンドはねじ4本で止まっています。高さ調整はできずチルトのみ可能です。

端子はまとまっています。DPの出力があるのいいですね。

設置

設置前の状態はこれでした。コーディングを縦置きディスプレイでしているのですが、横配置のモニタとの差異が大きい状態です。

設置後です。。今回はモニターアームを使わずそのままデスクに配置しました。

椅子に座った状態でとると視界がモニタで埋まります。

所感

2日使った感想です。(2017/7/2時点)

  • 文字の大きさは全く気にならず、文字とディスプレイのサイズのバランスは想定通りばっちりです
  • ブルーライト低減機能をon にすると黄色発色になるのでブルーライト低減切っていますが、若干目が疲れる気がします。もう少し使って判断だと思います
  • 43" 大きいです。視界が凄く埋まります。良い意味でも悪い意味でも。会社でこの状態は嬉しくないかも? 家だからいいですが
  • USBハブはもともと縦置きのディスプレイでしか使ってなかったので問題なし
  • モニタが大きくなってウィンドウを、FullHDのサイズでそのまま配置できるのは楽です。横幅が崩れないので、表示への違和感もなく、単純に作業スペースが広がりました
  • 4KフルでYoutube の1080表示なども荒れて見えます。なるほど噂通り。スーパーシャープネスを有効*7にするとましになります。少し遠めで見ると気にならないですが
  • 文字がかすれて見えます。これもスーパーシャープネスで少しマシですが難しそう。高精細さが失われたのは間違いないのでちょっと今後4Kが出るならそこも注目だと思います

1週間使った感想です。(2017/7/9時点)

  • 画面は大きいけど疲れるってことはなくなりました
  • ブルーライトとかも気になりません
  • 部屋を真っ暗にしてルコと多いのですが、単純にディスプレイ大きい分、部屋が明るくなりました (
  • USBハブはやっぱりなくても平気
  • フルスクリーンウィンドウじゃなくて、画面の半分か1/4にすることに慣れました。作業スペース多いの嬉しいし、快適です
  • ウィンドウを小さくすると文字のカスれが気にならなくなるようになって一石二鳥でした
  • 一度だけディスプレイ表示がバグったけどディスプレイ再起動で直った
  • レスポンシブな画面で、一定以上に大きな画面サイズになるとむしろ余白多かったりするデザイン多くてしょんぼりですね。Youtube とか。こういうサイトは遠慮なくウィンドウ小さくしています

3週間使った感想です。(2017/7/23時点)

@ufcpp せんせーも同じモデル買われたらしく記事面白かったです。

http://sp.ch.nicovideo.jp/ufcpp/blomaga/ar1274968sp.ch.nicovideo.jp

  • 記事にあるように、わたしもディスプレイ少し湾曲しててもいいかもって思い始めました。実際モニタの恥が遠く感じるので湾曲大事だなぁと。ただし私の場合は27"モニタ縦置きがあるので湾曲だと微妙かも?
  • タスクバーは1つでいいと思ってるけど、昔あったドックやランチャー系欲しくなってきた
  • 私の利用方法は、画面の半分を縦にウィンドウたてて、余った半分にモニタを1/4ずつ、あるいは乱雑においています。Visual Studio は縦置きモニタに表示
  • やっぱり時々画面が線まみれになる(ディスプレイ再起動で直る) 昨晩併せて3週間で3回。だいたい1週間に1回のペースで遭遇していますね。(別に問題とは感じてない)
  • リモートデスクトップをしたときに、リモート画面が小さくて余白が気になる(無茶ぶり)

まとめ

4K で 43" は大きいですがオススメです。個人的には 38-40" ぐらいがベストな気がします。トリプルディスプレイにする気は失せたのでそこはバッチリですね。特に Unity のようなディスプレイにウィンドウを大きく映し出す場合は効果が高いです。

モニタが小さくてやりにくいと思っていた言い訳が今後できなくなるのは素晴らしいと思います。モニタアームだけなんとかしたいです。

文字のかすれというか、高精細さが失われるのは間違いないので4Kに求めるものによってはそこを注目するといいと思います。

*1:こじつけですね

*2:しかしVRでテキストを読むのは絶望

*3:これでも出しすぎで5万以下にしたかった

*4:EIZO の四角はナシ派です

*5:HDMIは VRHMD用に使うのでHDMIはミラキャスト以外はありえない派です。DP1.2 なら Multi Stream Transport 使えるのも良いです

*6:映り込み疲れるので嫌いです

*7:デフォルト無効

Windows の TimeZone 設定をコマンドラインから行う

Windows の TimeZone 設定といえば コマンドプロンプト以外にも PowerShell や .NETでもできます。

Windows 10 でどのようなやり方があるのか軽く見てみましょう。

目次

各種方法

ざっくり見てみます。

コマンドプロンプト

TZutil が安定でしょうか。

Tzutil Command-Line Options | Microsoft Learn

書式が相変わらずめんどくさいです。

TZUTIL </? | /g | /l | /s TimeZoneValue[_dstoff]>

今のタイムゾーンを取得したり、タイムゾーンの一覧取得、設定が可能です。

gist.github.com

PowerShell

Powershell 5.0 から Microsoft.PowerShell.Management モジュールに Timezone に関する Cmdlet が2つ追加されました。Get と Set です。

PS > man Get-TimeZone

NAME
    Get-TimeZone

SYNTAX
    Get-TimeZone [[-Name] <string[]>]  [<CommonParameters>]

    Get-TimeZone -Id <string[]>  [<CommonParameters>]

    Get-TimeZone -ListAvailable  [<CommonParameters>]


ALIASES
    gtz


REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
        -- To view the Help topic for this cmdlet online, type: "Get-Help Get-TimeZone -Online" or
           go to https://go.microsoft.com/fwlink/?LinkId=799468.

使い方も簡単です。Get-TimeZoneで今のタイムゾーン取得、Get-TimeZone -ListAvailable で一覧取得、Set-TimeZone で設定。まんまですね。

gist.github.com

ちなみに PowerShell DSC でも可能です。まだリリースされてませんが、1.6 でWMF5.1 や Nano Server 向けに TimeZone Cmdlet を使うように分岐が入ります。

github.com

gist.github.com

.NET (C#)

当然 C# でも操作できます。 Set がだるいので、コマンドをラップしてもいいかもしれません。

gist.github.com

WSL (Bash on Ubuntu on Windows)

WSL から UbuntuでやるようにはSETがちょっとうまくいかないのでどうすればいいですかねぇ。

手元の bash で sudo 壊れて直してないので試してませんが、ln 置き換えでいい気がします。 gist.github.com

2017/6/21 追記

記事を見た先輩から教えていただきました。

Ubuntu のヘルプ通り、本来ならこれで行けます

UbuntuTime - Community Help Wiki

gist.github.com

しかし、現在バグがあらいます。

bugs.launchpad.net

修正までは以下でいいようです。

gist.github.com

まとめ

どれを使ってもいいでしょう。この程度だと PowerShell が一番楽、かな?

Yamaha NVR700W で Nuro Biz と接続してみる

たまにはインフラっぽい記事を書きます。

一昨年から個人的に話題になっているサービスといえば Nuro Biz です。強力なバックエンド、G-Pon、ダークファイバと、多くの先見性と高速さ、コストの安さが謳い文句に良く聞きますよね?

さて、昨年 2016年9月に Nuro Biz と Yamaha NVR700W をIPoE接続する機会があったので、今回はその接続設定についてです。従来の PPPoE とは異なる設定になるので、参考になる方がいらっしゃれば幸いです。

目次

Nuro Biz

開通までの流れを見てみましょう。

開通まで

Nuro Biz 営業さんと、要件、プラン、開通までの流れ、開通予定日を決めます。結構分かってる営業さんが多いのか、話が非常にスムーズに進み、色々教えていただきました。ありがとうございます。

確認事項 概要
要件 小規模なこともあり、下り 2Gbps あれば十分、固定IP が一つあればいいでしょう。
プラン これを満たす必要十分なプランとしてスタンダードに秒決でした。
開通までの流れ 申し込み、契約署の取り交わし、工事前下見、引き込み工事/ONU工事、利用開始 の流れです。
開通予定日 工事などから逆算です。通常 4-6週、すでに同ビルで Nuro Biz利用者がいる場合はもう少し短くなります。

プラン

今回接続に利用したのは、次のプランです。

http://biz.nuro.jp/service/spec/

項目 内容
プラン NUROアクセス スタンダード
固定IPv4 標準 x1
固定IPv6 標準 x1

申し込み

申し込みは、PDF で捺印後に返信、口座支払い/クレジットの場合は支払い登録書の送付が必要になります。

下見

申し込み完了後は、Nuro Biz から NTT にダークファイバの申請が行われます。この申請完了までが時間がかかるため、開通までに最も影響します。

また、申請を行うにあたり、すでに同ビルでの利用があるかが確認されます。もし利用がない場合は、ダークファイバの引き込み、一部中継機器の設置が必要になるため、下見が発生します。ビル管理担当者様や下見立ち合いの調整が必要になるため、いい感じでやりましょう。

当然、MDF/EPS への立ち入りも発生するため、ビル管理担当者様にはその旨の連絡、鍵のお願いも必要です。

下見に関しては、手慣れていらっしゃることもありサクッと30分程度で終わります。問題なく行けそうでも、一部不安があってもNTTへのダークファイバの空き状況確認/準備確認、当日調整も行ってくれるあたりは結構知見もたまっていらっしゃてスムーズにすすめようとされている姿勢が垣間見えます。

当日作業

NTT 側のダークファイバ作業、Nuro Biz 側の回線引き込み作業を同日、同時刻に行っていただくことができます。MDF立ち入りなどもあるため、日程が圧縮、同時進行できるのは非常に助かります。

非常にスムーズで、大変素晴らしいお手並みでした。プロです。

NVR700W

さて、回線が引き込まれて ONU が設置されたら接続試験をやっていっていただけます。とはいっても、ONU直のままではこまるので、早速ルータとして NVR700W をかませましょう。

2016年7月発売ということで、発売からあまり時間をおかずに設定でしたが UI も RTX810 から一新されポートも見やすく非常に良くなっています。強い。です。

http://jp.yamaha.com/products/network/routers/nvr700w/

経路図

Nuro Biz に限らずネットワーク回線と接続設定するときには経路図が重要なのはいつものことです。というか、これがないと話になりません。

重要なポイントが以下の3つです。図とともに読み合せることをでルータのコンフィグを構成します。

  • 固定IPアドレスオプションは、局舎から見て①をネクストホップとしたスタティックルーティングが設定されています
  • LAN1ポートでは固定IPアドレス設定を推奨しますが、DHCP設定で接続すると、他の機器への交換の際、最大3時間DHCPが動作しません。その場合は、一度IPアドレスを開放していただくか、交換する機器に固定IPを設定して接続ください(IPv4の場合)
  • LAN2ポートに接続するとDHCPにより動的にプライベートまたはグローバルIPv4が1つ割り振られます(複数ルータは接続できません)。他の機器への交換の際、最大60分間DHCPが動作しません

構成図

今回は小規模な構成で行きます。単純ですね。

NURO 光 ONU <WAN>
  (LAN1)
     ┗ (WAN) Yamaha NVR700W <ルータ>
              (LAN1)
                 ┗ (Port n)基幹L2スイッチ <LAN>

NVR700W Config

さて、NVR700W のコンフィグを書いてみるとしましょう。

様々なサンプルを Yamaha さんは公開されています。

http://jp.yamaha.com/products/network/solution/internet/

しかし、IPoE は 良くある PPPoE とも異なります。

pp select 1
pp always-on on
pppoe use lan2
pp auth accept pap chap
pp auth myname (ISPに接続するID) (ISPに接続するパスワード)
ppp lcp mru on 1454
ppp ipcp ipaddress on
ppp ipcp msext on

一番近いのがこれですが、あいにくと Nuro Biz にちょうど該当する IPoE 構成は公開されていません。

http://jp.yamaha.com/products/network/solution/flets/flets_other_service/flets-next-ipv6_ipoe-rtx1200/

一からコンフィグを書きます。入力にあたり各種設定は次の通りです。 *1

IPv4 パラメータ
標準固定IPv4 (WAN Port IP Address) 98.76.54.32
サブネットマスク (Subnet Mask) 255.255.255.192 (/26)
デフォルトゲートウェイ(Default Gateway) 98.76.54.30
IPv4 DNS (Primary) 123.123.123.123
IPv4 DNS (Secondary) 123.123.123.139
IPv6 Parameter
標準固定IPv6 Prefix(IPv6 Prefix) 123a:001b:0045:6700:: / 56
IPv6 DNS (Primary) 123a:0040:0005:0005::33
IPv6 DNS (Secondary) 123a:0040:0005:0006::49
LAN Parameter
LAN側 IP 10.0.0.1/24
LAN側 DHCP Scope 10.0.0.2-10.0.0.100/24
ntp ntp.nict.jp

コンフィグは次の通りです。今回は IPv4 でサクッと組んでみました。

gist.github.com

構成後

簡易接続速度試験を行っても、速度低下もなく非常にスムーズであることが分かります。同時接続が増えても十分に速度を維持しているのは非常に助かります。

接続経路 Download Upload スクリーンショット
Nuro ONU - PC 直通テスト 892.70Mbps 818.49Mbps
Nuro ONU - NVR700W 911.36Mbps 930.43Mbps

まとめ

NVR700W でも全く問題なく Nuro Biz と接続ができるので安心して使うといいでしょう。Yamaha せんせーは、サイトにサンプルあると非常に助かるのでぜひぜひこういったサンプルも増やしてもらえると嬉しいですね!

*1:架空の値なので、ご自分の環境に置き換えて読んでください