みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

2024年現在の TypeScript の設定

ESM な TypeScript を node.js で実行するときの設定を検討します.なお,ESM とは以下のように import を使う方式のことです. import { valueOfPi } from "./constants"; export const twoPi = valueOfPi * 2; https://www.typescriptlang.org/ja/tsconfig…

Pydantic でフィールドの追加を禁止する

Pydantic ConfigDict を使います*1.allow, forbid, ignore から選択します. pydantic.Extra.forbid や Config class を使用する方法もありましたが,Pydantic 2.x では奨励されていません. 動作確認のための unittest は以下の通りです.モデルに text フ…

authorized_keys を追加

scp コマンドでリモートにファイルをコピーするときに,SSHをパスワード認証で使用しているとうまくいかないので,鍵を作成してSSH公開鍵認証を使用します. なお,リモートは user@remote.local と表記しますので,適宜読み替えてください. MacOS, Linux s…

Python で要素の検索速度の比較

Python で複数の要素から特定のものが存在するかを検索する場合の,効率がよい方法を検討します. 課題 10万個の要素から特定の要素が存在するかどうかを返す. set を使用する方法, list を使用する方法をすぐに思いつきます.list を set に変換してから…

Git LFS でバイナリファイルをローカルで管理する

Git

Git でバージョン管理しているプロジェクトにおいて,大きなバイナリファイルを一緒に扱おうとすると,GitHub のファイルサイズの 100 MB 制限でエラーが発生したり*1,バイナリファイルを更新する度にレポジトリが肥大化していって処理に時間がかかるように…

Git が保存する仕組み

Git

Git の内部がどうなっているのか気になったのですが,深く理解しなくても使えるツールなので,ざっくりとまとめます. Git の要点 Git は key-value 型データストアでデータを管理している. Git オブジェクトには,blob, tree, commit, tag の4種類が存在す…

JavaScriptでJSON SchemaとMeta-schemaを使ってみる

JSON Schema を使えば,自分が欲しい構造の JSON データであるかを簡単に判定できるので,とても便利です. まずは JavaScript で JSON Schema を使ってみます. ajv を使う JSON schema バリデータの実装はたくさんありますが,今回は,Ajv JSON schema val…