TypeScriptやJavaでif式やtry式が欲しい時

概要 TypeScriptやJavaなど、 if や try が式ではなく文になっている言語でそれらを式として使う方法の一つとして即時実行関数式を紹介します。 また、専用のユーティリティ関数によるアプローチと比較します。 対象とする問題 TypeScriptやJavaでは if や t…

mypyの型チェックは通るのに実行時に TypeError: 'method' object is not subscriptable が発生する場合

概要 ライブラリのクラスなどの型パラメータを指定するとmypyによる型チェックは通るものの実行時にエラーになってしまう場合があります。 その対処法と、このエラーが発生する理由について書きます。 from multiprocessing import Queue q: Queue[int] = Qu…

ドラッグで要素を移動させる - React

導入 ドラッグで要素を移動させるような実装について、方法と注意点等を書きます。 デモをCodesandboxに置いています。 注意が必要な部分について先に箇条書きしておきます。 setPointCapture / releasePointCapture を使わないとスムーズな挙動にならない R…

Reactでコンポーネントの外側がクリックされた際にドロップダウンやモーダルを閉じる等の動作をする

ToC ToC 導入 実装 解説 コンポーネント外クリックの取得 リスナーの登録・解除 参考・関連 導入 こういうやつを関数コンポーネント+フックで書きます。 Material-UI等にも存在しますが、それだけのために依存を追加したくない場合や勉強のために実装しまし…

Division or Subtractionを解く(AtCoder Beginner Contest 161 F)

導入 AtCoder Beginner Contest 161 F - Division or Subtractionを解きます。 解法については公式解説が存在します。 この記事では私が解法に至るまでの思考を書きます。 思考の過程を解説するので、やや遠回りもします。 どうやって解法を思いつくかの参考…

docker-composeのvolumeを作り直す

TL;DR docker volume rm {volume-name} ToC TL;DR ToC 導入 方法 特定のvolumeだけリセットしたい場合 docker-compose.yamlで使用している全てのvolumeをリセットしたい場合 導入 docker-composeで使用しているvolumeを作り直す必要があったが検索が下手で見…

eslint-plugin-reactのno-exhaustive-depsは何故propsのプロパティの関数を使う際にpropsも依存に要求するのか

TL;DR 背景 理由 挙動の確認 対処法 TL;DR オブジェクトのpropetyの関数をコールする際にthisが渡されるため。 propsは常に分割代入しておくのがよいとされる(react/destructuring-assingmentでESLintに設定可能)。 背景 eslint-plugin-reactのno-exhausti…

JavaScriptの for...of vs forEach

目次 目次 TL;DR 導入 副作用を起こす場合for...ofよりforEachを使う論拠 forEachにより不吉な臭いを明示できる for...ofに対するpollyfilが要求するregenerator-runtimeは重すぎる とはいえfor..ofを使いたいケースもあるのでは? まとめ TL;DR forEachは案…

Chainerをバックエンドにブラックボックス変分ベイズを実装する日記[2]

内容 現時点で思う理想のAPIの雰囲気を書いておく 雑にクラス設計をする 考えているAPI つくるものとして近いものはEdwardやPyro。 PyroのAPIは結構わかりやすいと感じたのでベースとして真似したい。 EdwardのAPIをもはや覚えていない。 PyroのAPIをざっく…

Chainerをバックエンドにブラックボックス変分ベイズを実装する日記[1]

この記事 Chainerでブラックボックス変分ベイズを実装するぞと言う宣言。意味はない。 導入 世の中には深層学習フレームワークを自動微分バックエンドとして使用した確率的プログラミングフレームワークがある。 知っている限りだとTensorFlowをバックエンド…