技術と魚

雑感と備忘録

TOEIC@9/29

スコア 845(L430/R415) 前回差 50 なんか覚醒してリスニングが大体分かるモードに入ったので、ほぼ問題先読みして解けた。 前回までやらんかったシャドーイングを取り入れたのと、速度1.2倍で聞いていたのが効果あったと思われる。 リーディングも前に比べて…

Vapnikの原理

Vapnikの原理「ある問題を解くとき、すぐにそれより一般的な問題を解こうとしてはいけない」 SVMの本に載っていた。"原理"と言うけど、何らかの普遍的性質を示しているわけではなくて、人がついやってしまう間違いがあるので、注意したい考え方の一つという…

率直に思いを伝えるタイミングの話

特に仕事では、感情論とかすげー嫌いなので、ロジカルかつ合理的な説明を可能な限り求めてしまう。 何なら感情論振りかざすタイプを見てちょっと一線置こうかな程度に冷めた目で見てきた。 しかし最近は、経営という立場を通じて、それではダメなタイミング…

TOEIC@6/23

前回差+75 (3ヶ月前) 学習時間約30時間 スタディサプリ100% リーディングは前回と同じぐらい時間が足りなかったのにかなり上がっているので、読む速さではなく的確さが上がっている。長文でも分からないことは少ないので速さを上げていけばもう少しいけるは…

Rubyでカウンタを10文字で作る

Enumerator.newでごにょごにょやる..? それかまさかの自作..? と悩んだ方へ 結論 counter = (0..).each counter.next # => 0 counter.next # => 1 counter.next # => 2

Promiseのスタックトレースが分かりにくい時はbluebirdが使える

JavaScriptのPromiseによる非同期を経由すると、エラー発生時に非同期の呼び出し元以前のスタックトレースが出力されないので、デバッグに困ることがあった。 けど調べてみたらbluebird*1のlong stack trace機能を使えばそれも含めて出してくれるっぽいとい…

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 の場合、あえてメソッドに分けるとかするのはどう…

Rackコード探訪 Part.1

Railsとハイパー便利gemで大体のことが出来てしまうご時世、Rackについてはほとんど考えなくて良いと思う。 けど、ふともっと詳しくなるためにRackを知ろう、ちゃんとサーバを知ろう、なんて思うことがきっとある。 今使っているものが、どうやって成り立っ…

Fetch APIでファイルをアップロードする時にContent-Typeを指定しないほうが良い

ハマったので調べました。 Fetch APIの仕様上、ファイルアップロードをする際はContent-Typeヘッダに multipart/form-data を手動で指定する必要はない。 multipart/form-data は、Requestデータが通常のフォーマットのままではContent-{Type,Disposition}と…

React Componentのコード共通化方法まとめ

Reactでの開発をしていくと、共通のメソッドを持つようなコンポーネントが増えてくる。一般にJavaScriptではクラスのメソッドを共通化する方法は、歴史的な事情も相まって色々な方法がある。チームで開発をする場合などにおいては、方法について一定の規約を…

構造的帰納法を分かりやすく説明してみたかった

背景 DIGGLE社のdevチーム勉強会でTaPLを読み始めました。 まずは3章から読み始めることにしたものの、「構造的帰納法」にふれる。→なんですか、それ? 構造的帰納法について説明を口頭でしようと試みたけど、案外説明が難しいんですね。。 そこで、できる…

スタートアップで注意したいミニマム病について

初期のスタートアップはリソースが少ないのが常です。リソースの源泉はキャッシュであり、かつ現代のスケールを目指すスタートアップのほとんどがサブスクリプションがベースのビジネスモデルであるので、最初に赤字を掘ることは避けて通ることが出来ません…

Immutable.Recordのクラスにインスタンスメソッドをarrow関数で定義したらダメだったよ

罠の話 #JavaScript #ImmutableJS

GitHub Pages + GitBook + KaTeXで数式があるドキュメントをいい感じに作る方法

ドキュメントに綺麗な数式を表示したくてたまらない人に向けてのソリューション

JSライブラリを自前で作る時に何を導入するのが良さそうか

「自分でJSのライブラリ作ろう!」と思った時、ソース・テストのディレクトリ構成、ES6+で書くべきか、型定義、テストFW、CI、ビルド方法、ドキュメント作成など考えておきたいことが色々あって、そんなこと考えている間に飽きてしまうことってよくあります…

MRRからACVを概算する

CEO「MRRからACVって計算できないんだっけ?」 わし「ふむ、それは頑張れば出来ると思うが、まあまあ頑張らないといけない。ちょっとやってみる」 予算や事業計画を立てる際、いくつかの指標をもとにしてMRRを算出するところまでは難しくありません。 しかし…

てすと

やっぱはてなだよね!