2021-01-01から1年間の記事一覧

Ruby のコードを読む! 別スレッドで例外を起こす

こんにちは masm11 です。 以前の記事で Timeout.timeout のコードを読みました。 記事はこちらです。 blog.ingage.jp 新たなスレッドを起動し、時間になったら元のスレッドで 例外を発生させているらしい、ということは解りました。 しかし、それだけでは s…

Linux 生コンソールで日本語を表示する

こんにちは、masm11 です。 暇に任せて Linux の生コンソール (window system が動いていない黒背景の画面を私は勝手にこう呼んでいます。window system が動いていようが、コンソールはコンソールなので…) に日本語を表示する設定をしたので、今回はそれを…

iPhone充電スタンドをMagSafe化してみた、けれど

こんにちは。Tedです。 iPhone 12から採用になったMagSafeが気になっていました。 でも私のiPhoneは11。MagSafeに対応していません。 なのでQi充電器を使う際に、あの「ピタッ」とできるのはいいなあと思っていました。 iPhone 13を購入 今回、iPhone 13を購…

systemd で zfs legacy mount の問題を解決する

こんにちは、masm11 です。 ZFS に関連した mount で苦労したのでご紹介したいと思います。 ZFS の mountpoint 設定とは ZFS は自前で mountpoint を管理しています。 zfs set mountpoint=/home/service zroot/svc などとして mountpoint を設定しておくと、…

Ruby の Timeout.timeout の実装を読む

こんにちは、masm11 です。 Ruby の Timeout モジュールは便利で、 gs = TCPServer.open(0) Timeout.timeout(5) do gs.accept end このように自由にタイムアウトを設定できます。 今回はこの実装について見ていきたいと思います。 実装を見る Ruby のバージ…

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 そもそもできるならばキーは発行すべきではありませんが、発行することが必要なシチュエーションもありますよね。 上記記事にも、 アクセスキ…