ESLint の no-multi-spaces で TypeScript のType 宣言の空白を許容させる

ESLint の no-multi-spaces で TypeScript のType 宣言の空白を許容させる

コマンドラインが変な状態になったら

こんにちは、masm11 です。 今回は小技を一つ紹介したいと思います。 症状 コマンドラインがこんな状態に陥って、端末を閉じるしかなかった経験、ありませんか? ctrl+p や ctrl+h が効かない Enter が効かない (押しても ^M と表示される) プロンプトが左端…

N+1問題について勉強会で発表してみた

ryohei515です。 Ruby on Railsを使う上で、N+1問題は避けては通れない問題です。 インゲージでは週に1度、社内勉強会を行っているのですが、今週は私が発表担当だったため、このN+1問題を知識整理がてら、社内勉強会で共有しました。 簡単な内容ではありま…

DockerのBuildKitがヒアドキュメントをサポートしました

Dockerでヒアドキュメントが使えるようになるみたいです。 DockerfileでのRUNコマンドの記述が楽になりそうです。 RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y ... 参考サイト www.docker.com ヒアドキュメントの機能を利用するに…

過去コミットを分割してたら、知らないファイル変更が現れた

はじめに topic-a ブランチで新たに作成した ComponentX を topic-b ブランチでも使いたくなったので、 topic-a からコンポーネントXを作成したコミットだけ cherry-pick して別PRにしたいが、 コンポーネントXを作成したコミットには他の変更(コンポーネン…

ChatOps: SlackからLambdaに連携してみる(5)

id:kizashi1122 です いよいよ大詰めです。 Lambda の中で「Slack に投稿する」ということをします。 今回は Ruby を使っています。Ruby だと以下の gem を使いたくなります。 github.com Lambda で gem を使うってどうするんでしょうか。 今回はこちらのや…

PostgreSQLでパフォーマンスを比較してみた (EXISTSとINNER JOIN)

はじめまして。5月に入社したryohei515です。 前職ではOracleを使ってSQLを書く機会がよくあり、パフォーマンスチューニング等も行ってきました。 インゲージに入社してからSQLを書く機会があったのですが、DBがPostgreSQLであるため、これまで使っていた細…

Docker for Macのディスクイメージ容量を救いたい

Docker for MacのDisk image sizeの残容量が少なくなるとパフォーマンスが低下するようです。 そのために不要なイメージやコンテナなどを一括で削除するコマンドがあります。 docker for mac

QUIC を試してみた

こんにちは masm11 です。 QUIC の RFC が出ましたね。 https://datatracker.ietf.org/doc/html/rfc9000 5月なので2ヶ月も前ですが… というわけで、今回は遅ればせながら QUIC を試してみたいと思います。 nginx を設定 まず、nginx を QUIC 対応版にします…

ChatOps: SlackからLambdaに連携してみる(4)

id:kizashi1122 です。 ひとまず Slack から Lambda を呼び出すところまでは終わりました。 (といってもURL確認用のリクエストを受け取っただけです) ワークスペースにアプリをインストールする まだコードは何も書いてないですが、Slack から使ってみたい…

ChatOps: SlackからLambdaに連携してみる(3)

id:kizashi1122 です。 前回のエントリで発行した API Gatewayの URL をメモしておきます。 では Slack にアプリの設定をしましょう。 Slack 上でアプリを作る こちらにアクセスします。 Slack API: Applications | Slack 基本設定 Create New App ボタンを…

ChatOps: SlackからLambdaに連携してみる(2)

id:kizashi1122 です。 最初にSlack のアプリの設定をしたくなりますが、Slack 側から叩かれる URL の準備を先にする必要がありますので、先に Lambda の設定をしましょう。 Lambda の設定 Function を作成します。名前は何でもいいですが、slack-echoapp に…

Sophos Anti-Virus for Linux Free Edition が終わったので、今更 ClamAV をインストールした

こんにちは、masm11 です。 普段、家庭内サーバに Sophos Anti-Virus for Linux Free Edition をインストールして使ってました。 が、ある日突然、こんな通知が来ました。 Sophos Anti-Virus for Linux Free Edition の製品サポートは終了しています。 アッ…

ChatOps: SlackからLambdaに連携してみる(1)

id:kizashi1122 です。 最近、ChatOps ではないですが、ふと Slack から Lambda に連携し、AWS 内でゴニョゴニョしたいなと思い、下記のように連携をしたのですが、案外ネット上に情報がなく色々苦労したので、ここでまとめておこうかと思います。 目標 ここ…

Dockerイメージビルド時に変数を渡す

ビルド時にエンドポイントやトークン等を変数で渡したいときに、若干のハマリポイントがあります。 ワークディレクトリを変数で設定したいケースで説明します。

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

起こったこと 僕はコミットメッセージに #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 を利用する際に、パス…