備忘録:SQLAlchemyのConnectionとTransactionの区別について

SQLAlchemy 1.4系と2.0系の両方において、データベース接続オブジェクトとトランザクションオブジェクト (sqlalchey.Transaction) を区別できるか調べてみた。結果、isinstance() を使ったプログラム実行時の型チェックで両者を区別することも、mypy および …

備忘録:SQLAlchemyのORMとCoreを組み合わせて使うのが良さそう

最近、身をもって学んだことの備忘録。SQLの薄いラッパーとしてSQLAlchemyを使いたいプロジェクト(後述)では以下の方針で進めるのが良いと思う。 ORMレイヤーで、クラス定義をする Coreレイヤーで、クエリー生成をする ただしテーブルオブジェクトではなく…

Pandasで同一データをto_parquetすると重複が起こる

今日試して学んだこと。Pandasで同一データフレームを複数回to_parquetで出力すると、同一データが重複する形で出力される。なので、例えばCSVファイルをPandasでParquetデータセットとしてETLするような処理を走らせる場合には同一CSVファイルを複数回処理…

過去バージョンをメンテナンスするGitのブランチ運用

Git

ソフトウェア開発の仕事では 、過去バージョンのメンテナンス(バグ修正)も行いながら最新版を開発していかなければならないことが多い。これを効率的に行えるような Git のブランチ運用方法を、マジメに調べたことが無かったなーと思ったので調べてみた。…

メモ: iOS向けの静的リンクライブラリをRustで書く方法

iOS向けの静的リンクライブラリをRustで書く方法について調べたところ、詳細に書かれたブログを見つけたので内容の走り書きのメモを残す。 https://blog.mozilla.org/data/2022/01/31/this-week-in-glean-building-and-deploying-a-rust-library-on-ios/ ま…

Ubuntu 22.04をThinkPad X1 Carbon 4thに入れる

今日はガタの来ていたThinkPad X1 Carbon (4th, 2016)のOSをUbuntu 22.04 LTS (Desktop)に入れ替える遊びをしてみたので、その手順を記録しておく。 もくじ セットアップの要点 OSインストール (Ubuntu 22.04) USB無線LANドングルのセットアップ CapsLock を…

データ分析用の簡易データストアとしてPostgreSQLを構築する遊び

前提(動機) 簡易的なデータ分析用のデータストアとして使う、という想定で PostgreSQL を構築してみた。 インフラ屋ではない人間による勉強目的での遊びなので、 いつか詳しい人にレビューしてもらいたいところではある。 雑に要件を書くと次のような感じ:…