うさがにっき

読書感想文とプログラムのこと書いてきます

20170723_週報

概要

今週の週報

詳細

技術

記事

Windows10上にTensorFlow_GPU環境構築 - Qiita

やっていること

今週中にやりたかったが長引いている・・・

PC

Surface Pro買った、今のところ便利
プレゼンで一度使ってみたい

読書

今週にシンギュラリティは近い読み終える予定だったが未だ4割程度、かなり内容が濃いので集中して来週中に読みおえたい

感想

  • しばらく生活のアウトプットを明確にしていなかったので振り返り的なものもできておらず良くなかった
  • 明確にしたことにより、思っている以上に進めていないということが把握できた
  • 同時に複数本はあってないことがわかったのでインプットは期間で絞って、パラレルには進めない

来週予定

  • 読書時間をきちんと確保して、読書効率を上げる、シンギュラリティは近い読み終えたい、できればアウトプットまで
  • Daydream 360動画プレイヤを作って詳細ブログにまとめる
広告を非表示にする

20170620

概要

週報
いきなりさぼってしまったテヘペロ

詳細

Qiita

  • 細かい記事はQiitaにまとめることにした qiita.com

読書

バーチャルリアリティ学

バーチャルリアリティ学

  • ちまちまよんでる

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

  • 読み終えた
  • kotlinの文法から簡単なAndroidでの導入方法RxAndroidなどのとの簡単な使い方などスタートブックにという名にふさわしい入門書
  • 既存アプリ見直しつつここら辺見てみる www.meetup.com

ザ・ゴール ― 企業の究極の目的とは何か

ザ・ゴール ― 企業の究極の目的とは何か

  • ちまちまよんでる

VRコンテンツ開発ガイド 2017

VRコンテンツ開発ガイド 2017

  • ちまちまよんでる
  • まだ読み始めた感じだけど良い感じ

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

  • 仕事の都合上読んでる
  • 想像以上に入門書だな??

仕事

イベント

  • Google Cloud Nextでた
  • Jamboardよかった

## ゲーム - 崩壊3rd面白いぞ 美少女・萌え系ゲーム/アプリ「崩壊3rd」公式サイト

広告を非表示にする

20170528

概要

週報を書いてみることにした
週にやったこと気になったことなどをまとめる

詳細

イベント

decode

de:code (decode) 2017 | 日本マイクロソフトの開発者/アーキテクト/IT Pro 向けイベント - Microsoft Events & Seminars

  • キップマンの話が聞けて嬉しかった
  • MicrosoftもAIに対してかなり熱い想いを持っているのを感じた
  • 日本でHoloLens売れすぎってのが面白かった

読んでる本

バーチャルリアリティ学

バーチャルリアリティ学

人間が現実を認識するところを体系的に学ぶことによりバーチャルリアリティを学術的にまとめた本
なかなか読み進められないが面白い booth.pm Unity力をつけていく
Kotlinスタートブック

Kotlinスタートブック

Kotlinおもしろい

仕事

  • Kotlinで遊んでいる
  • UnityにおけるMVPをディスカッション
  • VRサービスについて考えている

いろいろ

広告を非表示にする

Kotlinやってみた(クラス関係編)

objectの生成

fun main(args: Array<String>) {
    var bucket = object {
        val capacity: Int = 5
        var quantity: Int = 0
        
        fun fill() {
            quantity = capacity
        }
        
        fun drainAway() {
            quantity = 0
        }
        
        fun printQuantity() {
            println(quantity)
        }
    }
    
    bucket.printQuantity()
}

interface

interface定義

interface Bucket {
    fun fill()
    fun drainAway()
    fun pourTo(that: Bucket)
    
    fun getCapacity(): Int
    fun getQuantity(): Int
    fun setQuantity(quantity: Int)
}

interface実装

fun main(args: Array<String>) {
    fun createBucket(capacity: Int): Bucket = object : Bucket {
        var _quantit: Int = 0
        
        override fun fill() {
            setQuantity(getCapacity())    
        }
    }

    ・・・
}

プロパティ

interfaceにプロパティを持たせることができる

interface Bucket {
    fun fill()
    fun drainAway()
    fun pourTo(that: Bucket)

    // プロパティ
    val capacity: Int
    var quantity: Int
}

interfaceを使ったプロパティの実装

fun main(args: Array<String>) {
    fun createBucket(_capacity: Int): Bucket = object : Bucket {
        // 
        override val capacity = _capacity
        override var quantity: Int = 0
        
        ・・・
    }
}

class

// コンストラクタをclass作成と同時に指定
class BucketImpl(_capacity: Int): Bucket {
    override val capacity = _capacity
    override var quantity: Int = 0
    
    override fun fill() {
        quantity = capacity
    }
    
    ・・・
}

classのインスタンス

newはいらない

fun main(args: Array<String>) {
    val bucketImpl: BucketImpl = BucketImpl(10)
}

メソッド

class Greeter {
    fun greet(name: String) {
        println("Hello $name!")
    }
}

fun main(args: Array<String>) {
    val greeter = Greeter()
    greeter.greet("kotlin")
}

プロパティ

class Person {
    var name: String = ""
    var age: Int = 0
}

fun main(args: Array<String>) {
    val hanako = Person()
    
    println(hanako.name)
    println(hanako.age)
}

コンストラクタ

// パラメータによってコンストラクタ指定
class Rational(val numerator: Int, val denominator: Int) {
    // セカンダリコンストラクタ
    constructor(numerator: Int): this(numerator, 1)
}

イニシャライザ

インスタンス生成の際の処理を定義

class Rational(val numerator: Int, val denominator: Int = 1) {
    init {
        // 初期化時、条件に合わなければ例外スロー
        require(denominator != 0)
    }
}

継承

継承元にはopenをつける、overrideするのにはoverrideってかく
openをつけないとoverrideできない

open class Person(open val name: String) {
    open fun introductMyself() {
        println("I am $name.")
    }
}

class Student(override val name: String, val id: Long) : Person(name){
    override fun introductMyself() {
        println("I am $name(id=$id)")
        // 継承元呼び出し
        super.introductMyself()
    }
}

今の所の感想

オブジェクト指向の基本的な考え方はJavaと同じ感じでだいぶわかりやすい

Kotlinスタートブック

Kotlinスタートブック

ScriptからGameObject作成

空のGameObject作成

// make blake GameObject
GameObject go = new GameObject("GameObject");

作成と同時にComponent attach

// attach Comonent
GameObject go2 = new GameObject("GameObject", typeof(Rigidbody));

attachしたComponent取得

// get attaching Component
Rigidbody rigd = new GameObject("GameObject", typeof(Rigidbody)).GetComponent<Rigidbody>();
Rigidbody rigd2 = new GameObject ("GameObject").AddComponent<Rigidbody> ();

attachしたと同時にHideFlg設定

// atttach Comonent and setting hideFlg(editor only)
// https://docs.unity3d.com/ScriptReference/EditorUtility.CreateGameObjectWithHideFlags.html
// https://docs.unity3d.com/ScriptReference/HideFlags.html
EditorUtility.CreateGameObjectWithHideFlags("GameObject", HideFlags.HideAndDontSave, typeof(Rigidbody));

プリミティブなGameObject作成

// make primitive gameobject
GameObject primitivego = GameObject.CreatePrimitive(PrimitiveType.Cube);

GameObject複製

GameObject copygo = (GameObject)Instantiate(go, transform.position, transform.rotation);

prefabから複製

// copy gameobject from prefab
GameObject pgo = (GameObject)Instantiate(prefab, transform.position, transform.rotation);

unity-bu.booth.pm

Kotlinためしてみる

概要

Android Testing Bootcampで触発されたので、赤べこ本を読んでKotlin勉強する

詳細

️# 開発環境

関数

文法などはなんとなくわかったので関数についてまとめておく

関数定義

fun succ(i : Int): Int = i + 1;
fun sum(ints: Array<Int>): Int {
    var sum = 0
    for(i in ints) {
        sum += i
    }
    return sum
}

関数利用例

fun succ(i : Int): Int = i + 1;

fun main(args: Array<String>) {
    println(succ(31))
}

名前付き引数とデフォルト引数

fun sub(minuend: Int, subtrahend: Int) : Int = minuend - subtrahend
fun hello(name: String = "World"): String = "Hello, $name"

可変長引数

可変長引数は一つの関数につき、一つしか持てない

fun sum(vararg ints: Int): Int {
    var sum = 0
    for (i in ints) {
        sum += i
    }
    return sum
}

fun main(args: Array<String>) {
    println(sum(1,2,3))
    // 配列を渡す場合は*を頭につける
    println(sum(*intArrayOf(1,2,3)))
}

第一級オブジェクトとしての関数

関数オブジェクト

関数を関数オブジェクトとして扱える

fun square(i: Int): Int = i * i

fun main(args: Array<String>) {
    val functionObject = ::square
    println(functionObject(5))
}
高階関数

関数オブジェクトを関数の引数とかで使う

// 引数Charで返り値Booleanの関数が引数になる関数
fun first(str: String, predicate: (Char) -> Boolean): Int {
    tailrec fun go(str: String, index: Int): Int =
        when {
            str.isEmpty() -> -1
            predicate(str.first()) -> index
            else -> go(str.drop(1), index + 1)
        }
    
    
    return go(str, 0)
}
ラムダ式

関数オブジェクトを直接生成

fun main(args: Array<String>) {
    val square: (Int) -> Int = {
        i: Int -> i * i
    }
    
    println(square(2))
}

ラムダ式の引数が1つのときに限り、暗黙の変数itを利用することができる

fun main(args: Array<String>) {
    val square: (Int) -> Int = {
        it * it
    }
    
    println(square(2))
}
ラムダ式高階関数
fun firstWhiteSpace(str: String): Int {
    val isWhiteSpace: (Char) -> Boolean = {
        it.isWhitespace()
    }
    return first(str, isWhiteSpace)
}

まだまだ使いこなせている感がない、慣れていく

Kotlinスタートブック

Kotlinスタートブック

広告を非表示にする

Unity2017.1 新機能触ってみる

概要

Unity2017.1の新機能で触りやすい機能からさわっていく

詳細

  • .Net4.6対応 f:id:tiro105:20170511110445p:plain BuildSettings > Configuration > Scripting Runtime Versionから変更 Android, iOSで項目確認 .Net4.6でできることは以下を確認 qiita.com

  • Scriptだけのビルド BuildSettings > DevelopmentBuildにチェックを入れてからScript Only Buildにチェック f:id:tiro105:20170511110817p:plain

  • Consoleに出力するログ変更 ConsoleView > ConnectedPlayerから変更、接続したAndroidのログとか観れる様子 f:id:tiro105:20170511110917p:plain

  • ProfilerにUI項目追加 Window > Profilerを表示して、下の方に追加されてる f:id:tiro105:20170511111044p:plain

今後

TimeLineとかSpriteMaskとかも触っていきたい

参考

tsubakit1.hateblo.jp