当社では、エンジニアの継続的なスキルアップと新しい技術への挑戦を目的として、有志によるRust勉強会が開催されました。 本記事では、2部構成で行われた活動内容とその成果について共有します。 第1部:The Book輪読会 - Rustの基本概念を体系的に学習 第2…
Difyのワークフロー機能を使い、お客様からの質問に対して自動で回答を生成するSlack Botを作成しました。回答生成の際には、過去にお客様から頂いた質問と回答させていただいたデータに加え、さらに必要となる専門的な固有の知識も与えるようにしています。…
はじめに 導入 AI技術の進化が目覚ましい昨今、当社のエンジニアがどのようにAIを活用しているのか、その実態を探るべくアンケートを実施しました。本記事では、その結果から見えてきたリアルな声と、今後のAI活用の可能性についてご紹介します。 ちなみにこ…
はじめに 2025年7月、当ブログをGitBookからはてなブログへと移行しました。 今回の記事では、ブログ移行の経緯と実施手順についてご紹介します。 検討移行理由 結論としては、GitBookの年間利用料が割高と感じたためです。 経緯をもう少し詳しくご説明しま…
脆弱性診断の依頼内容 A社とB社の2社に、同時にある弊社Webシステムの脆弱性診断を依頼させていただきました。 A社はWebアプリケーション診断を得意とし、B社はソースコード診断を得意とする会社様です。 Webアプリケーション診断とソースコード診断は、それ…
はじめに この記事では、メール送信サーバーを設定時に、ほぼ必ず設定することになるSPF、DKIM、DMARCについて、知識の整理と共有のために概要や効果、設定方法を紹介します。 SPF SPFは、Sender Policy Frameworkの略で、ドメインの所有者が「自分のドメイ…
掲題の通りEMConfJP2025に参加してきました。 テーマは「増幅」と「触媒」。 2025.emconf.jp 懇親会付きのチケットも当日分のチケットもすぐに売り切れて、当日も大盛況だったと思います。自分が聞いた限りの講演のテーマとしては「事業・経営戦略と技術戦略…
環境 RDB PostgreSQL 13.3 トランザクション分離レベル read committed (デフォルト) 実験環境 IntelliJ IDEA 2024.3 (Ultimate Edition) TLDR PostgreSQLにおいて、トランザクション内で同一キーの行を delete - insert する場合、同時に実行される他のトラ…
はじめに 弊社ではAWSリソースをTerraformやCloudFormationで管理し、plan/applyの実行にはGithub Actionsを使っています。本稿ではGithub ActionsからAWSリソースを操作するためのIAMロールの設定について説明します。 IAMロールを利用するメリット Github …
前置き AWS Lambda関数について、 ソースコードはgitで管理したい ソースコードのデプロイは容易に行いたい AWSの各リソースはTerraformで管理しており、別途Lambda向けのものを作る必要はない という場合には、Lambdaのデプロイツールである lambroll を使…
はじめに Zendeskにおいて、社内の複数サービスの問い合わせフォームを一本化し、そこに送られてきた問い合わせを対象サービスの担当者に自動で振り分けてメールで通知するための設定について記載します。 前提 Zendesk環境 こちらの手順で問い合わせフォー…
背景 当社では、社内で共通に使いたい機能をgemに切り出し、機能の利用側のGemfileでプライベートリポジトリを参照しています。 gem "some_internal_library", git: "https://github.com/precena-dev/some_internal_library.git", tag: "v1.0.0" ローカル端…
AWSリソースに対する異常検知として、CloudWatch Metricsに対して設定したしきい値を超過した場合、CloudWatch Alarmで通知を飛ばすことができます。 日頃Slackをよく見ている身としては、何かあったらSlackチャンネルへ通知されると嬉しいことから、仕組み…
背景 AWS SESでメール送信環境を構築したときは、合わせて メールが不達になったこと を検知する仕組みも構築します。 AWS SESから送信したメールでメール不達があまりにも多いと、AWS SESの利用が停止されるためです。 さらに、AWS SESの本番運用を始める前…
はじめに この記事では、Railsの本番環境におけるアプリケーションサーバー(pumaやunicornなど)のプロセス数とスレッド数のパラメータ設定に関する情報をまとめます。 プロセスとスレッドの特徴概要 アプリケーションサーバーのパラメータを設定する際に、…
背景 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に参加したエンジニアの中で印象に残ったセッションをピックアップ…