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のはじめの一歩を紹介します。

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

id:kizashi1122 です。 弊社が開発・運営している Re:lation でも遅ればせながら Exchange Online の先進認証に対応しました。 Microsoft が 2020/10/13 にExchange Online の基本認証を廃止するというアナウンスをしたためです。 support.microsoft.com こ…

squid を使ってみた

こんにちは masm11 です。 systemd シリーズの途中ですが、ここで別のネタを挟みたいと思います。 タイトルのとおり、今回は squid です。 個人的に squid をインストールして使ってみましたので、説明してみたいと思います。 squid とは / 使用目的 squid …

systemd - unit ファイルの編集編

こんにちは、masm11 です。 systemd シリーズの第3回です。 blog.ingage.jp blog.ingage.jp 前回は .service の書き方を説明しました。 unit ファイルには他にも種類がありますが、 ここで unit ファイルの書き換え方を説明したいと思います。 まるっと置き…

systemd - service 編

こんにちは、masm11 です。 前回から始まった systemd シリーズ。今回は .service ファイルの書き方です。 .service ファイルとは このファイルにサービスの定義を記述します。 sysvinit 等であれば /etc/init.d/ や /etc/rc.d/ に置いていた script の代わ…

systemd - サブコマンド編

お久しぶりです、masm11 です。 今更かと思いますが、今回から何回かに分けて、systemd について説明したいと思います。 systemd とは、Linux の init システムを置き換えるものです。 PID 1 として起動され、 サービスの管理やネットワークの管理、時刻の管…

高速検索 the_silver_searcher を使ってみる

こんにちは、masm11 です。 たまには新しいツールでも導入して快適になってみましょう。 今回ご紹介するのは、高速検索ツール the_silver_searcher です。 検索の仕方の変遷 以前は grep を使ってましたよね。 grep foo *.rb これだとカレントディレクトリし…

tar で固める際に進捗を知る

こんにちは。masm11 です。 大きなディレクトリを tar で .tar.gz に固めることってありますか? 時々ありますよね。 最近は zip の方が多いのでしょうか? 私は tar を使っています。例えば以下のようにします。 tar zcf /bak/backup.tar.gz dir しかし、大き…

dovecot が起動してない?

どうも id:kizashi1122 です。 弊社が開発・運営している Re:lation というサービスの中のサーバではないのですが、とある用途で IMAP のサーバをAWSのEC2上に立てていました。ソフトウェアとしては dovecot を使っています。 Dovecot さて、社内の利用者よ…

割り算の余りは?

こんにちは、masm11 です。 突然ですが、今回は、負の整数を正の整数で割った時の余りは 0 以上なのか 0 以下なのか、 という話を書きたいと思います。 具体的には、-22 % 3 はいくつなのか、というお話です。 実は、言語によって違うのです… 2 になるものた…

Gmail API(Google OAuth) 利用承認取得記 - 完結編

こんにちは。Tedです。 いよいよ今回でGmail API利用にかかるGoogleからの承認の取得記のラストです。 これまでの記事はこちら。 blog.ingage.jp blog.ingage.jp 前回までで、Googleでの審査は一通り完了しました。いよいよセキュリティ評価です。 セキュリ…

Gmail API(Google OAuth) 利用承認取得記 - 続

こんにちは。Tedです。 今回はGmail API(Google OAuth)の承認を得るにあたって行ったこと・起こったことについて書きたいと思います。 前回の記事はこちら blog.ingage.jp 前回はGoogleへの申請までを書きました。今回は申請でどのようなことを行ったのか…

Gmail API(Google OAuth)利用承認取得記 - 思ったより大変でした

こんにちは。Tedです。 先日メール・LINE共有クラウドRe:lationにてGoogleからGmail API利用の承認を得ました。予想していたより大変であったので、備忘録的にここに記載しておこうと思います。 Google OAuth利用の声は高まっていた Re:lationではメールの送…

macOS Catalina の NFS 問題を解決する

こんにちは、masm11 です。 弊社では、macOS 上の Vagrant 環境内から、macOS のディレクトリを NFS で mount して、 開発しています。 仮想マシンとしては VirtualBox を使用しています。 この度、私に貸与された mac の macOS を Catalina に上げた ところ…

Ruby で backtrace を取得する

こんにちは、masm11 です。 Ruby で、「このコードのここに来た時、どこからどう呼ばれてきたのか知りたい!」ということは ありませんか? よくあると思います。 おそらく最近の IDE なら、問題なく、いつでも見られるのでしょう、きっと。 しかし私はそうい…

Terminator が起動しない原因を探る

こんにちは、最近趣味でいろんなものをデバッグばかりしている気がする masm11 です。 先日は scp の問題でしたね。 blog.ingage.jp 今回問題だったのは、ターミナルエミュレータ (端末) である Terminator です。 私はデスクトップ環境にボタンを配置し、そ…

@johtani さんと弊社サービスの Elasticsearch について話しました(実装編2)

前回のエントリでは、検索アルゴリズムとしては単純な、でも弊社のサービスにはマッチしている N-gram を採用しているということをお伝えしました 。また Elasticsearch ではどういう設定しているかもお伝えしました。 検索結果のハイライト(highlighting)…