げっとシステムログ

WEB開発メモ

GitLab で private レジストリのイメージを参照

CONTENTS やりたいこと CI/CD variables の設定 DOCKER_AUTH_CONFIG の中身 まとめ 参考資料 やりたいこと Rust のテストをするとき、毎回の依存パッケージビルドが無駄なのでビルド済みイメージを参照したい。 ビルド済みイメージは完全なアプリケーション…

Rust でカバレッジを取る話

CONTENTS Rust でカバレッジを取るには cargo-llvm-cov のインストール まとめ 参考資料 Rust でカバレッジを取るには この記事のとおり、ツールが整ってきたので、以下のコマンドでカバレッジを取りつつテストができる。 cargo install cargo-llvm-cov rust…

クロスドメインでも worker したい

CONTENTS クロスドメインで worker は動かない それでもクロスドメインで worker したい まとめ 参考資料 クロスドメインで worker は動かない stack overflow の通りクロスドメインで worker は動かない。 MDN のドキュメントにもそう書いてある。 TOP それ…

Rust の mutex を async trait する話

CONTENTS lock-unlock の間に await してはいけない まとめ lock-unlock の間に await してはいけない 以下コンパイルできるコード。 use std::{ collections::HashMap, sync::Mutex, }; #[tokio::test] async fn test_hmm() { assert!(hmm().await == Some(…

Rust で gRPC を Google Cloud Run で

CONTENTS Rust で gRPC TLS 対応 Cloud Run の認証に対応 まとめ 参考資料 Rust で gRPC Rust で gRPC するために tonic を使用する。 protocol buffers からコードを生成したり、サーバーコードを書いたり、クライアントコードを書く。 この時に苦労したこ…

Keychron K7 について

これはいいものだ。 CONTENTS ロープロファイル mint スイッチ 七色に光るぞ まとめ 参考資料 ロープロファイル とにかく背が低い。 薄い。 指を乗せるにはちょうどいい高さ。 持ち運び用としてこの薄さはすばらしいね。 鞄に問題なく入る。 TOP mint スイッ…

Google Cloud Run で Cloud SQL に接続する

CONTENTS やること Cloud SQL Admin API の有効化 サービスアカウントの構成 unix socket で接続 まとめ 参考資料 やること ドキュメントから、以下のことが必要。 Cloud SQL Admin API の有効化 サービスアカウントの構成 unix socket で接続 cloud run と …

rust でカバレッジふたたび

以前の記事の内容を高速化してみた。 CONTENTS コードで grcov のインストール まとめ 参考資料 ENVIRONMENTS コードで #!/bin/sh coverage_main() { if [ -z "$RUSTUP_HOME" ]; then RUSTUP_HOME="${HOME}/.rustup" fi local toolchain_dir local llvm_prof…

aws ses でメールを送信してみる

CONTENTS ドメインを追加する aws ses でメールを送信する メールを送信するためのポリシーを作成する rusoto でメールを送信する まとめ 参考資料 ドメインを追加する メールの自動送信なので、何かが起こって普段使っているドメインが使えなくなると困るた…

rust でカバレッジをとってみる

CONTENTS コードで 必要な準備 カバレッジをとる カバレッジが 100% じゃなかったらエラーにする まとめ 参考資料 ENVIRONMENTS rust: 1.51 コードで 以下の shell script でカバレッジをとることができる。 rustup component add llvm-tools-preview rustup…

rust で aws cloudfront signed cookie

signed cookie をやる方法はこの記事にまとめた。 rust でやったらまたハマったのでまたまとめておく。 CONTENTS コード pem をパース policy を構築 rsa private key で sign base64 エンコード デバッグ方法について まとめ 参考資料 ENVIRONMENTS rust: 1…

Rust でも protobuf したい

CONTENTS protobuf で protobuf する protobuf-codegen-pure でコード生成 親モジュールのコードを生成 actix-web でレスポンスを返す まとめ 参考資料 ENVIRONMENTS rust: 1.51.0 protobuf で protobuf する protobuf を使って protobuf することにする。 …

Rust で distroless する話

CONTENTS なんでそんなことをするのか rustup でターゲットを追加 musl コンパイラをインストール ビルド まとめ 参考資料 ENVIRONMENTS debian: buster distroless/static-debian10 rust: 1.51.0 (2fd73fabe 2021-03-23) なんでそんなことをするのか distro…

ぼくのかんがえたさいきょうの状態管理

UI の状態管理に関する現在の理解について。 production には未適用 React としてアンチパターンな気がする CONTENTS 1言で コードで データから状態を構築するということ まとめ 参考資料 1言で 状態とデータをはっきり区別する 状態: UI の構築に必要な…

Web IDE を試す

CONTENTS なんでそんなことをするのか Theia を選んだ理由 Theia セットアップ built-in 拡張機能のセットアップ 拡張機能のインストール キーボードショートカットの設定 typescript のセットアップ まとめ 参考資料 APPENDIX ベースイメージ Dockerfile EN…

webpack で web-worker してみる話

CONTENTS なぜそんなことをするのか まず単純に worker してみる webpack で build してみる うまくいかなかったこと まとめ 参考資料 なぜそんなことをするのか この記事を読んで web worker のことを知った。 DOM の描画処理とは別スレッドでメインの処理…

TypeScript で protocol buffers する話

CONTENTS なぜそんなことをするのか protobufjs のインストール proto ファイル定義 コード生成 エンコード デコード まとめ 参考資料 ENVIRONMENTS TypeScript : 4.0.2 protobufjs : 6.10.1 なぜそんなことをするのか API との通信で使用したい Local Stora…

Google Cloud Run にデプロイしてみる

CONTENTS なぜそんなことをするのか Cloud Run にデプロイ Secret Manager で機密情報を管理 distroless イメージを使用してビルド CI によるデプロイ まとめ 参考資料 なぜそんなことをするのか これまで GKE で K8s のクラスタにデプロイしていた。 Cloud …

golang で test カバレッジを計測する

CONTENTS なにがしたいのか カバレッジを計測する カバレッジを取るパッケージを指定する まとめ 参考資料 なにがしたいのか 複数のパッケージで開発している テストが含まれないパッケージもある テストが含まれていないパッケージも含めてカバレッジを計測…

preact と htm でフロントエンド

CONTENTS なぜそうするのか 開発環境の構築 サンプルコード まとめ 参考資料 ENVIRONMENTS preact : 10.4.4 htm : 3.0.4 typescript : 3.9.5 webpack : 4.43.0 なぜそうするのか この記事を読んで、preact というものがあることを知った。 軽量だというので…

Vue 3 を TypeScript で

CONTENTS なにがやりたいのか 必要なパッケージのインストール webpack のセットアップ vue を使うための TypeScript の設定をする vue のコードを書く まとめ 参考資料 ENVIRONMENTS node : 14.4.0 vue : 3.0.0-beta.15 なにがやりたいのか HTML の描画とイ…

golang で aws cloudfront signed cookie

AWS CloudFront でプライベートコンテンツを配信したい。 このために Signed Cookie を使う方法があるが、これを golang を使用して生成したい。 CONTENTS AWS CloudFront Signed Cookie カスタムポリシーを使用した Signed Cookie カスタムポリシーを作成す…

golang パッケージのタグのつけ方

CONTENTS やりたいこと パッケージの公開 まとめ 参考資料 ENVIRONMENTS host: GitHub やりたいこと golang のパッケージは GitHub に push するだけで公開できる。 しかし、バージョンのつけ方がわかりくかったのでまとめておく。 TOP パッケージの公開 パ…

golang でクロスコンパイルする話

CONTENTS やりたいこと できたやつ CGO_ENABLED GOOS と GOARCH まとめ 参考資料 ENVIRONMENTS golang : 1.14.4 やりたいこと go build の結果だけを含んだ Docker Image を作りたい。 このためには CGO_ENABLED を無効にする必要がある。 TOP できたやつ 以…

GitHub Release に asset を追加してみる

CONTENTS やりたいこと できたやつ ベースにしたもの まとめ 参考資料 ENVIRONMENTS node: 14.4 @actions/github: 3.0.0 やりたいこと CI から GitHub の Release に asset を追加したい。 GitHub Actions からやる方法はいろいろ出てくるが、GitHub Actions…

Cargo でプライベート git を参照する

CONTENTS なぜそんなことをするのか git credential helper を設定する CI 設定 まとめ 参考資料 ENVIRONMENTS cargo 1.43.0 (3532cf738 2020-03-17) rustc 1.43.0 (4fb7144ed 2020-04-20) なぜそんなことをするのか ドメインロジックをクレートとして開発し…

Windows10 で Ubuntu 20.04 にする話

Ubuntu 18.04 がインストールされていて、これを 20.04 にアップグレードしたい。 CONTENTS 方針 バックアップ アンインストール・新規インストール リストア まとめ ENVIRONMENTS Windows10 Ubuntu 18.04 -> 20.04 方針 デフォルトのパッケージ以外はインス…

AWS IAM ユーザーの運用を考えてみた話

AWS コンソールにログインするユーザーの権限を最小限にする 作業用ロールにスイッチして作業 CONTENTS なんでそんなことをするのか ユーザーの作成 パスワードと MFA の設定ができるポリシーの作成 作業用ロールの作成 作業用ロールへスイッチできるように…

うちの開発環境 - 2020版

現在の開発環境と、構築方法をまとめる。 CONTENTS INTEL NUC Debian 秘伝のタレと化したバックアップのリストア まとめ 参考資料 INTEL NUC INTEL NUC に Debian をインストールした。 このマシンは以前と同じもの。 Debian なので Wi-Fi を使えるはずだが…

ラズパイに USB をさして電源を落とそう大作戦

CONTENTS なんでそんなことをするのか USB をさしたときの様子を確認する USB デバイスの詳細を確認する USB をさしたときにスクリプトを起動する まとめ 参考資料 なんでそんなことをするのか ラズベリーパイは電源につなげることで起動する。 しかし、電源…