背景 AWS CLIやterraformでスイッチロール時にMFAを利用する際、コマンドを実行する都度MFAコードを入力するのは煩雑です。AWS Vaultを使うとスイッチロール後のプロファイルのシェルに入れるようになります。 構成 defaultプロファイルでIAM ユーザーによる…
概要 スイッチロールの設定手順にて、AWSコンソールでのスイッチロールの方法について記載しました。 開発中にスイッチロール先でAWS CLIを利用したい場面もあるかと思います。 その場合の設定内容について記載します。 状況定義 以下のようにアカウント設定…
to_jsonメソッドの注意点 ActiveSupportには、to_jsonという便利なメソッドがあります。 Railsで開発しているときに使う場面としては、DBから取得したレコードをAPIのレスポンスとして返す場合があります。 しかし、deviseを認証に使っているサービスなどで…
ルールを設定する目的は、コンテンツ全体の統一感を出したり、定まったルールの元でコンテンツを書くことで、読者にとって読みやすいコンテンツにすることです。 しかし、コンテンツを書くためのハードルを上げたくもないので、ルールを多く管理したくもあり…
この記事では、一般的に知られているデータ分析プロセスを簡単に紹介します。 データ分析における標準プロセス データ分析において、一般的に知られている標準プロセスには以下が存在します。 CRISP-DM(*1) KDD(*2) 以下、それぞれについて概要を紹介し…
ビジュアルリグレッションテスト(Visual Regression Test)とは ビジュアルリグレッションテスト(以下、VRT)は、画像回帰テストとも呼ばれます。 VRTは、改修による予期せぬ UI のデザイン崩れを検出することを目的としています。 UIのスクリーンショット…
背景 userの情報を返すAPIを実装する際、render json: user とするとuserモデルのすべてのフィールドを含むJSONを返してしまい危険です。パスワードはハッシュ化されているものの、deviseが提供するフィールドlast_sign_in_ip などクライアントに返してはな…
インストール 公式サイトでインストーラーをダウンロードしてインストールしてください。 docs.aws.amazon.com 設定 基本的に以下の公式サイトに従うだけです。 docs.aws.amazon.com 公式サイトにも載っている内容ですが、以下のコマンドを入力して、 % aws …
Railsには、スキーマファイルと呼ばれる schema.rb があります。 Railsガイドには Active Recordはマイグレーションの時系列に沿ってスキーマを更新する方法を知っているので、履歴のどの時点からでも最新バージョンのスキーマに更新できます。Active Record…
ngrokとは ngrok(エングロクと読む)は、httpのトンネリングサービスです。 ngrokでホストされるURL(例:http://xxxx.ngrok.io/ )へのアクセスをローカル環境のwebサーバー(http://localhost:3000 など)にトンネリングしてくれます。 例えば、stripeやL…
Stackとは Herokuで稼働するサーバーのベースとするOSのバージョンのようなものです。 公式サイトを見ると分かりますが、Ubuntu Linuxのバージョン番号とStack名が揃えられているようです。 Stack関連のコマンド 使用中のStackを確認 以下で、Stackの確認が…
はじめに この記事では、M1 Macでの開発環境構築でハマったところを共有するために、記載して行きます。今後、随時新しいハマりどころが発生した場合は、情報を追加していきます。 環境構築の前提 筆者の環境では、環境構築の検証もかねているので、Rosetta …
はじめに 当社のRailsシステム間連携では、各システムで公開しているWeb APIを使っています。 今までは各システムを bin/rails s で起動し、開発を行ってきました。 ただ、 連携するシステムが増えたり、各システムで使うジョブワーカーが増えたりした結果、…
背景 当社では、社内で共通に使いたい機能をgemに切り出し、機能の利用側のGemfileでプライベートリポジトリを参照しています。 gem "some_internal_library", git: "https://github.com/precena-dev/some_internal_library.git", tag: "v1.0.0" ローカル端…
はじめに 5/11(木)~5/13(土)に、長野県松本市のまつもと市民芸術館にてRubyKaigi 2023が開催されました。 弊社からは4名のエンジニアが現地で参加しました。 この記事では、RubyKaigi 2023に参加したエンジニアの中で印象に残ったセッションをピックアップ…
Rails歴が長い人でも、意外とmigrationの追加用のコマンドを覚えていられず、毎回調べていているので、実装で使ったもの・使いそうなものを少しずつ追加しています。 この記事は定期的に内容が追加される予定です。 よく使うパターン 空のマイグレーションフ…
概要 cats に含まれる Validated は、複数の入力値のバリデーションを一つにまとめて返すことができる大変便利な型です。 typelevel.org 業務において、入力値のバリデーションを行った値をさらに別の入力値として使いたいというケースがままあり、プロジェ…
すべて公式サイトに記載されている内容ですが、よく使うコマンドをすぐに参照できるように、一覧としてまとめます。 コマンド集 データベースのバックアップを保存する % heroku pg:backups:capture --app your-app-name データベースのバックアップ一覧を確…
ngrokが最近メジャーバージョンアップして、バージョン3がリリースされましたので、アップグレード手順を紹介します。 なお、設定ファイルは、下位互換性がなくなっているので、ngrok本体のアップグレード後には、設定ファイルのアップグレードが必要になり…
zsh-completionとは zshを使うときに、補完用の情報を設定をしておくことで、例えば、git、aws-cli、dockerなどのコマンドやサブコマンドをTabキーで補完してくれるツールです。 公式サイトは、以下です。 github.com zsh-completionのインストール macOSを…
前置き 当社のエンジニアは全員フルリモートで働いているため、対面での相談は Google meet を使うことが多いです。 ただ、対面で相談するまでの準備に手間がかかると、気軽な相談はしづらくなりがちです。 そこで当社では、「Slackのカスタムレスポンスとem…
この記事でインストールしているバージョンは古くなっている可能性もあります。最新バージョンに読み替えて利用するようにしてください。 想定環境 OS:Mac Scala:2.13.6 Java と sbt のインストール Scala を使うには Java と sbt が必要になります。バー…
この記事は、独特なネーミングがされていて、知っているようで知らないHomebrewの用語の意味を正しく理解するために書きました。 用語一覧 Homebrewは「自家醸造」の意味です。この「醸造」の世界観の元で、Homebrewで扱う一部の概念の名前がつけられていて…
先日、Rails6.1系で動いていたシステムをRails7.0系にアップグレードしました。 そのシステムは Rails製APIアプリケーション コード量・利用者ともに小規模 テストコードが充実している と比較的アップグレードしやすかったこともあり、無事に完了しました。…
前置き 最近、当社の勤怠システムが更改されるとともに、勤怠打刻のWeb APIも公開されました。 すると、エンジニア間で「わたしのかんがえたさいきょうのきんたい」ブームが起き、いろいろな勤怠打刻方法が生み出されました。 今回は、私の作成した Raspberr…
OpenAPIとは RESTfulなWebサービスを記述、生成、利用、可視化するためのインターフェースファイルの仕様です。 以前はSwaggerフレームワークの一部でしたが、2016年にOpenAPI Initiativeが統括する独立プロジェクトとなりました。 Swaggerや他のいくつかの…
過去に書いたソースコードを読んでいて、仕様を理解するのに手間取ってハマったので、共有のために記事を書いておきます。 find_or_initialize_byメソッドの例 以下のようなコードを見かけたとします。 user = User.find_or_initialize_by(email: 'sample@pr…
概要 AWS上で稼働するアプリが増えてくると、アプリごとにOrganizationを作りたくなります。この際、スイッチロールという機能を使うとOrganizationごとにIAMユーザーを作る必要がなくなり、ユーザー管理をシンプルにできます。本記事ではスイッチロールの方…
Prettierとは おもにJavaScriptなどのフロントエンド系のソースコードのフォーマッタです。プラグインを追加することでRubyなどの言語にも対応可能です。詳細は公式サイトを参照してください。 以下、開発プロジェクトへのインストール手順を説明します。 Pr…
当社の日常業務の中で、Slackのリマインダーを設定することは、頻繁にあります。 しかし、Slackのコマンドを使ってリマインダーを指定する際、とくに、日時の指定の仕方を中々覚えられず、公式ヘルプを見に行くことが多いです。 リマインダーを設定する | Sl…