2024-01-01から1年間の記事一覧

React Select を使ったコンポーネントのテストをする

react-select という複数選択やoptionにサムネイルを追加したりできる高機能なselectを提供するライブラリがある。 OptionSelector.tsx: import { useCallback } from 'react'; import Select from 'react-select'; export type Option = { value: string; l…

Docker 25.0 でヘルスチェックに start-interval オプションが追加された

Docker にはヘルスチェック機能があるが、25.0 で start-interval オプションが追加された。 The options that can appear before CMD are: --interval=DURATION (default: 30s) --timeout=DURATION (default: 30s) --start-period=DURATION (default: 0s) -…

RubyのENV.fetch()で空文字列の時もデフォルト値を使うようにする

Rubyには、指定された環境変数の値を読み込み、存在しなければデフォルト値を返すENV.fetch()というメソッドがある。Railsなどでは設定ファイルで環境変数から値を読み込むのによく使う。 config/database.yml: default: &default pool: <%= ENV.fetch("RAIL…

年齢の算出

年齢の算出は簡単にできるかと思いきや、少々面倒臭い。これは、閏年というものが存在するためである。そのため以下のような単純な時間のdiffで算出しようとすると年を重ねる日時が1日ほどズレる場合がある。 const today = new Date(2010, 2, 10); // 2010-…

Minecraft Java Edition 1.20 + PaperMC + Multiverse-Core 環境での砂無限増殖装置(Sand Duper)

エンドポータルとチャンクローダーを利用した砂無限増殖装置というのがある(通称: Sand Duper)。以下の動画を参考に作ったが、PaperMC + Multiverse-Core という環境だと動作しなかった。 問題と解決方法 問題点は以下のとおりでこれらを解決する必要がある…

overscroll-behavior を使ってダイアログを開いている時はページのスクロールをしないようにする

css

まず以下のダイアログを考える。このダイアログはダイアログ内のコンテンツが一定の高さに到達するとスクロールバーが出るようになっている。 <div class="content"> <button class="open-button" type="button">open modal</button> <p>メッセージ1</p> <p>メッセージ2</p> ... <div class="modal"> <div class="modal-content"> <div class="modal-header"> <h2>Modal Header</h2> </div> </div></div></div>

Rails + PostgreSQL でデータベースを作り直す

PostgreSQLでは、他のセッションが同じdatabaseに接続しているときは DROP DATABASE できないようになっている。 my_database=# DROP DATABASE my_database; ERROR: database "my_database" is being accessed by other users DETAIL: There is 1 other sess…