2018-01-01から1年間の記事一覧

引数の多い関数と表現と設計

引数が多い関数は悪、リファクタリングするべきのような言説を見て引っかかったので、メモ程度に書きとどめておきます。 引数の多い関数は全く悪くない 世の中には引数の多い関数は見にくいので悪!構造体にするなどして減らすべき!と言う意見がありますが…

Unity の iOS ビルド時に Settings.bundle を組み込む

Unity で iOS アプリを作るとき、iOS の設定に設定画面を追加することができる。 こういうの。 アプリ上で設定画面を作ってもいいが、簡単なテスト用アプリや、広く公開しないアプリなら、こっちで設定しまったほうが、バグも出ないし楽である。 iOS の設定…

Unity の IEnumerator を返すメソッドの override

Unity には StartCoroutine というメソッドがあり、これは IEnumerator を引数にとって、非同期実行(別スレッドではない)ができるすごいやつである。 詳しくは公式サイト これは一見魔法のように動作するが、その実仕組みはとても単純で、やっていることは…

Macアプリの自動起動

展示とかでアプリの自動起動・終了を設定したいときは、launchd でやります。 ユーザー設定からぽちぽちもできるけど、launchdのほうが一気に設定とかできて便利。 1. 実行スクリプトを用意する Macアプリを起動するならこんな感じ startup.command open /Ap…

最小二乗法が使えると人生が捗る

最小二乗法が使えると人生が捗る!! という数式があったとき( は行列、 はベクトル) は擬似逆行列 を使って、 で表せる。 なぜかはよくわからないけど、これで解を求めるといい感じに最小二乗法っぽくなっている。もっと具体的な例をあげる。 ある長さ2の…

【ポエム】演技が苦手

昔からなのですが、人が何かを演じている姿というのが苦手です。共感性羞恥の亜種と言うのでしょうか、ドラマや映画で、人が大げさな演技をしているのを見るのが、非常に苦手なのです。何か驚いたときに、目を見開いて「わあ!」と声を上げたりだとか、怒り…

リズと青い鳥の

www.youtube.com GWの最終日にリズと青い鳥という映画を見たのですが、これが死ぬほどよかった! 僕はアニメ映画は結構見るのですが、ここまで好き好きの好き状態になるのは何年振りか。 ただ、人を選ぶ気がします。 感想文を書こうと思ったのですが、何を書…

【宇宙よりも遠い場所】なぜめぐっちゃんは赦され、日向のチームメイトは赦されないのか

『宇宙よりも遠い場所』を全話見て、練られたプロットとキャラクター、技巧的な演出に感銘を受けました。 ここ数年で見たアニメ作品の中でも、トップに入ると思います。 見ていない方はプライムビデオとかで見られるので全話見てください。 www.amazon.co.jp…

XXXManager という名前は本当に良くない

XXXManager という名前は良くない。ということは、僕が言うまでもなく過去にたくさんの人が指摘しています。 『名前が漠然としているから』と言うのが大きな理由なのですが、実際に開発をしていると、この手の役割をクラスを作りたくなることは多く、それに…

Electron でファイルを保存するパターン

意外と簡単に書けるので、面倒くさがらずに書くとすぐです。 レンダラ側 document.getElementById('saveButton').addEventListener('click', () => { ipcRenderer.send('save-state', JSON.stringify(state)); }); メイン側 ipcMain.on('save-state', (event…

最小の Unity プロジェクト

Unity はプロジェクトを構成する要素が意外と少ないです。そもそも中核となるプロジェクトファイルのようなものがない。 Unity 2017 では、新規プロジェクトを作成すると次のようなディレクトリが作成されます。 ├Assets/ ├Library/ │└いろんなふぁいる ├Pro…

Unity の MonoBehaviour と Coroutine

やってみて当たり前だと気づいたのですが、StartCoroutine を使うには、MonoBehaviour を継承している必要があります。 つまり、これはダメ public class MyAwesomeClass { void BestMethodEver() { StartCoroutine(SomeCoroutine()); } } どうしても使いた…

Unity のスクリプトの実行順を設定する。

Unity では、MonoBehaviour に設定した Update や LateUpdate は順不同で呼び出される。 これらの順番は、メニューの [Edit] → [Project Settings] → [Script Execution Order] を開き、各スクリプトの優先順位を数値で指定することで、制御することが出来る…

Google Apps Script とロック

恐ろしいことに Google Apps Script(以降 GAS)は並列で実行される。普段 JS を書いていると意識しないが、並列実行ほどプログラムにおいて恐ろしいものはない。 ロックは、以下のような関数で取得できる。 var documentLock = LockService.getDocumentLock…

Unity の meta ファイルと guid

本日は Unity のパッケージ読み込みで一日を潰してしまいました。 Unity のプロジェクト上で扱われるリソースは Asset と呼ばれ、 実ファイルと meta ファイルの組で管理されます。 meta ファイルは実ファイルに付加的な情報を与えるものです。 guid やイン…

誰も読まないブログを書く意味

僕は日記というものをつけたことがないし、 社内で日報を続けようとして何度も挫折している人間です。 かく言うこのブログも、以前に毎日書くと宣言して、挫折しているわけですから、 今回もいつまで続くかわからないんですけど、 まあ何事もやらないよりや…

ブログを書くぞ(決意)

最近は社内の Slack で、もっぱら分報と称し、気づいたことや思ったことを書き留めていたのですが、 やはり、狭いコミュニティで情報を発信するのは、それほど効果的でないし、 せっかく人の目に留まるチャンスがあるのに、それをみすみすと逃すのは、もった…