なにもわからないログ

人生わからないことだらけ

合字(リガチャ)を無効にする【RubyMine】

問題

RubyMineのエディタ上で、`(バッククォート)が文字の上に表示されてしまう。
(個人的に)見辛いし文字消す際にカーソル位置が変わらないしで分かり辛い。

解決方法

RubyMineの設定で合字(リガチャ)を無効にする。

Editor > Color Scheme > Color Scheme FontEnable font ligatures のチェックをOFF。
ColorSchemeでFontをいじっていない場合は Editor > Font に同じ設定があるはず。 

合字が無効になり、`が分離して表示されるようになった。

 

fzfを使ってCLIでプルリクをチェックアウト【fish】

以下の記事を参考にさせていただきました。 fromatom.hatenablog.com

自分の場合pecoとzshではなく、fzfとfishを使っているので、そちらで動くように変更。

function fzf-checkout-pull-request
   set selected_pr_id (gh pr list | fzf | awk '{ print $1 }')
   if test -n "$selected_pr_id"
     commandline "gh pr checkout $selected_pr_id"
   end
   commandline -f repaint
end

StructとOpenStructの違い

それぞれの基本的な使い方

Struct

Param = Struct.new( :atk, :def)
param = Param.new(100, 50)
p "atk:#{param.atk}, def:#{param.def}"
# => "atk:100, def:50, int: 70"

OpenStruct

param = OpenStruct.new({atk: 100, def: 50})
param.int = 70
p "atk:#{param.atk}, def:#{param.def}, int: #{param.int}"
# => "atk:100, def:50, int: 70"

違い

Structはメンバを生やせない

定義していないメンバを生やそうとするとエラー。

Param = Struct.new( :atk, :def)
param = Param.new(100, 50)
param.int = 70
# => NoMethodError (undefined method `int=' for nil:NilClass)

Structはまず型を定義する必要がある

(当たり前ながら)いきなり初期化して使うことはできない。

param = Struct.new(100, 50)
# => TypeError (50 is not a symbol)

Structはハッシュを使った初期化ができない…わけではなかった

普通にやると1つめのメンバにハッシュが丸ごと入ってしまう。

Param = Struct.new( :atk, :def)
param = Param.new({atk: 100, def: 50})
p param
# => <struct atk={:atk=>100, :def=>50}, def=nil>

keyword_init=true をして定義することでうまく初期化してくれるようになる。

Param = Struct.new( :atk, :def, keyword_init: true)
param = Param.new({atk: 100, def: 50})
p param
# => <struct atk=100, def=50>

オブジェクトのキーに変数を使う【JavaScript】

変数をキーにしたオブジェクトを作りたい

const Button = {
  left: 1,
}

const buttonActionMap = {
  Button.left: this.moveLeft,
}

これだとエラー。

キーを[]で囲うとエラーが消える

const Button = {
  left: 1,
}

const buttonActionMap = {
  [Button.left]: this.moveLeft,
}

解決!

参考にしたサイト

stackoverflow.com

【Unity】PixelObjectBase(ドット絵アクションゲーム写景1)

以下を写経しつつUnity学習中。2Dゲームが作りたい。

github.com

Player の親の親クラスとなる PixelObjectBase を写した。 機能としては位置を保存しているのみ?

LateUpdate

Update より必ずに呼ばれることが保証されている。フレームごと。

OnRenderObject

シーンのレンダリングを行った後に呼び出される。こちらはフレームとか関係なく1度だけ?

アウトプット

前回の記事書いてから、

「ずいぶん悠長な展開のホラー映画だな」「ホラー映画ならもう全滅してる日数だろ」

とかいう(個人的には)いい感じのツッコミが浮かんだ。

やっぱりアウトプットって大事だなあ。

というわけで、無理矢理にでも記事を捻り出していきます。