kazumalab tech log

流行りとリラックマと嵐が大好きです。技術的ログ。

書籍 "初めてのAnsible"を購入しました。

かずま@徳島です。

帰省中であります。
さて、本日本屋に寄ってきました。

そこで見つけた本。

初めてのAnsible

初めてのAnsible


そう、初めてのAnsibleです。
この形のオライリーの本を買うのは初めてでした。

Ansibleって何なの?

Ansibleは、しばしば設定管理ツールと表現され、Chef、Puppet、Saltと同系統のものとして取り上げられます。
サーバー群の状態を何らかの形で記述し、ツールを使ってサーバーが実際にその状態にあること、すなわち適切なパッケージがインストールされ、期待通りの値、パーミッションが設定されており、適切なサービスが実行されているという状況に強制すると言ったことをいう。

こちらは本書の冒頭部分で紹介されているAnsibleの説明になります。

僕も前から複数台のサーバーを構築したり、新たに作るサーバーはどれも同じ環境なのに、毎回入れるの、面倒だなと思っていました。
そこでこのAnsibleが登場するのですね!

ちょっと読んでみた

ローカルのMac book proにVitualboxとVagrantを使ってローカルのサーバーをたてました。
その後にAnsibleでsshpingするところまでやってみました。(1章)

sudoが必要なところは

testserver | FAILED | rc=1 >>
tail: cannot open '/var/log/syslog' for reading: Permission denied

Permission deniedと返ってくるので -sをオプションでつけてあげるとsudoになるみたいですね。

2章から複数のサーバーを並列でやるとことか、実際にplaybookを書くところとかなのでこれから楽しみですね。
ハンズオン形式でやっていけるので結構ありがたいです。

あとはplaybookはymlで書いていくそうなので、あまり抵抗はなさそうです。

いきなりymlで躓いた件

ymlはタブとか自動シンタックスをOnにしてるとエラーが出るみたいですね。
ずっとSyntaxエラーが出るのでなにかな〜と思ってたらそこだった。
vimのAutoSyntaxをとるか、タブを2スペに変換してくれるのとかにしないと。

まとめ

そのうち自分のRailsの環境構築をAnsibleで書いて、Macが変わっても同じ環境が整えられるようになっておきたいぐらいです。
会社のPCではどうかわかりませんが、Ansibleを使う機会は増えそうなのでいい勉強になります。

'Text Dynamic Effect'をアセットストアにリリースしました。

かずまです。

昨年の夏ごろからアセットストアのリリースを色々目指してましたが
この度ようやくリリースすることが出来ました。

www.asset.techmatome.com
(こちらのリンクにはアフィリエイトは含まれておりません。)

何をするアセットか?

タイトルなど、文字を表示することのできるアセットです。

パーティクルでの表現

キューブを使ったピクセル表現

をメインとしています。

リアルタイムでの文字を変更

Unityの標準で使われているUGUIのTextのようにリアルタイムで文字を変更することが可能です。
さらにフォントも対応しております。

WebGLサンプル

ボクセルサンプル

Dynamic Text Effect | Voxel Text

動画

こちらの動画を見てもらえるとこんな感じか!というのがわかると思います。
ぜひ使って見てください!

Effective C#とアジャイルサムライを購入した件。

かずまです。

昨日Effective C#アジャイルサムライのKindle版を購入しました。

アジャイルサムライ

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

Effective C#

Effective C# 4.0

Effective C# 4.0

Effective C#

前から欲しかった一冊です。
Kindle版がかなり安くなってました。

まだ軽くしか読めてないですが、所見としては

  • セッターゲッターを活用しよう
  • 匿名型(LINQ)
  • GC(ガーベージコレクション)
  • using ステートメント(try catchとか)
  • デリゲート、コールバック、イベントとか
  • データのシリアル化
  • interfaceとか
  • 動的型付け

ココらへんを見とくと良さそうですね。
こうあるべきだ、みたいなのが書かれてて参考になるかも。


Effective Javaは良かったのでC#も買ってしまえーという感じですね。笑

EFFECTIVE JAVA 第2版 (The Java Series)

EFFECTIVE JAVA 第2版 (The Java Series)

これ。

UnityでC#やるとかXamarinでC#書くとかだといいかもですね。
iOSAndroidにも書き出せるし!

アジャイルサムライ

これはアジャイル開発向けの本です。
アジャイル開発とは簡単に言うと継続的にお客さんにいいものを届けよう!そのためにこうやってチームを回したり、開発したりするといいよね、っていう考えです。

一通り読みましたがうーん、実践しないと難しいかも。
けど、スタートアップとか、新規プロジェクトとか始めるひとは読むのいいかも。

あ、ちなみに壊滅的なプロジェクトにアジャイル開発入れるみたいなサンプルあったかも。。。

Mac book pro Late 2016を2ヶ月使ってみて

かずまです。

卒業が決まり、ようやく春休みです。
この春は学生最後なので、何をしようかな〜と考えて居ますが、コンパイラとか、機械学習とか、ちょっと興味あるし楽しそうだなーってことで
コンパイラを読もうとしたり、機械学習をUnityでやろうとしたりの準備をしております。

Macを買って2ヶ月が経ちました

f:id:kazumalab:20170219134517j:plain

昨年の記事でこんなの書きました。

blog.kazumalab.com

そう、Macを買ったお話です。
あれから2ヶ月新たな発見がいろいろあったり便利だったのでご紹介!

そう、ネタが今ないのです!笑

どうなのType-C

f:id:kazumalab:20170219134505j:plain

一言でいうとType-C、最高です。
というより意外と困らないというのが本音です。

これを使うとHDMIとUSB、Ethernetの問題は解決します。
ちょっとお高めですが、結構いいですね。

ただこいつを使わなくてもAppleの純正のType-Aへの変換があれば十分でした。

注意なのが、純正の変換ケーブルはUSB3.0、3.1ではないこと...。

外付けのBlue-Ray Driveも買いました。
そうするとType-Cへの変換ケーブルがついてきました!(しかもUSB3.0!)

f:id:kazumalab:20170219140502j:plain

めっちゃ便利です。

充電がはやい!

これはすごくいいな、と思ったのですが充電されるのが早い。
これもType-Cのおかげですかね。

ちなみにコンセントの部分

f:id:kazumalab:20170219140948j:plain

これはいいです。

前回までのだと、

f:id:kazumalab:20170219141126j:plain

こうなっちゃうんですよね。残念ながら。
なのでめちゃ便利になりました!

Mac to (Friend)Macができる

新型Macが2台そろえば、
友達のMacから、「充電ないから君のMacからもらうね!」
ということも出来ます。

*注意 あまりよろしくはないと思いますのでやらないように!!笑 責任は持ちません!

Mac to (Own)Macができる

自分のポートに同士に繋げば、∞ループに充電が出来ます!笑

f:id:kazumalab:20170219141852j:plain

*注意 これもよろしくないので絶対にやらないように!!責任は持ちません!

タイピングが気持ちいい

キーボードの厚みが薄くなりました。
その分タイプ音は大きくなりましたが、うちやすさ倍増です。

ずっとタイピングしていたいぐらい気持ちいいです。

気持ちがTweetに現れた瞬間!!!

なによりログインが早い

Touchバーが搭載されその横にTouch IDが搭載されています。
ログインはこれだけ!

f:id:kazumalab:20170219142434j:plain

これはかなり速くなりました。

Youtubeの広告が○○

これはあまり大きな声では言えませんがYoutubeの広告を...
f:id:kazumalab:20170219142946j:plain

あれ?Youtubeの広告動画も自由に時間を変えられる...?笑
つまり、Macを買って自分で試して見てください、ということです笑

トラックパッドが使いやすい

以前のMacでもかなり使いやすかった(Windowsの端末に比べて)のですが、
今回のMacではバージョンアップしてます。

Windowsではマウスが必要ですが、Macはいらない。ほんとに。

トラックパッドが広い

これは見ればわかりますね。
広くなった分作業しやすいです。

中心にきたときにフィードバックがある

これはアプリケーションによると思います。
Omnigraffleを使う際、よく中央に来たときに軽く固定されるUIが見受けられます。
その時にトラックパッドからもレスポンスがあります。

これは直感的にわかりやすいので便利です。

純正のアプリケーション、Pagesとかはそのレスポンスがありましたが、Illustrator 2017ではそのレスポンスはありませんでした。
残念。

support.apple.com

ほかにもこんなにたくさんある!

サウンドがよりクリアに

これは前回のMac bookでは15インチの場合はキーボードの横にありましたが13インチではありませんでした。
今回は13インチでも左右にスピーカーがあるため、聞き取りやすいです。

最後に

僕はAppleの回し者ではありませんが、
新型Mac book pro 13インチはかなり良品だと思われます。

まぁ結果としては僕にとっては良かった、というだけです笑
正直いうとAppleNVIDIAのグラボを積んでくれたら一番いいのになぁとは思います。

なのでまだまだVRするためにMacを買うという時代はこなさそうです。

UnityでOculus Touchを使うメモ ~銃を撃つ編~

かずまです。

昨日の記事ではOculus Touchでものを掴むところを実装しました。

blog.kazumalab.com

今日は銃を扱うところを実装していきます。

銃の設定

www.asset.techmatome.com

今回はこのアセットをつかいました。


f:id:kazumalab:20170217231856p:plain

持つ部分にColliderを付けます。
ちなみにもモデルの方ではなくて、一つ上の親の方につけます。

Rigidbodyも付けます。

f:id:kazumalab:20170217232337p:plain

こんな感じ。
打った時の音も入れたいのでAudiosourceのコンポーネントも付けます。
ちなみにTouchを振動させる場合はAudioClipが必要みたいです。


f:id:kazumalab:20170217233021p:plain

最後にBulletPointという空のオブジェクトを子オブジェクトとして設定します。
位置は銃の先端にします。

Gun.csを作成

銃を撃つためのスクリプトを書いていきます。
このGun.csを先ほどColliderを付けた銃のモデルにつけます。

OVRInputはOculus Touchの右左によって違うので

if (holdHand.whichController == OVRInput.Controller.LTouch) {
   hapticsChannel = OVRHaptics.LeftChannel;
   whichFinger = OVRInput.RawButton.LIndexTrigger;
}
if (holdHand.whichController == OVRInput.Controller.RTouch) {
     hapticsChannel = OVRHaptics.RightChannel;
     whichFinger = OVRInput.RawButton.RIndexTrigger;
}

昨日のコードでenumで設定したRTouchか、LTouchかをOVRHandからとってきます。
Triggerはものを持つ部分でつかいました。
今回銃を持ったのち、人差し指で発射します。

人差し指は

OVRInput.RawButton.RIndexTrigger

OVRInput.RawButton.LIndexTrigger

で取れます。

これを掴んだときにどっちの手でつかんだか、というのをgetHandメソッド内でやります。

弾痕を作る

gametukurikata.com
ここでは弾痕の実装を参考にします。
ありがたい。絵も提供されています。

Bullet.csをつくる

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour {

	public GameObject bullet_hit;

	// Use this for initialization
	void Start () {

		RaycastHit hit;
		if(Physics.Raycast(transform.position, transform.forward * 100f, out hit)) {
			GameObject obj = Instantiate (bullet_hit, hit.point - transform.root.forward * 0.001f, Quaternion.FromToRotation(Vector3.forward, hit.normal));
			obj.transform.parent = hit.collider.transform;
		}
	}

	private void OnCollisionEnter (Collision col) {
		Destroy (this.gameObject);
	}
	
	// Update is called once per frame
	void Update () {
		GetComponent<Rigidbody> ().velocity = transform.forward * 10f;
	}
}

Bulletオブジェクトをつくる

f:id:kazumalab:20170217234650p:plain

簡単な感じでそれっぽく作ります。
これにBullet.csをアタッチします。

たぶんこれでOKです。
ほとんどVR要素ないですが。笑

デモ

できました。