#じゃべめも

じゃべめも棚卸し

UnityでTime.deltaTimeを使った速度感

10*Time.deltaTime ってよくやるけど、コレは時速でいうとどれくらいなのか Time.deltaTime を使用した FPS を意識した物体の操作

function update() {
  transform.Rotate(0, 60 * Time.deltaTime, 0);
  // これで一秒で60度動くようになりました。
}

要は秒速いくつ、みたいな記法になるみたい

早苗さんゲーの学び

バリアエフェクト

エフェクトにパーティクルシステムとポリゴンを交えると、Colorのα制御だけでは対応するのが難しくなるので、 エフェクトスタート、エフェクト終了はアニメーションで制御したほうが応用が利くっぽい effect_start, effect_enabled, effect_disabled, effect_end 4つを用意する

ただし、フェード使った演出はやりたいので、専用のシェーダを何か作った方が良いかもしれない・・・

弾幕ロジック制御に使う弾に、寿命を持たせる場合に、経過秒も管理できるようになってると良い

残りの寿命で振る舞いを変える事ができるので、弾の消失演出ができる。

// 経過秒を使った寿命管理
public float lifespan;
public float age;
public virtual void Start () {
  Destroy(this.gameObject, lifeTime);
}
public void LateUpdate() {
  this.flameTime += Time.deltaTime;
}

GoogleFirebaseメモ

Googleのサーバーレスアーキテクチャ 基本的にAjaxAPIを叩いて、いろいろやってもらう感じ

Hosting

静的資産のホスティング、サーバーが必要そうなもの(DBアクセスとか)は全部サーバーレスで良いから、HTMLとJSとCSSだけ配信すれば良いよねって意識を感じる

RealtimeDatabase

AjaxでアクセスできるRedis

Authentication

Googleに認証周りを委譲する。 認証方式(プロバイダ)は

(サーバーを用意しての)自前で認証機構を用意して、ログインされたことをFirebaseに伝えることもできる。

見栄え周りは、HTMLにフック用divを用意しておいて、そのセレクタAPIに渡すと、ログイン画面に書き換えてくれる。 ログインの成否は、APIからのコールバックを受けるやり口と、ログイン成功時の遷移先を予めAPIに伝えておく事ができる。

VSCode Extension

editor

vscode-icons

ファイルリストにアイコンを表示する

Bookmarks

エディタにブックマーク機能を付与

ブックマークは Win: Ctrl+Alt+K Mac: Command+Option+K

Ctrl+P > bookmark hogehoge でブックマークした物に対するコマンド

Google Search

エディタからGoogle検索。検索結果だけならVSCodeの中で開く

Bracket Pair Colorizer

対応するかっこを色分け


Git

Git History (git log)

Gitの履歴をVsCodeから確認 よく使うのはgit view file historyでファイルの履歴を確認する

GitLens

sourcetreeとだいだい同じことが出来るようになる

Git Project Manager

Gitプロジェクトのフォルダ開くのが楽になる Mac: Option+Command+N


markdown

Paste URL

マークダウンでURLを貼り付けた時に、ページタイトルを取ってくる Win: Ctrl+Alt+P Mac: ^+Option+P

Markdown Preview Enhanced

マークダウンのプレビューをいい感じにする Ctrl+K -> V

markdownlint

マークダウンのLint


Language Supports

  • Slim
  • Sass
  • Better Haml
  • Vagrant
  • C#
  • Debugger for Unity
  • Docker
  • DotENV
  • erb
  • HTML Snippets
  • Ruby

Ruby/Rails

endwise

自動でendを書いてくれる

Ruby Symbols

メソッド一覧表示機能をRubyでも使えるようにする Win: Ctrl+SHIFT+O Mac: Command+SHIF+O

solargraph

rubyのインテリセンス 事前にVSCodeと同じ実行環境でgem install solargraphをする必要がある。

solargraphのインストールミス

brew docter で警告が出るようなら対象のヘッダファイルを消す必要がある。

solargraphでrubyのintelisenceを効かせようとしたらsolargraphのgem installができない
ログ見るとopensslが無い -> gem install opensslしたらビルドできない
brew側で brew install opensslしてもビルドできない
opensslはどうもeventengineが要求しているようなので、単体インストールを試すもダメ
ビルド環境が悪いと睨む
rbenv経由で、使っているruby2.5.0を再インストール、したらビルドできない。(usign64_t型が無い言われれる)
rbenvのアップグレードを試すもビルドできない。

llvmを入れろと指示があったので試したら成功
rbenvのアップデートを実施
2.5.0を再インストールするも、longlong型が無い言われる。
macのgccを新しそうなやつに差し替え、てもだめ

brew doctor で警告が出まくっている
その中に
  /usr/local/include/stdbool.h
  /usr/local/include/stdint.h
辺りが混じっているので、消し込んでいく

できた・・・
C言語のバージョンアップで追加されたかた情報が、古いヘッダファイルで取り消されていた模様。

Rails

Rails向けのナビゲーションなど 同一Modelに関するファイルの一覧(UserModel表示中にUsersControllerの検索など) Win: Alt + . Mac: Opt + .


Others

codic

エディタ内でcodicを使ったメソッド名作成(和英)

Excel Viewer

CSVファイルを表形式で見れる

VSNotes

VSCodeにメモ用の固定ワークスペースを登録できる感じ。 Grepできないのが残念。Git連携っぽい設定があるが・・・?

rubotyを使ったdiscordbot作り

discordデベロッパポータルでアプリの登録

rubyで簡単discordbot - Qiita

rubotyの作成

r7kamura/ruboty ykzts/ruboty-discord 基本的にはgemの宣言と環境変数への代入だけ 開発環境用にdotenv入れるのも良い

ボットの起動はbundle exec rubotyまたはbundle exec ruboty --dotenv

作成した資産はgithubにPushしておく

herokuへのデプロイ

herokuで自動的にスリープしないようにProcfileを作成する。 HerokuのProcfileの役割 - あかんわ ワーカープロセスとして立ち上げておくので、記述内容はこれ

worker: bundle exec ruboty

heroku上でアプリを一つ用意して、上記で作成したgithubリポジトリと連携させておく(Deploy -> Deployment method) また、合わせて環境変数を用意しておく(Settings -> Config Vars)

独自拡張用rubotyプラグインの作成

Ruboty の Plugin のつくりかた #ruboty - Qiita 上述のruboty本体とは別リポジトリで作成する。 作成したgemをrubotyで読み込ませて利用する。 アップデートした場合は、ruboty側でbundle updateすると、Gemfile.lockが更新されるので再度Pushする。

CKEditor

テキストエディタの共同編集機能はどのように実装されているのか

WYSIWYGエディタについて、CAP定理のうちA+Pを取る時のノウハウだそうな。 CKEditorのサービスを使えば、GoogleDocみたいな共同編集機能を実装できるそうな。 Overview - CKEditor 5 Documentation

CAP定理

CAP定理 - Wikipedia CRDT (Conflict-free Replicated Data Type)を15分で説明してみる - Qiita

分散システム(プロセス同士がネットワークを介して協調するというシステム)において

  • Partition Tolerance: ネットワークが故障しても
  • Consistency: データの整合性をもって
  • Availability: 読み書きが常にできる

というウマイ話は、どうやっても無理という定理

具体例

  • C+A:ネットワークが故障しない限り、整合性をもって読み書きができるシステム 一般的な関係データベース、LDAPNFS など
  • A+P:ネットワークが故障しても、読み書きができる Amazon SimpleDBApache Cassandra - Wikipedia(NoSQL系) 、DNS や HTTP キャッシュなども該当
  • C+P:ネットワークが故障しても一貫性を保つ(ただし使えなくなる) Apache HBase - Wikipedia