2024 年に引き続き、2025 年も色々なことがありました。 技術的な取り組み・環境の整備等について、備忘録として残しておきます。 目次 トピック 開発環境周り 新規導入したツール 引き続き使っているツール デスクトップ周り 今年買ったもの 引き続き使って…
すごい久々にちゃんと Python の知識を update しようとしてるのですが、見える世界が全く変わっていたのでその感動をメモしておきます。 (当時から自分の知識が増えたことも大きいです。) 以下 mypy などの型チェッカーと使うことを前提にしています。 $ …
最近よく Python を使ってるのですが、ようやく手元の VSCode で Auto Import 設定を有効にしました。 以下、自分向けの備忘録として記録しておきます。
Go では特に大文字小文字で可視性が決まるため、package を跨いだリファクタリングの際などに 変数名や関数名の先頭の文字を大文字/小文字に変更することが多々発生します。 以前正規表現を使った方法を紹介していたのですが、VSCode 標準でできそうだったの…
技術 仕事で Terraform を触るようになったのが個人的には大きいです(Nextjs は早く慣れたい)。 プライベートの開発では AWS と格闘したり、OpenSearch に詳しくなりつつあります。
React で開発してた SPA のアプリにおいて、SWR を活用して prefetch 機能を実装したので、その内容をメモしておきます。 背景 よくあるアプリと同様、一覧画面と詳細画面を持つアプリを開発していました。 しかし、詳細画面の表示に時間がかかり、ユーザー…
この記事では、openapi-typescript を使って TypeScript クライアントを生成した際に遭遇した「Uncaught (in promise) SyntaxError: Unexpected token "xxx"... is not valid JSON」エラーと、その解決方法について紹介します。
AWS Console-to-Code という機能が 2024/10/10 に GA されました AWS コンソールでの操作をコードに変換し、再利用可能な形でエクスポートできるという、非常に便利そうな機能です。 しかし、実際に試してみた結論としては、Amazon Q による推論が思ったほど…
spectral は OpenAPI、AsyncAPI、JSON Schema などの API ドキュメントを検証するためのツールです。 今回は spectral を使用して OpenAPI の required フィールドを検証するカスタム関数を作成する方法について解説します。 【今回防ぎたいケース】 compone…
Renovate は非常に柔軟な設定が可能なツールですが、リポジトリの規模やチーム構成に応じて、最適な設定は異なることがよくあります。 renovate 導入時、実際に役立つサンプルがあまり見つからなかったため、ここでは私が個人プロジェクトや業務で試した設定…
Google provider では Version 5.0 から default_labels というフィールドが追加され、terraform で管理するリソース全体に統一的なラベルを付与できるようになりました。 (AWS では Google の2年半ほど前から同様の機能が使えるようです) この default_la…
CI 中など、コンテナが起動し MySQL のサーバーが起動されたか確認したい場合があります。 その目的のため mysqladmin コマンドを使っていたのですが、思ったように起動完了しておらず、次のステップで落ちてしまったことがあったのでその共有です。
googleapis/google-cloud-go を使って GCP に書き込みをするクライアントを作成している時に、メソッド名につられてしまった箇所があったのでその共有です。 結論 Write メソッドが走った段階では実際に GCS へ書き込まれるわけではない バッファされてる Cl…
課題感 これまで、openapi を用いてサーバーとクライアントのコードを生成することをしてきました。 また、開発時には prism で mock サーバーを立て、フロントを繋いで確認することもしてきました。 prism は、定義した example からいい感じのレスポンスを…
VSCode 上で怒られる typescript の内容が、人によって異なるという現象が発生しました。 node, yarn, 該当のライブラリのバージョン (node_module), typescript のバージョン等を調べても同じだったためパッと原因がわかりませんでした。 結論としては、typ…
Google 検索等では、1 文字打つごとに検索候補の取得が走って、表示が更新されます。 今回はこれと似たような機能を Next.js (MUI) と OpenSearch, Go を用いて実装してみます。 [目次] やること やらないこと OpenSearch の設定 Index/Search-template の作…
今回の記事では概念の説明に留めており、実装例についてはあっても最低限です。 具体例や実装例がある場合は基本 Go です。 また、以下内容については書いておりません。 具体的な実装方法について プロトコルの歴史や RFC に踏み込んだ内容 歴史的背景 サー…
JSON-to-Go という『具体的な JSON から Go の構造体を生成してくれるサイト』があることは知っており長年使っていたのですが、以下のようなめんどくささを感じていました。 具体的な値を変更して Web サイトに突っ込むのがめんどい 業務で使ってる内容をそ…
JWT トークンの構成 JWT トークンとは、以下のような eyJ から始まるトークンのことです。 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJwbHFQUTBkdHZpaEtWczI4T0dPVjg4eUZ0bnQwIiwibmFtZSI6Imtva29pY2hpMjA2IiwiaWF0IjoxNzE2OTkxNzU3LCJleHAiOjE3MTY5O…
まとめ patch を適応しましょう Go は 1.22.2 にあげましょう 自分で立てたローカルで遊ぶだけにしてください [目次] CONTINUATION flood とは サーバーの準備 クライアントの実装 接続する Setting Frame Headers Frame Continuation Frame 動作確認: x/net…
join というコマンドがすごい便利だったので共有です。 概要 manual page にもあるように、RDB の join と同じことができます。 $ man join JOIN(1) General Commands Manual JOIN(1) NAME join – relational database operator RDB に多少触れたことがある…
Linux システムにおけるファイル管理は、その強力な機能性と柔軟性により、開発者やシステム管理者に広く利用されています。 多くのユーザーが頻繁に使用する rm コマンドは、ファイルを『削除する』と一般に認識されていますが、その背後にはより複雑なメカ…
プログラミングにおいてコード内の特定の文字列を探すことは多いですが、特に大規模なプロジェクトでは、この作業が一筋縄ではいかないことがあります。 node_modules や dist といったディレクトリを含めたくない場合がその典型例です。 今回は, grep のオ…
Go のコマンドには様々なオプションが存在します。 今回は、現時点でつけておいて損がないのではないかと思ってるフラグを紹介させてもらいます。 まとめ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -trimpath -o ./api2 ./app go te…
Cloudflare でオブジェクトストレージといえば R2 ですが、 ドキュメントにもあるように S3 との互換性を大切にしています。 今回は Cloudflare の web 画面での R2 バケットの作成から、s3 の sdk を使って object の作成・取得を試してみたいと思います。 …
[目次] 環境 まとめ 背景 おわりに 環境 Host: mac m1 Docker: v24.0.6 Docker context: Docker Desktop AWS CLI: aws-cli/2.13.25 Python/3.11.6 Darwin/22.1.0 source/arm64 prompt/off まとめ エラー内容 $ aws lightsail push-container-image --region …
ユースケース HogeFuga → hogeFuga みたいな『先頭のみの大文字小文字を変換する』ということがしたいケースがありました。 同じ要領で『キャメルケース → スネークケース(逆も)』ができたのでその紹介です。 (注: 以下コマンドの結果はすべて GNU sed に…
『systemd で定期実行をする』というよくある内容ですが、設定できたつもりになってた自分自身の反省を兼ねてメモしておきます。 (細かい設定方法については説明しません。) systemd などのタスク系に関しては、うまく動いてるかの確認がより大事になって…
(github)
こんな感じのことをできるようにします。