diary

日記です

IL2CPP最適化されたコードに必要なこと

この記事は第二のドワンゴ Advent Calendar 2017の記事です。 qiita.com 2013年までドワンゴにいたtrapezoidです。今は居ません。 今はモバイルゲームの基盤開発エンジニアをしています。 猛烈に忘れていたので、今日はUnityにおいて手軽に少しでもパフォー…

Unity 5.5以前ではGenericsクラスのコンストラクタのデフォルト値としてconstを参照してはいけない

TL;DR Unity 5.5以前(monoの更新前)ではGenericsクラスのコンストラクタのデフォルト値としてconstを参照してはいけない メンバメソッドの名前解決ができなくなる なぜかフィールドは名前解決ができる Unity 5.5以降にすることですべては解決する 詳しく 以…

UnityでEditor拡張から高速にC#コードを書いたり消したりする時のお作法

TL;DR 書いてる最中からコンパイルされてEditor拡張が走ってるアセンブリが猛然と破棄されたりする EditorApplication.LockReloadAssemblies, EditorApplication.UnlockReloadAssembliesで囲め AssetDatabase.StartAssetEditing, AssetDatabase.StopAssetEdi…

IL2CPPに優しく、かつタイプセーフにDictionary<TKey,TValue>を使う

前提 UnityのIL2CPPを使ったビルドにおいて、Dictionary<TKey, TValue>を使うとすごい勢いでバイナリサイズが大きくなっていく。 iOSにおいてはUniversalBinaryで出力を余儀なくされることが多いのと、実行バイナリがストア上では暗号化される問題もあり、ひとつの組み合わ</tkey,>…

コマンドラインから使える理想のC#コードフォーマッタがほしいという気持ち

この記事は Unity 2 Advent Calendar 2015 9日目の記事です 概要 はじめましての方ははじめまして。ヒカリエのあたりでリアクティブUnityおじさんをしているtrapezoidです。Haruto Otakeとも言います。よろしくお願いいたします。 この記事は、OSXでUnityを…

Unity 5.3のCustomYieldInstructionの話

前提 Unityでは古来よりフレームを跨ぐ処理にCoroutineと呼ばれる仕組みが用いられている。 実態としてはC#に備わっているyield構文による、値の列挙を目的としたコルーチンの生成機能を利用している形になる。 仕組みとしては、上記構文を利用して生成したI…

MDR-1ABT買った

わたしの、最高のガジェット - diarytrapezoid.hatenablog.com この記事で紹介したMDR-1RBTMK2の正当後継機、MDR-1ABTが先日発売されたので、発売日に早速購入してきた。 これでこのシリーズは3世代全部買ってる事になる。 装着感の改良 1RBTMK2よりもイヤー…

空中マウス買った

Amazon.co.jp: T2エアマウス 空中で使えるワイヤレスマウス 2.4GHz Fly Air Mouse: パソコン・周辺機器 Amazon.co.jp: T2エアマウス 空中で使えるワイヤレスマウス 2.4GHz Fly Air Mouse: パソコン・周辺機器 空中マウス買った。 サンワサプライのOEM元っ…

boxenを捨てた話

boxenを導入した話 - diary boxenを導入した話 - diary 本件ですが、brew caskとシェルスクリプトで何の問題もないので捨てました。 ご了承下さい

UnityのMeshが手軽にヒープをモリモリ食う話

Unity - Scripting API: Mesh.triangles Unity - Scripting API: Mesh.triangles Meshのtrianglesプロパティを参照すると、(CombineMeshでまとめた複数のサブメッシュを持つMeshは)ヒープに新たに配列を確保する。手軽に毎フレCombineMeshするみたいな事して…

わたしの、最高のガジェット

この記事は ねとけん Advent Calendar 2014 4日目の記事です。 僕が今年買ったもので常用してるものを適当につらつら書いていく。 SONY MDR-1RBTMK2 Amazon.co.jp: SONY ワイヤレスステレオヘッドセット MDR-1RBTMK2: 家電・カメラ Amazon.co.jp: SONY ワ…

zncでISO-2022-JPなサーバーに接続する方法

経緯 IRC BouncerであるところのzncでISO-2022-JPなwide等のネットワークに接続出来るようになったので、手順を雑に記しておく。 zncの内部エンコーディングはUTF-8に統一されている。 このため当然wideにつなぐにはエンコーディング変換をする必要があるの…

vimの話

夏バテと飲み過ぎによる胃もたれの途中ですがvimの話です。 画面スクロール如きでmode意識するな vimでもモードを意識しないで済むならそれに越したことはないという場面は往々にしてあります。 特にスクロールしたいというのは割り込み的に発生する欲求なの…

僕のtmux.conf

set -g status off コンソールのログとかスクロールして見れるのが一番便利、セッション維持してくれればいいのでは パネル分割とかiTermでやれ FAQ カレントディレクトリのgit branchとか時間とか出したい zshのPROMPT/RPROMPTでやれ 時計見ろ Macが無い 買…

転職祝い募集してます

どうぞ http://www.amazon.co.jp/registry/wishlist/17OL2EKEJDH8S

redis2.8のttlが複雑怪奇だという話

結論 Redis 2.8(unstable)はttlの挙動が変わっているので気をつけろ 概要 http://trapezoid.hatenablog.com/entry/2013/02/10/035020 これの続きです。この記事の中で触れた、ttlコマンドの挙動に関してunstableから微妙な変更が加わっていました。どうやら2…

redisのmaster-slave構成で考えるべきことの話

結論 Redisは2.6を使おう master-slave構成を取る場合はclient-output-buffer-limitをちゃんと意識するべき 概要 redisはエッジトリガ型のnon-blocking I/Oを用いてシングルスレッドでソケットの読み書きをぶん回す構造で書かれています。 よってclientやsla…

boxenを導入した話

OSXの環境設定を自動化出来るツール。puppetベースだけどchefこねくり回すよりは個人で使うには手軽で良かったです。 XCode入れればとりあえず動かせるし、our-boxenベースにすればrbenvとかnvm(nodenvもいける)とかhomebrewがなんか勝手に入る。便利。 OSX…

redis 2.2を複数slave構成かつevictedありで運用してるとマジヤバイ話

結論 Redis 2.2使ってる奴はさっさとアップデートしろ タイトルの条件で使用メモリがmaxmemoryに達するとキーがまるごと全部消し飛ぶ(evictedする)可能性があります。2.4ではとっく対策されているので、さっさと2.4以降、というかもうstableは2.6だし2.6にし…

Readable Git

gitのブランチ名には実は日本語が使えます ➜ ~ git:(develop) ✗ git branch feature/びっくりするほどウルトラ凄い機能 develop ➜ ~ git:(develop) ✗ git branch feature/びっくりするほどウルトラ凄い機能 * develop master これでどんな各トピックブランチ…

master-slave構成のredisでttl(expire)を持つキーを使う方法

いろいろあってめんどい。 ttlを指定したキーの実削除は、キーの参照があった際又は100ms毎に行われるttlを持つ全キーからのランダムルックアップによる検査により行われる 故に、短いttlを持つキーが多数存在する場合には、(実際に参照しない限り)実削除が…

漫画の自炊を高速に行うたったひとつの方法

横向きにスキャンすると高速に終わります。向きはAcrobatなりImageMagickなりでなんとかしろ

ほほほ