Goが家に届きました!私が購入したのは、これ。www.oculus.com64GBの方を選びました。俗に言うスタンドアローン型というVR機器になるようです。カートに入れて、購入完了して数時間で発送しますね!というメールがきました。大体到着まで5日間ほどで手元に届きました。中身を見てみるとけっこうシンプルにまとまっていました。メガネを日頃かけている方でも安心。スマホのアプリからOculusの設定をする時に、装着ムービーも丁寧に紹介されていました。わかりやすいように、画像を載せようかと思っていたのですが、この記事では割愛します。後日画像を掲載させていくかもしれません。合わせて詳細も追記していければと思います。)ここから、"PCへのミラーリング"について順をおって説明します。Goの画面をPCにWirelessでミラーリング表示する準備まず、色々準備が必要です。スマホアプリの開発を経験されている方はけっこうすんなりいきそう...では、まず環境から。私の環境ですので、他の環境では試していません。随時、自分にあった環境の設定方法をググる必要があるかもしれません。Oculusというアプリをダウンロード。ログインを行い(アカウントを作成する必要があります)、手順に従って連携完了まで行う。Oculusに対して開発者モードに設定する必要があります。以下のURLへ移動しログインします。https://dashboard.oculus.comそうすると、「新しい団体の作成」という画面が表示されるかと思います。任意の団体名を記入し、送信し、完了させます。完了すると以下の画面が出てくるかと思います。スマホアプリに戻ります。(青色にする)これで完了です。Studioをインストール続いては、PCの方です。Bridge)が使用できていれば問題なさそうです。Androidの開発などをされている方は、不要かもしれません。Studioをインストールします。以下のURLに行って、ダウンロードします。Developersダウンロードした.exeを開きます。Platformを選択。Installerが開かれインストールが開始されますここまでできたらウィンドウを閉じて大丈夫です。Windowsのコマンドプロンプトでadbコマンドが使用できているでしょう。"’adb’は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません"と、出力...「なんでやあああああぁぁ!!!」とか言いながらググりました。結果、環境変数のPATHが通っていないことが判明。普段Windowsあんまり使わないから見落としてた。新規ここで私は2つPATHに対して新規で追加。上記のpathを参考にエクスプローラーからポチポチしていけば確認できかと思います。unauthorized「NOOOOOOOOOぉぉぉぉぉ〜〜〜!!!」なんか権限ないですやん...まあ、ただadbコマンドは使用できていてOculusは認識しているっぽい。ふむふむってことは、どっかで権限を有効にしてやるかんじかなと、またググる。本来?というかAndroid端末であればどうやらUSBデバッグの許可の取り消しなるオプションがあるらしい。wwwすげえバカでしたが、まあよしとする。一応なのですが、adbサービスの再起動として、以下のコマンドを実行させます。start-serverということで、もう一度デバイスの確認実行。続いてOculusのIPを調べる。無線LANなのでwlan数値を指定します。ちなみにeth0は有線。wlan0出力された情報のinetの横にIPが確認できるかと思います。192.168.xx.xxみたいに出てるかな?adbでportを開放portを開いていきます。portの範囲は、5555~5585の範囲で奇数を指定したほうがよさそうです。今回は公式で紹介されている通り5555で試します。接続をlistenするようにOculusを設定しました。ここで、PCに接続しているOculusをUSBケーブルを抜きます。接続にトライしてみてください。Vysorの設定ここまできたら、あとはVysor(バイザー)のインストールと設定のみです。Vysorとは、ブラウザChromeで動くアプリケーションです。スマホ画面をパソコンへミラーリングさせるアプリのようです。ブラウザにインストールします。追加されていると思います。起動させたウィンドウ上部にOculusの接続が確認できていればOKです。確認できていなければ、Settingsの上にあるConnectボタンを押下。コマンドプロンプトで確認したIPとportを指定して接続します。お前ほどの感動はない」とのことでしたwwwやはりVRで見れないので、購入してVR体験してもいいかもしれませんね!!次回は、Unityでのプロジェクト環境構築&作成考えています。code今回は、Terraformについてです。わたしがちょっとしたことでハマってしまったエラーについて、簡単ではありますが、メモがてら残したいと思います。そもそも私のTerraformに関しての知見が足りないことでハマってしまったと思うので、ご了承ください。完全な対応策というよりは、一時的な対応策になるので、そこもご了承ください。(※完全にTerraformのstateファイルの挙動を理解していないので、わかり次第更新or新規で記事を投稿します!)では、さっそく。まえおきTerraformでコマンドを叩いていたときのこと。applyなどなどそしたらいきなり以下のエラーメッセージが表示されて、コマンドが叩けなくなってしまった。update.エラー内容的に、Terraformのヴァージョン0.12.20は、stateファイル(.tfstate)のヴァージョン4をサポートしていません。アップデートしてください。前回実行したときのstateファイルにも、以下が記述され問題なさそう。....調査tfstateファイルは、手動で変更するのは推奨されてはいないので、手を加えたくありません。同様に、ファイルを他のディレクトリにも移動させたくはありませんでした。ググってみたところ、これしか近しいのが見つからず。github.comと、ここで思ったこと。思い当たる節ちょっとした検証だったので、stateファイルはローカルで管理していました。applyした階層)、.terraformに出力するようにしていました。}}.terraformディレクトリは、自動的に作成されるディレクトリなので、なーーんか怪しいかんじがしました。.terraformディレクトリから、違うディレクトリにstateファイルを移動させます。この時、新たにディレクトリ作成してもいいし、backendで指定していたところを削除して、デフォルト状態にしてもいいと思います。applyをすると、以下のメッセージが表示されると思います。above.tfstateファイルが意図したディレクトリにないので、バックエンドの初期化が必要とのこと。initしましょうって書いてあります。initする前に、前回applyを実行したときに反映したリソースを考慮します。理由は、initコマンドを叩くとわかるのですが、以下を問われるかと思います。設定された新しい"ローカル"バックエンドがあります。新しく構成された"ローカル"バックエンドに既存の状態が見つかりませんでした。コピーするには"yes"、空の状態で開始するには"no"を入力。新しくstateファイルを管理するにあたって、"no"を選択する場合、(おそらく)前回まで反映したリソースが反映してなかったことになります。わたしの場合、そこまで重くないリソースを反映していたので、"no"を選択し完全に新規で管理することにしました。init実行!イニシャライズ完了すれば一旦オーケーです。気になったことstateファイルに関しては、色んな記事で見かけますが、planファイルなるものが存在することも頭の片隅に入れておくべきかと思いました。apply実行時に行われる一連の変更の説明や、stateファイルの配置場所を設定しているファイルになるのかと思います。上記で説明したエラーに関連して、planファイルは.terraform/ディレクトリに自動生成されるようです。stateファイルをそのディレクトリに出力するようにしていると、ファイル名がおなじならどっちのファイルがどっちのファイルかわからなくなっていた、というわけです。.terraformディレクトリにはstateファイルを出力しないようにすることにしました。ヴァージョン0.12系の記事も思ったよりなかったので、あまり下手なことはせずに管理するのもありかと思います。アップデートが進んで、公式ドキュメントも充実してきたら色々とローカルでの管理方法を試してみようと思います。それまでは、S3で管理したりするのがベターかな。まとめなのに1つ疑問が。新しく作成したディレクトリと、なぜか.terraformディレクトリと2つのstateファイルが作成されました。(stateファイルとplanファイルがあると書かれている英語の記事を見つけました。)これは後ほど調査してみたいと思います。wsl今回はPythonのヴァージョン管理ツール、pyenvです。前回の記事同様、環境としてはWindowsのWSL(Ubuntu)でゴニョゴニョしていました。この記事もtipsのみで、記事内容は短いのであしからず!まえおきWindowsのWSL、Ubuntu18.04を使用していました。Python-3.7.6.tar.xzあれーーー、プロキシの設定はしてあるはずなのに、なんでだろう~。この前の記事でも少し紹介しました、WSLでの環境設定でプロキシサーバーがある場合、ちょっと設定をしてあげる必要があったので、設定はしたはず。o21o21.hatenablog.jpちょっとエラーをみてみるまあ、それはそうと、まずエラーの確認から。--verbose--verboseは、インストールするときの詳細を表示してくれるオプションです。うん、pyenvはcurlを使っているのね。なんか通信が外に出られていないのねってこと。curlの場合、プロキシ設定として、ホームディレクトリに.curlrcというファイルを作成し、ファイルを以下のように記述します。"http://proxy.xxx.co.jp:(port)"では、単純にcurlを叩いてみる。(この前通ることは確認したばかりなのになーー。)結果、やはりcurlはちゃんと外に出られているようです。(レスポンスが返ってきました).basrcや.bash_profileにもプロキシの設定はしてあります。解決策あーだこうだ考えたり、試したり、ググってみたところ、以下のコマンドで通りました。3.7.6なんか.curlrcに記述してあるproxyより、pyenvがcurlを呼んだときにhttpsが自動的に押し付けられるかんじになるのかな?ちょっとまだ調べきれてないですが、完全にわかったらまた更新しようと思います。Ubuntu今回もWindows系です。まえおきTerraformを使用するにあたって、バージョン管理が必要ですね。そのままインストールしてもいいと思いますが、後々のことを考えたり、チームメンバーとの環境を合わせるにあたっても、バージョンの管理は必須です。MacOSの方だと、brewで簡単にインストールできるみたいですが、Windowsだとそんなに記事がなかったので、ただのインストールのみの記事ですが、メモがてら残しまーす。今回は、WindowsのWSLでインストールしてみようと思います。WSLについては過去記事に少しあるので、なんか参考になればと思います!o21o21.hatenablog.jpo21o21.hatenablog.jptfenvTerraformのバージョン管理は、tfenvが一般的みたいです。cloneしてくるだけです!導入まず、ホームディレクトリにクローンします。~/.tfenv.bash_profileにパスを通します。PATH="$HOME/.tfenv/bin:$PATH"反映もわすれずに。.bash_profile確認してみます。2.0.0-alpha3-2-ge36f027これでおkですね!あっさりインストールできました。コマンド色々メモtfenvの最低限のコマンドをメモします。最初のインストールで、エラーが発生。WSL(Ubuntu)で、unzipをインストールしてないことが原因でしたので、以下を実行。docker-compose昨日に引き続いて、Windowsの開発環境がテーマです!今回はそんなに内容がありませんが、Windowsでの開発がそんなになかったので自分のデフォルト的な設定を残しがてら記事を書きます。前回の記事で少し詳しい内容を書きました!o21o21.hatenablog.jpLinux操作に慣れてる人にとっては、だいぶ良い環境になると思います!ただ、ヴァージョンアップなど、ある程度自由にできない環境だとちょっと環境設定のときに試行錯誤が必要かもしれません。↑上記の設定が済んだあと、エディタはどうすればいいのかと思いました。エディタわたしの場合、vimも好きなので、そのままWSLの方でvimの設定を少しすれば使用できるので、すごく困るわけではないのです。エディタを使用したデバッグなど、エディタのプラグイン的なので便利に利用できるものも多いはずです。ここでは、VSCodeを紹介しておきます!code.visualstudio.comまだWSL+VSCodeを駆使してがっつり開発している段階ではないですが、すごく楽な拡張機能を見つけたので、残しておきます。cloneなどでプロジェクトをクローンしてきたプロジェクトフォルダを簡単に開けないものか。!!拡張機能の検索から、↑で調べます。いう項目が自動的に表示されています。Windows今回は、仮想環境のちょっとした記事です。Windows10で、Dockerをインストールしたのはいいけど、Windowsのコマンドプロンプトの操作から脱出したかったのがきっかけでした。(WSL)で、WindowsにインストールしたDockerを操作できるようにしたメモ記事です!細かい個々のツールに関しては解説はしません。不具合があった際は、適宜ヴァージョンなどを確認してみてください!では、さっそく。1.6.10Windows側Dockerをインストールしていくまずは、公式からDockerをインストールします。※インストールには、Dockerのアカウントが必要かもしれません。手順通りインストールすれば問題ないでしょう。docs.docker.comインストールが完了したら、コマンドプロンプトを立ち上げて、以下を実行してみます。698e2846ヴァージョンが表示されればおkです。hello-world)もやってみたくなりますが、わたしは敢えてスキップしました。コンテナがあるか確認します。意味はないのですが、WSLにもWindowsにもコンテナが今はないほうがスッキリするだけです笑プロキシの設定をする社内環境などで使用する場合、プロキシの設定をしないとDockerが外へ出ることができません。必要な場合が設定をしましょう。hoge.proxy.co.jp:8080)入力したら、"Apply&Restart"CドライブをマウントこちらもDockerのSettingsから確認できます。Windowsのデーモンを呼び出す設定こちらもDockerのSettingsから確認できます。チェック入力したら、"Apply&Restart"WSL側WSLを立ち上げて設定やらインストールやらしていきます。.bashrc.bashrcに以下を追記します。DOCKER_HOST=tcp://localhost:2375もし、.bashrcを今回新規作成していたら、.bash_profileに以下を追記します。~/.bashrcfiプロキシもしプロキシサーバーがあれば、以下を設定していきます。aptの設定もしapt.confというファイルがなければ作成します。"https://hoge.foo.com:8080";curlの設定ホームディレクトリに.curlrcファイルを作成し、編集する。http://hoge.proxy.co.jp:8080Dockerのインストール今回のわたしの環境は、Ubuntuです。公式にUbuntuへのDockerのインストールがあるので、参考にします。Documentation公式に手順があるので、ここではざっくりとした手順のみ記述します。Gard)とは、暗号化・復号化のツールのキー。Dockerのパッケージを復号化するために使用します。add-apt-repositoryaptのリポジトリというものがあります。リポジトリは複数あり、リポジトリを設定することでそのリポジトリからパッケージをインストールすることができます。今回の設定では、Dockerをインストールするために、stableを選択しました。続いて、Dockerをインストールしていきますが、わたしがインストールしていくとき、公式のコマンドでエラーが出てしまいました。containerd.iodocker-ceがどうしてもインストールできませんでした。docker-ceは、コミュニティヴァージョン(無償)です。確認できてはいないのですが、エラーをみるとdocker.ioをインストールしろとのこと。ここで疑問が浮かび上がりました。docker-ceとdocker.ioの違いとは?先程も書いたとおり、docker-ceは世間一般で言うDockerのことらしい。docker-eeは有償版らしい。docker.ioはUbuntuがメンテナンスしているパッケージのことらしい。Quoraインストール(docker.io)つまり、エラーのとおり、UbuntuでDockerをインストールしたい場合は、パッケージ名としてdocker.ioを指定するといいのかもしれない。docker.iodocker-composeをインストールdocker-composeをインストールする。-vWSLの再起動WSLを再起動をします。これをしないとうまく設定が反映されないと思うので、実行します。して、hello-worldのイメージとコンテナが作成されるはずです。Dockerの簡単なコマンドです。imagesrunさせたら、Windowsのコマンドプロンプトでコンテナを確認します。叩いて確認してみましょう。Proxy)だいぶ期間が空いてしまいた。今回がWindowsでの仮想環境構築についてメモがてら記事を書きました。今回はWindowsが前提になります。仮想環境構築ということで、VirtualBoxとVagrantをインストールし、CentOSのイメージを対象にしました。転職やらで新しい会社に入社したときとかに、よく社内のネットワークの都合でプロキシサーバー(Proxy)が配置されているかと思います。記事にして残しておこうと思います。Windows10VirtualBoxまず、VirtualBoxをインストールします。公式ページからダウンロードします。VirtualBox公式ページでは、最新のヴァージョンがダウンロードできます。後でインストールするVagrantとのヴァージョンの関係でうまく機能しない場合があります。Hyper-V.・・・・・略あとでダウングレードするのも手間なので、ヴァージョンの確認or少し前のヴァージョンをインストールしてもいいかもしれません。過去のヴァージョンは以下から。VirtualBox手順に沿ってダウンロードすればOK。Vagrant続いて、Vagarantをインストールします。HashiCorp手順に沿ってインストールすれば問題ありません。CentOS続いては、仮想環境となるOSのイメージになるファイルを選択します。VirtualBoxでポチポチして進めたい場合は、以下を参考にしてください!ポチポチしない場合は、この項目↓は読み飛ばして大丈夫です。今回はboxファイルをダウンロードしてみます。ものをダウンロードしてください。Vagrantbox.esまた、他の拡張子だと以下から確認できます。ググればたくさん出てきますので、CentOSの細かいヴァージョンなど指定がある場合は調査してみてください。CentOSの公式ページは以下です。CentOSここでは、以下のURLから過去のヴァージョンを確認&ダウンロードできます。パスの例http://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/コマンドプロンプトで作業Boxの追加コマンドプロンプトを開きます。以下を実行して、boxを登録します。任意の名前で大丈夫です。https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box以下から対象ヴァージョンのURLを確認。Vagrantbox.es少し時間がかかるかもしれません。正常にインストールできれば、以下のコマンドで確認できます。0)Vagrantfileの作成Vagrantfileというファイルを作成します。仮想環境の設定を記述するために必要なので、必ず以下を実行します。centos7.0Vagrantfileの編集ここでは必要最低限の編集のみです。IPですが、ホスト(Windows)から確認できるIPを指定します。このIPはWindowsのコマンドプロンプトで、確認することができます。.:仮想環境の立ち上げここでもvagrantのコマンドで仮想環境をたちあげます。upこのとき、ERRORなどの単語に注意してください。ここではエラー対処の方法は説明しません。使い慣れたエミュレータがいいと思いますが、なんとなくRLoginを使ってみたいと思います。パスワードorパスフレーズは、vagrantを指定。ホスト名は、Vagrantfileで指定したprivate_networkのIPを入力。上記を入力して、SSHで接続します。無事にCentOSに接続できたら、外に(インターネット)接続できるか確認したりします。冒頭で述べたように、会社のプロキシサーバーなどで、かんたんにインターネットに接続できない場合があります。なると何かツールをダウンロードしたり、yumがアップデートできなかったりして、そもそも仮想環境の意味がなくなってしまいます。笑ここでは、非常に最低限なプロキシサーバーを経由した設定をちょっと紹介できたらと思います。適当な図で申し訳ないですが、、では、CentOSないでの確認です。LANG=en_US.UTF-8ログイン後、反映されます。curlpingやcurlで外に出られるのか確認してみます。InitscriptCentOSでは、nmtuiやnmcliというコマンドを使用して、NetworkManagerを操ります。ネットワーク設定ができるようになっているようです。NetworkManagerとは、ネットワークを動的に設定できるサービスです。RHEL6とRHEL7でネットワークの管理方法が変わってきているようでした。(知るの今更感...)ここではnmtuiコマンドを詳しく説明はしませんが、CentOS6と7系とで、大きく変わったコマンドがあります。service(CentOS6)とsystemctl(CentOS7)です。なにかのサービス(ツール)を起動させたり、停止させたりするのに多様されています。この人の環境は6系か!など環境の記載がない場合などに気づきます笑ちょっとNetworkManagerからそれてしまいましたが、CentOSでは6からNetworkManagerがネットワークの設定サービスとして採用されています。多く記事でありますが、まず無用に停止させないで状態を確認してみましょう。/var/lib/NetworkManager/d...以下を参考にして、まずどのようなネットワークを構成させればいいのか考慮します。access.redhat.comyum.confわたしの場合、デフォルトではyumコマンドが機能しませんでした。/etc/yum.confに以下を追記します。[main]proxy=http://<your_proxy:port>こうすることで、yumが機能するかもしれません。その他VirtualBoxの設定にも、あらかじめプロキシー設定のメニューが用意されています。手動プロキシー設定また、上記のメニューで、ホストのプロキシー設定を自動検出というものもあります。ホストはここでいうWindowsになるので、Windowsの環境変数に設定しておくのもありかもしれません。(ちょっとこの自動検出がどこまでなのか調べていないので、なんとも言えません、、、)コマンドプロンプトで環境変数を確認してみましょう。set略・・・HTTPS_PROXY=http://<your_proxy>HTTP_PROXY=http://<your_proxy>略・・・まとめかなりざっくりしたかんじになりましたが、とりあえず状態を先に確認してみることが重要です。むやみに調べたコマンドを実行し、なにが変更されたのかわからない状態は避けていきたいですね。ネットワークなので、そもそもインターネットに接続できなければ、仮想環境を構築した意味もなくなってしまいます。テーマは、頭の体操です笑と、いっても数学の領域全体ですと、扱いきれないほど覚えることがあるので、ここでは、エンジニアとして重要な考え方などを取り扱っていきます。実用的な数学を解説するというよりか、考え方寄りのお話になってくると思います。実践的な数学は、各アルゴリズムをみていくときに一緒に解説できたらと思っています。それまでに頭を柔らかくするためのものか〜くらいに思って頂けると嬉しいです!※数学得意!って方向けではありませんのでご了承のほど。参考にするのは、こちらの本。プログラマの数学第2版また、このブログのシリーズの目次は以下。「プログラマ、エンジニアには数学が必要か?」とか「加減乗除は前提で、線形代数や微分積分などが必要」とかそういったことではありません。どちらかというと、こういう見方で数字をみてみよう!みたいなノリです。説明に不足してしまう部分もありますが、ご了承のほどよろしくお願い致します!ロジカルシンキング嫌というほど見聞きするであろう、ロジカルシンキング(論理的思考/論理思考)。いうふうに理解されているはずです。わたしは、小さい頃から「なんで?なんで?」と両親に言い過ぎて叱られた記憶しかないですw疑問を持って、ある問題から分岐した問題をさらに深堀りしていき、道筋を追い、適切な根拠付けを行うことは重要です。数学的/エンジニア的な側面でどのように活かすのか考えてみます。MECE数学の問題(数学でなくともなにかの問題でも可)、出題された問題では、まず問題を理解することが重要です。述べられている事実を正確に読み解くことが重要だと思います。問題を考えているうちに、余計なことを考えてしまうと、解決に至るまでの時間が長くなってしまったりします。Exhaustive)という考え方が存在します。(ミースと読むらしい)難しい単語が出てきましが、まったく難しくありません。日頃からやっているかもしれません。言葉だとイメージがわかないので、コードで例をみてみます。drink!!'"と出力されます。なんてことないですね!20歳以上になれば、お酒飲めますよーって単純なことです。こんな単純な例ですが、ここで考えたいのでは、重複や漏れになります。1人の人間は年齢の重複はない)。これは年齢単位でグルーピングしていることになります。この例は日本に限る話であり、世界の国々では飲酒できる年齢は様々です。アメリカでは飲酒できる年齢は、州ごとに違います。ブラジルでは18歳からの飲酒がOKです。18歳以上2つ国が増えたことで、先程のコードは適用できなくなりますね。条件をたす方法もあるかもしれませんね。'Japan':あるときはこれでいいかもしれません。あるときはこれではバグを生む原因になりかねません。ここで推したいのは、何回もいいますが、重複と漏れです。仕様の変更で、扱う国が増えたら大幅なコードの修正になるかもしれません。条件が足された場合も、考慮する点が増えてきます。落ち着いて関係性を表現してみます。いう風に表現するかというと、集合(ベン図)です。学生のときに散々みた、これです。(この図は、例を表してはいません。)ちょっと手間かもしれませんが、このベン図を利用して考え方を固めていきます。例を参考に問題っぽいのを。とあるエンジニア100人に飲酒・喫煙アンケートをとりました。日本人のエンジニアで喫煙は10人、飲酒は20人。アメリカ人のエンジニアで喫煙は7人、飲酒は30人。両方と答えたのは、日本人は4人、アメリカ人は2人。両方しないのは、何人でしょうか?色々と数字が出てきましが、ベン図にしてみればシンプルに。個々の関係を(排他的(Exclusive)に)確認するということが大事です。進法ちょっとテーマを変えます。コンピュータでは、基本的に2進数が使われています。2進数は、0と1で表現されています。人間が主に使用しているのは、10進数ですね。進数(進法)について詳しく知りたい方は、以下の過去記事にて参考にしてみてください!o21o21.hatenablog.jpどうして進数について記述するのかというと、0(ゼロ)の認識について簡単に説明したいからです。0とは?私自身、改めて0に対しての気づきがありましたので、是非ここでその気付きを記述したいと思います。この本(プログラマの数学第2版)を参考にしています。エンジニアとして0は特に馴染みのある数字だと思います。0からはじまるのが当たり前ですよね。日常的に0は何もないことを表現するのに使いますね。間違ってはいませんし、これからもそうだと思います。見方を変えてみようと思います。102これは10の2乗ですね。これはどうでしょう?100101は、10です。指数が0の場合は?学校で累乗を習う場合、10をn回掛けたのが答えという風に考えるかもしれません。間違ってはいませんが、指数が0や-1となった場合、少々シンプルに物事が考えられないかもしれません。