# から始まるコミットメッセージは無視される

起こったこと 僕はコミットメッセージに #ISSUE_NUMBER や #PR_NUMBER を積極的に入れる派閥の人間なので git revert -m 1 xxxxxxxxx を行った時にコミットメッセージの編集で "#PR_NUMBER をマージしたコミットをリバートした #PR_NUMBER_2 をマージしたコ…

Linux デスクトップの環境変数、どこに設定してますか?

こんにちは、時々 Linux デスクトップの話を混ぜていきたい masm11 です。 今回は Linux デスクトップの環境変数をどこに設定するか、 というテーマで書きたいと思います。 環境変数の設定方法はいくつか用意されています。その紹介と、結局どこがいいの? と…

サーバのSSL証明書情報を調べるには?

id:kizashi1122 です。 弊社のサービスを利用しているお客様から「設定したSMTPサーバにうまく接続できない」という問合せを受けることがたまにあります。 接続できない原因としてありえるのが、SSL証明書の問題です。有効期限が切れていたり、接続に使った…

Athena のパーティション設定2種

こんにちは、masm11 です。 今回は AWS Athena のパーティションの設定方法について説明したいと思います。 まず Athena とは Cloudwatch Logs やその他の場所でログが発生すると、 手軽に検索したくなりますよね。 そういう場合、S3 に置いておくと Athena …

RSpec の spec type を独自フォルダ配下の spec にも自動で付与したい

おはようございます! 最近 DMM Books の70%OFF祭りで読みたかった技術書を50冊 *1 ほど買い込んだ @shutooike です! 前回 と同様に、今回も整備中に見つけた RSpec 小ネタを共有します。 前提条件 rspec-rails: 3.9.0 spec type の自動付与とは? # spec/r…

RSpec で特定の spec type の時だけ before フックを動かしたい

おはようございます! 最近は隙間時間にインゲージのテスト環境を整備をしている @shutooike です! 今回は整備中に見つけた RSpec 小ネタを共有します。 前提条件 rspec-rails: 3.9.0 やりたいこと RSpec で特定の spec type の時だけ before フックを動か…

Content-type: message/rfc822 の謎

id:kizashi1122 です。 メールの話です。 メールってとてもややこしいんですよね。 マルチパートと言って、パート部分を複数持つこともできますし、マルチパートを入れ子にすることもできます。 メール本体 本文(テキスト) 本文(HTML) 添付ファイル1 み…

OS をアップデートしたら HTTP でつながらなくなったので調べてみた

こんにちは masm11 です。 私は社内向け某サービスを開発・運用しています。 先日、そのステージングで OS をアップデートしたところ、HTTP/HTTPS で つながらなくなってしまいまい、原因を調べました。今日はその件について 書きたいと思います。 やったこ…

Linux デスクトップにおけるクリップボードの性質

こんにちは、masm11 です。 今回はかなり毛色を変えて、デスクトップのある身近な機能について プログラム的な話をしようと思います。 その機能とは、クリップボードです。 セレクションとは Linux デスクトップにおいて、「クリップボード」と、それと似た…

ローカルの AWS のアクセスキーを自動的にローテーションする

id:kizashi1122 です。 最初に発行したAWS のアクセスキーをそのままずっと使ってませんか? docs.aws.amazon.com そもそもできるならばキーは発行すべきではありませんが、発行することが必要なシチュエーションもありますよね。 上記記事にも、 アクセスキ…

ActiveJob で queue を動的に指定する3つの方法

おはようございます。 @shutooike です! 業務上であるジョブのキューを条件によって動的に変えたい場面に遭遇し、ActiveJobのソースを読んだのでメモを残しておきます。 前提条件 Rails version: 5.2 queue_adapter: Sidekiq 対象のジョブクラスはこんな感…

MessageEncryptor の互換性を調べてみた

こんにちは、masm11 です。 Rails に MessageEncryptor というクラスがあります。 何かを暗号化/復号する際に便利ですね。 例えば、 KEY = 'somekeysomekeysomekeysomekeysomekeysomekeysomekey' enc = ActiveSupport::MessageEncryptor.new(KEY, cipher: 'a…

MITM プロキシを作る

こんにちは、masm11 です。 MITM (man-in-the-middle) プロキシをご存知でしょうか? ブラウザとサーバの間に入って HTTPS の仲介をするのは普通の プロキシと同じですが、通信内容を覗くことができます。 もちろん自由に覗けてしまっては HTTPS の意味があり…

Rails 5.2 で Rails 6 の credentials 機能を使う

こんにちは、masm11 です。 今回は久しぶりに Rails について書きたいと思います。 Rails 5.1~5.2 で credentials 機能が一新され、 credentials.yml.enc と master.key になりましたね。 そして Rails 6 ではそれを環境ごとに用意できるようになりました。…

Exchange Online の先進認証に対応しました(3)

id:kizashi1122 です。 前回の記事から2ヶ月が経ってしまいました。 続きを書きましょう。 blog.ingage.jp 時間がだいぶ経ったので、ここで目的と前回までのまとめを整理しておきます。 目的 目的は、「Exchange Online の POP3/SMTP を利用する際に、パス…

Rails 6.1 つまみ食い② : ActiveStorage の永続的なURL

おはようございます! 2021年はもっとJSと仲良くなりたい @shutooike です! 今回試すのは ActiveStorage の Permanent URLs です。 セットアップ blog.ingage.jp 前回の記事↑で作った Rails アプリを今回も使います! まず ActiveStorage をインストールし…

Ruby の with_index を追う

こんにちは、masm11 です。 先日、Ruby の with_index メソッドを知り、衝撃を受けました。 今回は使い方を簡単に紹介し、更に with_index の実装に迫りたいと思います。 with_index の使い方 Ruby の Array には、Array#eachメソッドがありますね。 array.e…

Docker Composeを使って複数のコンテナを管理する

こんにちは、にしむらです。 今回は複数のコンテナを定義してアプリケーションを開発する方法です。 Docker Composeによって、Rubyとデータベース(MySQL)のコンテナを連携させて開発ができるようにしていきます。

grape で URI パラメータとしてメールアドレスを受け取る

明けましておめでとうございます。masm11 です。今年もよろしくお願いします! grape をご存知でしょうか? Rails で API を作る時に便利ですね。 今回は、grape を使った API で URI パラメータとしてメールアドレスを受け取ろうと してハマったので、ご紹介…

systemd - .timer 編

こんにちは、masm11 です。 systemd シリーズの第5回、最終回です。 初回: 前回: 今回は .timer ファイルについて説明します。 .timer ファイルとは 以前から Linux/UNIX を管理している方には、cron の代わり、と言うと 話が早いかと思います。前回比較し…

【解決】nginx で gzip 圧縮がされない問題

id:kizashi1122 です。 2020年ももう終わりですね。今年最後のエントリです。今年も色々ありました。 その色々あった中で nginx がらみで面白いことがあったのでシェアします。 弊社サービス Re:lation では Ruby on Rails を採用しており、AWS 上で稼働させ…

IE11 対応をやめることで得られるメリット

こんにちは。石田( @ishiyu )です。 今回は、弊社サービスRe:lation のIE11対応終了を受けて、IE11対応を終了することでエンジニア視点で得られるメリットを紹介したいと思います。 1. WebP対応 個人的に一番大きいのは、これかなと感じています。 WebP は、…

Rails 6.1 つまみ食い① : 関連付けの非同期削除

おはようございます! 公私ともに2020年を納めきれるか心配になってきた @shutooike です。 今回から数回に亘って Rails 6.1 の新機能を浅く広くつまみ食いしていこうと思います! セットアップ techracho.bpsinc.jp こちらの記事を参考に dip を使って環境…

第2回 Dockerのコンテナとファイル共有して継続的に開発する

こんにちは、にしむらです。 今回はコンテナとファイルを共有する方法についてです。 前回のSinatraのサンプルですと、ソースコードを修正するたびにコンテナをビルドする必要がありました。 今回はホストのディレクトリをコンテナにマウントすることで、コ…

Amazon Linux2 でサクッとワイルドカードドメインの証明書を作成する

id:kizashi1122 です。 LetsEncrypt でワイルドカードドメインの証明書を作ることがあり簡単にできたので記録しておきます。 弊社 masm11 の過去の記事である blog.ingage.jp と鬼のようにかぶってます。 前提 本記事では、「example.com および *.example.c…

systemd - .socket 編

こんにちは、masm11 です。 systemd シリーズの第4回です。 初回: 前回: 今回は .socket ファイルについて説明します。 .socket ファイルとは 以前から Linux/UNIX を管理している方には、inetd の代わり、と言うと 話が早いかと思います。 この unit ファ…

Exchange Online の先進認証に対応しました(2)

id:kizashi1122 です。 さて。 Exchange Online の先進認証に対応しました(1) - インゲージ開発者ブログ 前回のエントリでSMTPとPOP3の先進認証対応のため Azure AD 側にアプリを作るところまでは終わりました。 今度はサービス側に設定をしていきましょう…

Rails で created_by と updated_by をいい感じにセットしたい

はじめまして! 8月にインゲージに入社したエンジニア1年生の @shutooike です!(保険) 突然ですが、弊社サービスの設定系のテーブルにはその設定を誰が作成・更新したものかを記録するために created_by, updated_by というログインユーザーのIDを入れる…

HTML/CSS レイアウトの書き方

こんにちは。石田( @ishiyu )です。 今回はフロントエンジニアとして、HTML/CSS レイアウトについて説明したいと思います。 弊社は、自分以外にフロントエンジニアと呼べる人がいないため、失敗例も交えて説明できればと思います。 TL;DR 思ったより長くなっ…

Dockerで最小構成のSinatraを起動する

はじめまして、にしむらです。 今回はrubyフレームワークSinatraの構築を通じてDockerfileのはじめの一歩を紹介します。