技術と魚

雑感と備忘録

intercomからのメッセージにリンクを仕込み、クリックされたらカスタム属性を更新するhubotスクリプト

intercomの機能でそれくらい出来ると思ったら出来なかったので2時間ほどで作った。マーケティングで使えます。以下のような機能があります。 クリックしたら指定したカスタム属性が指定した値に更新される 指定したURLにリダイレクトする クリックしたことを…

‹Child parent={this} /› はアリか

※ 思考実験です Reactはpropsという制約的なコミュニケーション手段があるからこそ、メンテナンス性があがるというもの。*1 今日コンポーネント指向と呼ぶものは、「コンポーネントがpropsによって一意に形態が定まる」という基本的性質に保証されていると言…

npm installがextractで止まる時は

Github上のプライベートリポジトリの影響かもしれません。 止まるケース 以下を満たすと止まることがある。 package.jsonの中に、githubのプライベートリポジトリを指している依存が存在する。 ~/.ssh/id_rsa がpassphraseを必要とするキーである場合で、ssh…

TOEIC@3/10

結果 720 (L375/R345) 所感 何もやらなかった割に、思ったより学生の時より落ちていなかった。昔はReadingの方ができたけど、なぜかListeningのほうができるようになっている。謎。 仕事ではほぼ読むことばっかだと思うのだけど、それは特に活かされてないら…

軽く触ったことがあるプログラミング言語を「出来る」って言うのやめます

僕が出来る言語は所詮RubyとJavaScriptぐらいだ。 触ったことある言語だったら十数個ある。仕事上ならScalaもPythonもせいぜい1000行超えるぐらいは書いた。 一応大学院での研究内容は普遍的なプログラミングの理論であることもあった。お蔭で各言語を使い始…

条件分岐が網羅的だと思ったら意図的に最後に例外を仕込むことのススメ

例えば、Rubyはcase式に引っかからなかったらnilになります。 $ ruby -e 'p(case 0; when 1 then true; end)' nil 場合分けのビジネスロジックを書く際にはcase式が有効です。 もし、自分が網羅的なパターンマッチを書いたと思った場合は、最後にelse raise…

RubocopのCyclomaticComplexityとcase式

RubocopのMetrics/CyclomaticComplexityでメソッドがcase式だけで構成されている場合はcaseをカウントしないようにしてくれたら嬉しいなあ。 というのも、 def .. case type when 'AAA' : when 'BBB' : end の場合、あえてメソッドに分けるとかするのはどう…