脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

C#でファイルの読み書きの方法

C#

Read StreamWriter writer = new StreamWriter(path); writer.Write(value); writer.Close(); pathは保存したいファイルのパス Unityとかだと『Application.streamingAssetsPath + "/" + filename』みたいな valueは保存したいデータ Write StreamReader rea…

EasyMovieTextureで動画をポーズ/再開させる

前回のポストの続きになります portaltan.hatenablog.com前回は起動したら単純に一回だけ再生するというシンプルすぎるアプリでしたが、今回は自前のスクリプトを貼りつけて、ユーザの入力に応じてポーズなどの処理をできるようにしましょう 1. デフォルトの…

EasyMovieTextureでGearVR用の360動画アプリを作成する

Unityには標準でMovieTextureという動画を再生する機能がありますが、この機能はAndroidには対応していないので、GearVRでは利用できません。UnityでGearVRの360動画アプリを作成する方法はいくつかあるようですが、現在はEasyMovieTextureというassetを利用…

Oculus Rift DK2からCV1に変えたらUnityで認識しなくなった([VRDevice] Initialization of device oculus failed)

問題 Oculus Rift DK2で今まで開発をしていたのですが、そろそろCV1に変えようということで以下の公式サイトからインストーラをダウンロードしてセットアップは無事完了したのですが、UnityがCV1を認識してくれなくなりました。 Oculus Rift Setup | Oculus…

ansible実行時のオプションTips

特定のサーバにのみ実行したい場合 -l <実行したいhost> 例 ansible-playbook playbook_example.yml -l 192.168.33.11 特定のHostsグループのみに実行したい場合 -l <実行したいhostグループ> 例 hostsファイル [web] 192.168.11.11 192.168.11.12 [storage]…

grafanaでAPIを使ってCUIからダッシュボードを作成する方法

CUIから 1. API keyの発行 grafanaのGUIからAPI keyを発行します ユーザ名を入力し、RoleをAdminに変更してAddボタンを押します APIのKeyが表示されるのでメモしておきます 2. jsonファイルの作成 ダッシュボードの設定ファイルをjsonで作成します 名前はな…

uGUIでテキストにアウトラインをつける方法

文字に枠をつける方法です 1. アウトライン項目の追加 アウトラインをつけたいテキストを選択した状態でツールバーから 「Component」 > 「UI」> 「Effects」 > 「Outline」を選択する 2. アウトラインの設定 インスペクターにアウトラインの項目が出てくる…

Unityのボタンのenabled/setActive/interactableの違い

UnityのuGUIを作成したときに、条件に応じてスクリプトから選択出来なくしたり、消したりしたい時が出てくると思いますが、その際に使う関数について 今回確認するのは Button.enabled = true/false; Button.interactable = true/false; GameObject.setActiv…

telegrafで収集したメトリクスをInfluxDBに保存し、Grafanaで表示させる方法

influxDB 時系列データベース reference InfluxData | Documentation | Installation How to Install curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add - source /etc/lsb-release echo "deb https://repos.influxdata.com/${DISTRIB…

UnityでOculusなどのHMDの向いてる方向を取得する方法

HMDの向いている方向を取得する方法です Oculus Riftで確認しましたが、GearVRでも同じ処理で取得できるはずです 情報の取得 using UnityEngine; using System.Collections; using UnityEngine.VR; // enable to get HMD direction public class Direction :…

UnityでXboxコントローラの3Dスティックではなく十字キーで移動させる場合

Unityでボタンを複数作成するとデフォルトでXboxコントローラの左スティックで移動できるようになりますが、左スティックを無効にして十字キーで動かしたい場合の方法です。 手順 1. Inputマネージャーを開く Edit > Project Setting > Input 2. Input マネ…

Unityでボタンの表示を文字じゃなくて画像にする方法

まずは普通にUnityを起動してHierarchyから「UI > Button」を選択すると以下のような感じになると思います。 この文字ベースのボタンを画像ベースのボタンに変更します 1. RawImageオブジェクトの作成 RawImageオブジェクトが作成されると以下のように真っ白…

gangliaでGPUの情報を監視しようとしてえらい苦労した話

gangliaでGPGPUサーバのデータを監視しようとしたのですが、はまりポイントが多数あって苦労しました Gangliaのインストール 1. Master server ### install packages sudo apt-get install ganglia-monitor rrdtool gmetad ganglia-webfrontend ps -eaf | eg…

Ubuntu14.04でApacheがphpを使えない場合

PHPがインストールされていない可能性があるのでinstallしてapacheを再起動します php install & apache restart sudo apt-get install php5 libapache2-mod-php5 sudo service apache2 restart まだおかしい場合 ログ確認 # cd /var/log/apache2 # tail -f …

Unityでコントローラを利用したセレクト画面の作り方2(Submit取得の改良)

前回 前回のポストではクリック情報を取得するために、 1. ButtonFunction.csスクリプトを作成 using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class ButtonFunction : MonoBehaviour { public void StringArgFun…

Unityでコントローラを利用したセレクト画面の作り方

Unityでシーンやキャラクターの選択画面を作ろうと思ったのですが、タップやVRの場合の視線を利用する方法は比較的ドキュメントが多いのですが、コントローラ(Gamepad)を利用した時の方法を探すのに少し手間取ったので、メモ代わりに手順を残しておきたいと…

HTC viveをベースステーション1台で起動

VR

HTC viveは通常 HMD コントローラ(右) コントローラ(左) ベースステーション(b) ベースステーション(c) の5つのデバイスの設定が必要だが、一応以下のみっつだけでも動くらしい HMD コントローラ ベースステーション Steam VRの表示は以下のようになる この…

HTC VIVE初期設定

VR

HTC Vive初期設定の方法です ですが実はViveはInstallガイドがすごい丁寧なので、雰囲気だけさらっと紹介します setupツールのダウンロード 以下の公式HPからsetupツールをダウンロードして実行します http://www.htcvive.com/us/setup/ setup 起動するとま…

Ansible playbook tips

モジュール関係 get_url wgetのようにURLからファイルをダウンロードする - hosts: all tasks: - name: download get_url: url: # downloadしたいURL dest: # 配置先(/usr/local/src/somepackageとか) validate_certs: no # 認証チェックでひっかかる&信頼…

Ansibleの設定方法

AnsibleはChefのようなDeployツールで以下のような特徴があります agent less 対象のサーバにAnsibleの命令を受け取るAgentをインストールする必要がない interactive mode レシピファイル内にすべて記述せずに対話的に設定をしていくことが可能らしい GUI w…

パスワード入力なしでssh接続する方法②(.ssh/config)

それぞれのサーバでやること アクセス先のサーバでやること 秘密鍵と公開鍵の作成 公開鍵を認証リストに加える アクセス元サーバに秘密鍵を渡す アクセス元サーバ アクセス先サーバから秘密鍵を受け取る .ssh/configに秘密鍵を指定する 実際の手順 アクセス…

パスワード入力なしでssh接続する方法①(ssh-agent)

それぞれのサーバでやること アクセス先のサーバでやること 秘密鍵と公開鍵の作成 公開鍵を認証リストに加える アクセス元サーバに秘密鍵を渡す アクセス元サーバ アクセス先サーバから秘密鍵を受け取る ssh-agentの起動 秘密鍵をagentに登録する 実際の手順…

Thetaで撮影した360度動画をUnityを使ってOculus Riftで再生する

Thetaで撮影した360度動画をUnityで再生する方法です Unityで360度動画を再生するには、以下の3つのコンポーネントが必要になります ① 360度mp4動画(equireqtangular形式) ② 上記の 360度動画(①)を張り付けるTexture Material ③ 上記のTexture Material(②…

UnityでObjectのPivotを変更する

Unityでオブジェクトの中心というか重心というかPivotを変更する方法です これをするとなにがいいかというと、オブジェクトをRotationするときに通常だとオブジェクトの中心を起点にしてしか回転することができませんが、回転の起点を任意に変更することがで…

UnityでGearVRアプリを作成する際の初期設定

UnityでGearVRアプリを作成する際の初期設定の手順です はじめてAndoridアプリを作成するときのみ必要な作業 1. Library ダウンロード JDKのダウンロード Java SE - Downloads | Oracle Technology Network | Oracle Android Studioのダウンロード Download …

NagiosからGangliaのMetricsを利用する方法

NagiosもGangliaも単体でモニタリングを行うことができますが、両方を役割毎に使い分けることも可能です。 その場合Gangliaでメトリクス情報を収集し、Nagiosでアラート監視というパターンが多いようです。 1. pluginの準備 gangliaのリポジトリにベースとな…

Ubuntu14.04にNagiosをインストールする手順

Ubuntu14.04にNagiosをinstallする手順です以下のサイトを参考にさせて頂きました Ubuntu 14.04 LTS : Nagios : インストール : Server World 手順 1. nagiosのインストール apt-get install nagios3 nagios-plugins-basic vi /etc/nagios3/nagios.cfg ====…

Unityで作成したGearVRのAndroidアプリを実機で検証するときの手順

1. DeviceIDの取得 cd ${Android_SDK_Directory} cd sdk/platform-tools adb devices List of devices attached ********* device 現在PCに接続中のAndoridデバイスのdeviceIDが表示されます *****にあたるところがdeviceIDです 2. DeviceIDをOculus側へ登録…

Unityの外部コントローラ入力の取得

Unityで外部コントローラの入力を取得する方法です ボタン入力 OVRInput.GetUp(OVRInput.Button.One) # Aボタン OVRInput.GetUp(OVRInput.Button.Two) # Xボタン OVRInput.GetUp(OVRInput.Button.Three) # Yボタン OVRInput.GetUp(OVRInput.Button.Four) # B…

gangliaで任意のグラフを作成する

gangliaはデフォルトで色々なデータが取れますが、情報をまとめたかったりカスタマイズしたグラフを作成したい時は、Aggregate Graphs機能を使うか、 /var/lib/ganglia-web/conf以下に設定ファイルを置いてやると自動で作成されます ファイルを置く場所 /var…

UnityでAndroidアプリのBuild時に"Unable to convert classes into dex format. See the Console for details"が出た場合

Unityでandoridアプリをbuildする時に以下のようエラーが出てBuildが失敗することがあります。 Unable to convert classes into dex format. See the Console for details これだけでは原因はわかりませんが、コンソールの方により詳細なエラーメッセージが…

gangliaでmetricsを追加して監視項目を増やす方法

gangliaに監視項目を増やす方法はいくつかありますが、今回はpython moduleを使用する方法を載せます 手順 1. クライアントサーバの設定 gmond.confの編集 sudo vi /etc/ganglia/gmond.conf ==============================================================…

gangliaの挙動がおかしいときのチェック項目

gangliaの挙動がおかしいときは基本的に以下の三つの原因にわけられると思います。 ①クライアントからMetricsデータが送られていない ②マスター側でデータを受け取れていない ③マスター側でデータは受け取れているが表示ができていない以下解決方法等を挙げ…

ubuntu14.04でgangliaをinstallしたときの各関連ファイルのPATH

master サーバ gmetad.conf /etc/ganglia/gmetad.conf graph.d(masterサーバ) /usr/share/ganglia-webfrontend/graph.d/ viewファイル /usr/share/ganglia-webfrontend/template/default/ Optional vie /var/lib/ganglia-web/conf rrd /var/lib/ganglia/rrds…

Oculus Rift DK2 のWindows接続確認

VR

1. Connect Oculus まずはOculusをPCに接続します Oculusの開発環境でサポートされているのはデスクトップのWindowsのみで、現在はMacやLinux、ラップトップはサポート対象外となっています 接続の際にはUSBとHDMIケーブルを接続する必要がありますが、HDMI…

gangliaをubuntu14.04にinstallする方法

muninに引き続き、gangliaをインストールする手順をのせます 環境 Gmond(Ganglia monitoring daemon) gangliaの監視ノード 監視したいサーバすべてにinstallする マスターノードに情報を送る 今回は以下の二つ 192.168.33.11 192.168.33.12 Gmetad(Ganglia m…

muninのプラグインを自作する方法

muninのプラグインを自作する方法です。 流れとしては、①プラグインを作成して、②シムリンクを貼って有効化する、という流れになります 今回はテストとして、ログイン中のプロセス数を監視するプラグインを作成します 1. プラグインの作成 muninのプラグイン…

Windowsのブラウザから踏み台サーバを介してwebサーバのapacheにアクセスする方法(sshポートフォワーディング)

踏み台サーバ経由でしかアクセスできないクローズドなwebサーバにWindowsのブラウザ等からアクセスする方法です。 環境 クライアント(ローカル) Windows7 サーバ(リモート) 踏み台サーバ webサーバ(クローズド) 方法 Linuxやmacからはコマンドひとつで設…

Windows7 英語OS環境でブラウザ上に表示される漢字がなんかおかしいとき

Windows7で英語OS環境でChrome等のブラウザを使っていると、日本語の漢字がなんかおかしく表示されます。 もちろん読めないことはないんですが違和感がある・・・ 治す方法は、Chromeの場合 Setting > Show advance setting > Languages > Language and Inpu…

Ubuntu14.04にmuninをインストールする(複数台構成)

前回はお試しとして一つのサーバにmunin-nodeもmunin serverも一緒にインストールしましたが、実際にはmunin-nodeは複数あると思いますし、monitoringのweb serverは別にサーバを用意することが普通です。 今回は監視サーバ1台に監視対象サーバ2台の場合の設…

Ubuntu14.04にmuninをインストールする(ローカル環境)

muninがどんなものなのかテストとしてsingle serverにインストールしてみる手順です 環境 OS: Ubuntu 14.04 LTS 構築方法: Vagrant 手順 1. Apache install apt-get update apt-get install apache2 apt-get install apache2-utils apache2 -v Server versio…

[deep learning] caffeとCIFAR-10を使って画像判別テスト(詳細)

昨日のポストの詳細版です。 portaltan.hatenablog.com こちらではcifarが用意してくれているscriptで一気にやってくれているところがおおかったので、そこらへんをひとつひとつのコマンドにわけて実行していきます。 また、今回は自分のhomeディレクトリで…

[deep learning] caffeとCIFAR-10を使って画像判別テスト

こちらのAITC様のスライドに従って画像の判別テストをしてみました http://www.slideshare.net/yasuyukisugai/deep-learningcaffe 環境 CUDA 7.5 Caffe 1.0.0rc3 手順 1. 学習用イメージのダウンロード CIFAR-10は10個のカテゴリーに分類された画像集で、画…

libcudart.so.7.0: cannot open shared object file: No such file or directorが出てcaffeが動かないとき

前は動いてたのに以下みたいなエラーが出てcaffeが動かないときはCUDAのライブラリのPATHが外れている可能性が高いです vi ~/.bashrc ### add below line export CUDA_HOME="/usr/local/cuda-7.5" # adjust for your CUDA env export PATH=$PATH:$CUDA_HOME …

CaffeをUbuntu14.04にインストールする

caffe caffeは画像に特化したDeep learningのためのフレームワークで、GPUを使った高速な学習が可能である アプリケーション開発を行いやすくするPythonインターフェイスが用意されており、公式のチュートリアルや学習済みモデルデータも充実している 特徴 …

Caffeインストール中に『/usr/bin/ld: cannot find -lcblas』とか出てきたら

caffeを以下公式の手順に従ってインストールしていたところ以下のようなエラーが出てきて途中でコンパイルが止まってしまった /usr/bin/ld: cannot find -lcblas /usr/bin/ld: cannot find -latlas 調べてみたところlibatlas-base-devをインストールすれば解…

モバイル・スパコンJETSON tk1にCUDAをinstallする方法

NVIDIAのJETSON tk1にCUDAをinstallする方法です 手順 CUDA-6.0をデフォルトのubuntu14.04にinstallします wget http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda-repo-l4t-r19.2_6.0-42_armhf.deb sudo dpkg -i cuda-repo-l4t-r…

追加したディスクを認識させて利用できるように設定する方法

HDDの容量が足りなくなってディスクを追加したはいいものの、認識されなくて使えない場合にやった解決法です 1. ディスク追加 追加前 # cat /proc/scsi/scsi Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: VMware Model: Virtual disk Rev: 1.0 Type: Dir…

mac book airをトリプルディスプレイ化する

mac book airをトリプルディスプレイ化したときの構成です 必要なもの ディスプレイ2枚 VGAケーブル2本 USB-RGB2 USB-RGB2【税込】 I/Oデータ USB 2.0対応 マルチディスプレイアダプタ (最大…価格:4,670円(税込、送料込) Mac MiniDisplayPort VGA変換アダ…

gitのcommit時にユーザ名とアドレスを指定する方法

Git

記法 $ git commit --author="name <address@domain>" 例 $ git commit --author="nou ziru <foo@bar.com>" $ git log commit **************************************** Author: nou ziru <foo@bar.com> Date: Wed Jan 20 17:47:21 2016 +0900</foo@bar.com></foo@bar.com></address@domain>