oculus製品版をセットアップして、遊んだ
新Win機を開封
なんだか久々のwindowsよろしく。結構本気構成
[スペック]
OS:Windows10 64bit
CPU:Intel Core i7-6700CPU @ 3.40GHz
GPU:GeForce GTX 1070
HDD:ST2000DM001 [2TB SATA600 7200]
SSD:BX200 CT480BX200SSD1 [480GB]
メモリ:16G RAM
Oculus開封
oculusのアプリをインストールして立ち上げると、機器のつなげ方とかチュートリアルが出てくるのでそれに沿ってやる。設定の最後にデモがあるので、そこまでいけばセットアップ完了。
問題発生(大きめのソフトが動かない)
ストア上で大人買いを発揮しまくっていたところ、サイズの大きいソフトが動かないことが発覚。。
ソフトを起動すると、THE [Appname] IS TAKING A WHILE TO OPEN etcetc
と表示されて起動しなかった。
例えば、このclimbのアプリ。
www.youtube.com
で、climbのフォーラム見に行くと似た現象のスレがちらほら。
http://www.theclimbgame.com/forum/viewtopic.php?f=7&t=15
最新のドライバーじゃなかったり、適切なグラボ積んでても、そっちを見に行ってないことがあるっぽい。
1. ドライバーを最新に
NVIDIA Geforce Experienceのアプリを立ち上げて、ドライバーが最新かどうかを確認。
2. グラボの状況を確認
コントロールパネル->ハードウェアとサウンド->デバイスマネージャーで、ディスプレイアダプターを確認。
ここで、Intelグラボ
とGeforceグラボ
が2つ表示されてて、この辺怪しいと。
原因はディスプレイからつなげるのに、hdmi使ってて、これがグラボ側とつながってて、oculus側のhdmi接続はPC側に接続されててこれがダメだった。ただ、これを入れ替えると、ディスプレイの方でnvidiaコントロールパネルが立ち上がらなくなったりと面倒そうだったので、DisplayPortのコードに変えてグラボ側に接続。これで再度ディスプレイアダプター確認すると、NVIDIAのグラボだけが表示された。で、ソフト起動して無事プレイ成功!ふぅ、なるほど。
*ちなみに、アプリ起動中にどのグラボ使われてるとか見えるようにしておくと便利。コントロールパネル->ハードウェアとサウンド->NVIDIAコントールパネルで、デスクトップのタブ開いて、GPUアクティブティアイコンを通知領域に表示する
をチェックすると通知のところに出てきて確認できるので良い。
とりあえず、最高
session_set_cookie_paramsとかセッション
これはなに
適当にsession_set_cookie_params付けてたけど、よくわかってなかった。el capitanにして、localhostの環境がlocalhost/~username/appname
みたいな感じでやるようになって、セッション消えたり、他アプリと共通化されたりおかしくなったので、調べた。
session_set_cookie_params(0, '/~username/appname/');
とかすると、第一引数はセッションクッキーの持続時間、0にすると制限時間無しになる。第二引数にはセッションクッキーが有効なpathを記載する。これでアプリ毎のセッションクッキーをセットできるようになる。
セッションの保存先だけど、php -i | grep session.save_path
すると見れる。設定はphp.iniでsession.save_path = "/var/lib/php/session"
とかするとそこに書かれていく。デフォルトだと/tmp
になってるぽい。
追記:php.iniにsession.save_path設定すると某アプリのログインcallbackでこけるな…おや…
MBPでel capitanクリーンインストール
1. ファイル・写真etcを同期する
これを機にファイル・写真は全てDropboxに同期するようにしました。Dropbox内にフォルダ作って、ローカルからそこにリンク貼る形にして、自動同期。
あと、brewで入れてるやつとかもさっと同期するために、brew bundle dump
とかしてBrewfileを作成。Dropboxとかに入れて、綺麗にした後にbrew bundle
できるようにしておく。
2. アプリ内のデータを同期する
アプリ内のデータで必要なものを同期。
Apple系のもの(Notesとか)はこちらでできる。
iCloud データをアーカイブまたはコピーする - Apple サポート
(今回はdropboxのpaperにコピペした)
3. 認証ある系のものを解除する
Adobe製品やicloud, itunesとか解除する。
Apple系はこちら。
Mac を売却または譲渡する前に - Apple サポート
4. バックアップ取る
Time Machineとかでバックアップをとっておく。
5. クリーンインストール!!
6. 諸々設定
- chrome, google ime入れる
- キーボード系(caps lockをctrに。spotlightをctr+spaceに。言語切替をctr+spaceに。ブラウザ内window切り替えをoption+tabに。)
- 諸々はこことか。
OS Xをクリーンインストールした後に行う初期設定のまとめ – OTTAN.XYZ - アプリ群を入れる(dropbox, github, evernote, skype, firefox, opera, iterm2, sublime, vagrant, virtualbox)
7. 開発環境をセットアップ
- dropboxと同期して諸々リンク貼る。(documents, pictures, productsなど)
- xcode, homebrew入れる
- Brewfileから諸々入れる
brew bundle
する - local開発環境つくる(docker for macでやるのが良さそう。が、いつもどおりSitesでapacheでやる場合はこちらの通りにやるとできる。)
Apache, MySQL, PHP on OSX 10.11 El Capitan for Local Development
vagrantにchainer入れて、chainer-goghを試す
what is this
chainer-goghで良い感じに画像つくりたい! (ってしてる間にprismaがリリースされたけど)
How I did
1. vagrantにchainer入れる
chainer自体は、
$ pip install chainer
で入るはずだけど、これやるのに必要なライブラリとかあったりするので、それをゴニョゴニョ入れていく。
2.chainer-gogh入れる
$ git clone https://github.com/mattya/chainer-gogh.git
chainer-goghのreadmeにもあるけど、学習のモデルをここ(https://gist.github.com/mavenlin/d802a5849de39225bcc6
)のdropboxから取ってきて、chainer-goghフォルダに置く。
あとは試したいベースとなる画像とスタイルにしたい画像を使って試す。
$ python chainer-gogh.py -m nin -i input.png -s style.png -o output_dir -g -1
で実行。output_dirにアウトプットが吐き出される。
3. やってみた
ピカチュウを悟空みたいにツルピカにしようとした。
input.png
style.png
で、以下結果。
im_00000.png
im_00050.png
im_00100.png
↓(40時間くらい)
im_01450.png
んー、なんか期待と違うwww
そもそも画像素材が微妙だった説が濃厚・・他の素材で試します。
今回は、CPUで回してて、あと、CUDAやcuDNNなどのライブラリも使ってなかったので、次はその辺り使って試してみよう。
関係無いけど、この画像診断よくできてる。ピカチュウも判定された。
http://demo.illustration2vec.net/
以下参考リンク
vagrantにdockerでdeepdream入れて、deepdreamを試してみる。
what is this
何やらcaffeは入れるのめんどそう、ということで、vagrantにcaffe含むdeepdream環境全部入りのdockerを立ち上げて試した。
How I did
vagrant入れるところはここで。
vagrantにdockerでtensorflow入れて、jupyterでhello world - mazeltov7のweb断片
1. deepdream-dockerをゲット
以下から、レポジトリ引っ張ってくる。 https://github.com/herval/deepdream-docker
以下、レポジトリのreadmeに書いてる通りにやるだけ。
2. docker buildする
$ docker build -t herval/deepdream .
3'. 適当な画像を拾ってくる
実験に使う画像を拾ってくる
$ wget https://hogehoge.com/photo.png -O /local/path/photo.png
3. docker runする
docker run -i -t -e INPUT=your_file_name.png -e ITER=20 -e SCALE=0.10 -e MODEL='inception_3b/5x5_reduce' -v /path/to/your/folder:/data herval/deepdream
で、outputs
に結果画像ファイルが吐き出される!
4. vagrant上のoutputsの画像をローカルに持ってきて確認する
$ vagrant ssh-config
確認した内容をファイルに書き出す
$ vagrant ssh-config > ssh.config
scpする際に指定する
$ scp -F ssh.config vagrant@default:~/output_file.png output_file.png
以上。
vagrantにdockerでtensorflow入れて、jupyterでhello world
what is this
tensorflow入れて、hello worldするまで
1. virtualenvで入れようとするが、activateされない
2. anacondaで入れようとするが、pyenvと衝突するから?か、activateしようとするとbashが落ちる
3. anacondaで、フルパスでactivateしようとするが、なんかおかしい
4. vagrantにdockerでtensorflow入れる→解決
how I did
1. virtualenvで入れようとする
基本的にここにあるようにやる
Download and Setup
virtualenvで~/tensorflowディレクトリ作って、$source source ~/tensorflow/bin/activate
で何もエラー出ず、プロンプトも変わらず、という現象に。
2. anacondaでいれようとする
上記のリンクと同じページのやり方に則ってやる。
が、source activate tensorflow
のところで、これを実行するとbashごと落ちる、という現象に…
3. フルパスでactivateトライ
bashごと落ちる問題はここにそれらしいものが書いてました。
pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類 - Qiita
ここによるとpyenvとanacondaのactivateが衝突してるとのことなので、フルパスで試してみた。
が、prepending $PATH_TO_PYENV/versions/anaconda3-4.0.0/envs/tensorflow/bin to PATH
とのエラーが出て、プロンプト起動せず。
conda info -e
でチェックすると、確かにtensorflow環境に切り替わってるけど、うまくいかない。
4. vagrantにdockerで入れる
まず、現行のdockerがcentos7じゃないとだめなので、適当にcentos7入ってるvagrant boxを探してきて、box addする。
適当なレポジトリ作って、vagrant init
して、Vagrantfileのboxを該当boxに書き換える。で、vagrant up!
Installation on CentOS
終わったら上のリンク通りにdocker入れる。
終わったら、tensorflowのドキュメントに戻って、Create a Docker group to allow launching containers without sudo
をやる。あとは、書いてる通りに、docker runするとjupyterが立ち上がる。
で、jupyterのGUIをwebから触るために、virtualboxのポート設定をする。以下参考リンク。この通りにやればOK
How do I start tensorflow docker jupyter notebook - Stack Overflow
以上。
サーバー間でmysqlデータをバックアップ・更新する
this is what
サーバーAにあるデータベース1を、サーバーBに持っていて同期(更新)する、というのをしたい。
定期的にするようにcronに登録する。
this is how
*今回はexpectコマンドを使った。expect入れてない場合はyum install expect
で入れる。
まずDBをダンプする。
$ mysqldump -u root --password="hoge" db_name > db_name.sql
サーバーAからBへ送る
# ssh ver2使ってる場合は`-2`オプション $ scp -2 -P 1111 db_name.sql user@serverB:/home/username/db_name.sql
な感じだけど、途中ssh鍵のパスワード求めらたりするので、cron出する場合はexpect使う。
スクリプト書く。
#!/bin/sh HOST=serverB PASS=hogehoge IDENT=/home/username/.ssh/id_rsa expect -c " set timeout -1 spawn scp -2 -i $IDENT -P 1111 /home/username/db_name.sql user@$HOST:/home/username/db_name.sql expect \"Enter passphrase for key\" send \"${PASS}\r\" expect eof "
で、これをcronに登録して回すとdumpしたファイルをサーバーBに送ってくれる。
*参考
expectコマンドをcronで使うためときのポイント | thiroyoshi.blog
シェル以外からexpectしててハマったメモ | ブログ :: Web notes.log
以上