My Tech Blog

個人的な備忘録が中心になると思います

Ruby on Railsを少し触ってみた

Ruby on Railsをあまり触ったことがないので、少しだけ触ってみたのでまとめておく メモ 使用したRailsのバージョン rails: 8.0.1 database: postgresql テスト等で使えそうなライブラリ rpec-rails railsのテスト用フレームワーク factory_bot テスト時にモ…

SQLAlchemyのセッションについて

SQLAlchemyのSessionをよくわからないままなんとなく使っていたので整理してみようと思います。 公式ドキュメントでscoped_sessionについて説明している記事があるのでこちらの内容を参考にしました。 docs.sqlalchemy.org sessionmaker sessionはsqlalchemy…

Goのcontext周りの話

Goには非同期処理をうまく管理する方法としてcontextライブラリが用いられるが、このcontext.Contextについて勘違いしていた点があったので改めて整理してみる。 contextライブラリ pkg.go.dev context.Contextはインターフェースとして、次のように定義され…

uvでpythonのプロジェクトを管理する

最近uvを使い始めたので備忘録として簡単にまとめてみる uvとは? pythonのパッケージマネージャ兼プロジェクト管理ツール npmのようにプロジェクト単位で依存ライブラリやpythonバージョンを管理できる Rustで書かれており、非常に高速で動く docs.astral.s…

Juliaの非同期タスクを強制終了させる

Juliaの非同期処理は次のようにTaskとして扱われます。 task = @async begin println!("hoge") end ここで、タスク内でループ実行する場合などに途中で中断したくなった場合、次のようにして中断させることができます。 task = @async begin while true # do…

VSCodeでnotebookセルを実行したときのauto scrollを無効にする

VSCodeではNotebook形式のファイルも扱えて色々便利なのですが、デフォルト設定では各セルを実行したときに勝手にスクロールされてしまい、 直前にどこを実行したのかわからなくなることがあり、無効にする方法を探してみました。 以下の設定を追加で無効に…

goの文字列比較でハマった

バッファからバイト文字をスライスに移した際に、string関数を使って文字列変換しても、スライスの余りの部分(0初期化した値)も文字変換されてしまうため、それを取り除く必要がある。 buf := make([]byte, 128) // \x00で初期化される b, err := io.Read(bu…

Juliaでbitflyerの価格データをリアルタイムに取得する

少し前にJuliaのHTTP.jlを使ってbitflyerからリアルタイムに価格データを取得するコードを書いたので、備忘録として書き残します。 ※Javascriptなどのサンプルコードは公式ページ(https://bf-lightning-api.readme.io/docs/endpoint-json-rpc)にて提供されて…

Juliaで並列処理

juliaではBase.Threadsモジュールが標準で提供されていて、簡単にマルチスレッド処理を実装することができます。 ここでは、次の2つのマクロを紹介します。 @threads @spawn @threads for文を渡すと、マルチスレッド化してくれます。 using Base.Threads n …

HTTP.jlで簡単なWebAPIを作る

JuliaでWebAPIサーバの作り方を勉強しているので、備忘録も兼ねて書き連ねていきます。 HTTP.jlを使うと簡単にWebサーバを建てることができます。 Genie.jlというJulia製のWebフレームワークがありますが、今回は使用しません。 なお、Genie.jlもHTTP.jlをベ…

正規表現のメモ

正規表現の基本 jsベースで記述します。 .: 任意の1文字が1個 +: 直前の文字が1回以上繰り返す ?: 直前の文字が0個または1個 *: 直前の文字が0回以上繰り返す ^: 先頭が次の文字に一致する $: 末尾が前の文字に一致する (): グループ化・複数の条件などをひ…

Java Collections API の備忘録

Javaのコレクション周りの備忘録 目次 Collections API Stream API Collections API Java8から使える List 動的配列 // Listの初期化 List<Integer> list = new ArrayList<>(); // Java 7以降 // 値の追加 list.add(1); list.add(2); // indexに対応する要素の取得 li</integer>…