LabBase の技術ブログ

Git で push 前にテストやフォーマット済みかをチェックする

TL;DR 次の手順を実行する リポジトリに infra/git-hooks のような名前でディレクトリを作成し、下記の pre-push スクリプトファイルを追加する。 このとき、 chmod +x infra/git-hooks/pre-push のようにして pre-push スクリプトに実行権限を付与しておく。 .gitignore ファイルに .wt-pre-push-test を追加する。 .wt-pre-push-test は pre-push スクリプトが push 前チェックに使用する作業用ディレクトリ

関数型言語”兼”定理証明支援系Leanの環境構築

Leanとは Leanは普通の関数型言語であり、なおかつ定理証明支援系でもある大変パワフルな言語です。つまり原理上実行前にわかる性質は、型に埋め込んだり、頑張って自分で証明したりすることができます。そう考えるとワクワクしてきますね! またコンパイラフロントエンドのAPIを自由にユーザーが使えるので、標準の文法や意味論とまったく同じレベルで自分の拡張

cargo watch で .env ファイルの変更も監視する

TL;DR .env と .trigger を .gitignore に追加して、以下のスクリプトを cargo run の代わりに実行する。 run.sh #!/bin/bash set -e -u -o pipefail # kill all background child processes when exit. trap "exit" INT TERM trap "kill 0" EXIT realpath() { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" } SCRIPT_DIR="$

curl でステータスコードとBodyを一緒に返す

curl コマンドで WebAPI を呼び出すときにリクエストの Body だけでなくステータスコード(201, 403 など)も利用したいことがある。そのような時は、 curl コマンド実行時に -w "\n%{response_code}" を付けて、 HTTP リクエストのステータスコードをコマンドの出力に追加する。 参考: https://everything.curl.dev/usingcurl/verbose/writeout これを後で分割することでレスポンスの Body とステータス

Enum での 比較におけるPartialEqとmatchesの違い

RustのEnumで比較をする場合PartialEqを利用していましたが、matches!も比較に使えます。 比較結果が変わることがあったのでこちらで共有します。 enumの定義 最初にシンプルなenumを定義します。 enum Sports { BaseBall, BasketBall, } シンプルな比較 まずはそのまま比較します。 == と matches! 両方で試します。 let b1 = Sports::BaseBall; // こちらはエラーです。 println!("{:?}", b1 == Sports::BaseBall);

Rustで真面目にフロントエンド開発ができるのか考えてみた

幸運なことに、私は最近バックエンドはほぼ全て Rust で開発しています。一方でフロントエンドは React で開発しているのですが、もし同じく Rust で書けたら Rust 信者の私としてはとても嬉しくないか?と日々思っていました。実はこれは夢ではなく、Rust のプログラムを WebAssembly(WASM)にコンパイルすることで Web ブラウザでも JavaScript から呼び出すことが出来ることからア

入力単語のサジェスト処理をRustで書いてReactから呼び出す

これは株式会社LabBase テックカレンダー Advent Calendar 2022、15日目の記事です。 https://qiita.com/advent-calendar/2022/labbase 13日目の記事は sotabkw さんによる「Reactとアクセシビリティ(a11y)対応」という記事でした。ぜひご覧ください。 https://qiita.com/sotabkw/items/9e78bf1103117b091ee5 今回は、Rustで書いた入力単語のサジェスト処理を紹介します。 概要 編集距離を元に、フォームに入力された
123

エラータイトル

エラー本文

エラータイトル

エラー本文