【Java SE 8】java.util.function 内の関数型インターフェースを似たような役割ごとにまとめてみた

概要 基本となる4つの関数型インターフェース Function<T, R> Consumer<T> Supplier<T> Predicate<T> サンプルコード 関数型インターフェースの特殊化 引数を2つ受け取る 関数型インターフェースのサブクラス UnaryOperation<T> BinaryOperator<T> 関数型インターフェースのプリ</t></t></t></t></t></t,>…

【Ruby on Rails】オプション付きのコマンドライン引数を扱う

概要 自作コマンド --help (-h) オプション --version (-v) オプション --message (-m) オプション --uppercase (-u) オプション 例外処理 詰まったポイント オプション値が必要な場合は明示的に指定する optparse のバグ? コマンド化する まとめ 概要 Ruby…

【AWS】WordPress でサイト構築時に phpMyAdmin をブラウザから見れるようにする

概要 対応内容 phpMyAdmin をブラウザから見れるようにする DB アカウントのパスワードを変更する 最後に 概要 AWS で WordPress を使えないかと思って調べてたところ、丁度良いのがあったので試してみました。 サイトの構築は以下の手順通りでとても簡単に…

【SSH】最近触らなくなった?SSH の設定ファイルを見直してみる

概要 やる事リスト はじめに 対応手順 1. サーバーログイン 2. 公開鍵をサーバーに登録 3. /etc/ssh/sshd_config の修正 3.1. 認証方式を変更 3.2. 認証時の閾値変更 3.3. ポート番号を変更 3.4. root ユーザーのログインを禁止 3.5. プロトコルを Version 2…

【Ruby on Rails】POST リクエストにリトライ処理を入れる

概要 はじめに 対応方針 サンプルコード まとめ 概要 HTTP リクエストは必ずしも成功するものではありません。 リクエストを受け取るサーバ側の問題だったり、ネットワークの問題だったりで稀に失敗する事があります。 そう言った場合にリトライ処理(再送処…

【Ruby on Rails】rubocop と pre-commit を利用して git commit 時にコーディングチェックを行う

概要 rubocop とは 使い方 注意点 pre-commit とは 使い方 設定を解除したい場合 まとめ 概要 Rails アプリケーションに rubocop と pre-commit という gem をインストールして、git commit 時にコーディングチェックを行うようにします。 もし、コーディン…

【Ruby on Rails】オートコンプリート機能付き検索フォームを実装する

概要 gem の紹介 対応手順 1. Gemfile の修正 2. application.js の修正 3. Controller の修正 full オプション 4. ルーティングの設定 5. View の修正 6. form の実装 7. 検索機能の実装 まとめ 概要 Ruby on Rails でオートコンプリート機能付きの検索フォ…

【Ruby on Rails】Mysql2::Error: Data too long for column 'xxxxx' at row 1:

概要 エラー文言 原因 解決策 何のデータ型にすれば良いのか? 日本語文字って何バイトか? 例外処理を入れる まとめ 概要 自分が担当しているシステムでユーザーからデータの保存ができないとお問い合わせを受けたことがあります。 システムが高負荷になっ…

【Apache】502 Bad Gateway proxy: error reading status line from remote server

概要 エラー文言 原因 解決策 パフォーマンス確認 概要 内部ネットワークからインターネットへのアクセスをプロキシしているサーバで稀に 502 Bad Gateway のエラーを返していることがありました。 リクエスト元のサーバではリトライ処理を入れていたので問…

【Apache】http 通信を https 通信に変換してプロキシする

概要 必要なパッケージ 対応方法 余談 概要 内部ネットワークのサーバがインターネット上のサーバにアクセスする場合、セキュリティ上の理由でプロキシサーバを経由してアクセスする場合が多いと思います。 参考:プロキシサーバーを使うと、なぜセキュリテ…

HBase とは?HBase 初心者が最初に知っておいた方がいいと思った事まとめ

概要 HBase とは? 構成 Master サーバ Region サーバ データ構造 HBase の書き込み まとめ 概要 新しく HBase を扱うサーバ担当になりました。 IT 業界ではデータ利活用の分野が活発になっており、ビッグデータを安全かつ高速に扱える HBase のようなプラッ…

【Ruby on Rails】whenever を使って定期的にバッチ処理を行う

概要 導入方法 gem インストール 設定ファイル生成 定期的に実行したい処理を記載 設定の反映・削除など 設定の確認 設定の反映 設定の削除 まとめ 概要 Ruby on Rails で定期的にバッチ処理を実行する方法をまとめます。 定期的に処理を実行したい場合、ク…

【Linux】xargs コマンドの使い方がよく分からない

概要 xargs とは よく見る利用法 高速に並列処理できる exec オプションを使った場合 xargs コマンドを使った場合 Argument list too long の制限を受けない ドライランオプション 引数の場所を指定する 便利なワンライナー 最後に 概要 結構複雑な処理をサ…

【Linux】コマンドの標準出力を色付けして運用を楽しくする

概要 導入方法 拡張パッケージ exa colordiff grc ccze source-highlight 標準コマンドのエイリアスを設定 最後に 概要 単色の標準出力だと見づらいですし、運用していて楽しくないので、コマンドの標準出力を色付けしてくれる拡張パッケージをまとめました…

【Apache】graceful 再起動でホットデプロイを行う

概要 はじめに LAMP 環境とは? ホットデプロイとは? ホットデプロイ導入 graceful で再起動 コマンド 注意点 まとめ 概要 自分のお仕事は運用メインなので、リリース作業を行う機会が多いです。 正直、数年間同じ仕事をしているので、リリース作業は慣れま…

【Ruby on Rails】ログ出力とログローテートの設定まとめ【Logger】

概要 ログの設定 ログレベルの変更 ログファイルの変更 ログフォーマットの変更 ログ出力 ログローテート 日付でログローテート ファイルサイズでログローテート その他 まとめ 概要 Rails では ActiveSupport::Logger クラスを利用してログ出力ができます。…

【Ruby on Rails】API のレスポンスを生成するメソッドを紹介

概要 紹介する前に コピペして使っているメソッド 使い方 動作確認 おまけ ページが存在しません 最後に 概要 Ruby on Rails 5 からは API モードが導入され、API 専用のアプリケーションを簡単に作成できるようになりました。 railsguides.jp Ruby on Rails…

【備忘録】RAID とは? RAID の種類と仕組みまとめ

概要 RAID とは RAID の種類 RAID 0(ストライピング)とは RAID 1(ミラーリング)とは RAID 5(分散パリティ)とは RAID 0+1 とは RAID 1+0 とは おまけ RAID 0+1 と RAID 1+0 の比較 最後に 概要 最近、仮想サーバばかり扱っていて、実機サーバを自分で購…

【AWS】OpsWorks を使って Chef サーバの構築とノード追加

概要 Chef サーバを構築 1.『Go to OpsWorks for Chef Automate』を使ってみる 2.『Create Chef Automate server』で Chef サーバを作成 3. 設定の入力 4. Chef サーバの起動 5. Chef サーバにログイン デベロッパーキットのインストール ノード追加 最後に …

【画像解析 API を使ってみる】食べ物の画像は解析できるのか?

概要 画像解析 API Google Cloud Vision API IBM Visual Recognition API Microsoft Computer Vision API API の実行結果 Google Cloud Vision API IBM Visual Recognition API Microsoft Computer Vision API まとめ 最後に 概要 最近、食べ物の写真を撮っ…

【Ruby on Rails】重複しているレコードを取得する【MySQL】

概要 はじめに 重複しているレコードを取得 MySQL の場合 Ruby on Rails の場合 重複しているレコードを全て取得 MySQL の場合 Ruby on Rails の場合 おまけ 条件を満たさない重複レコードを削除する MySQL の場合 Ruby on Rails の場合 まとめ 概要 Ruby on…

【Ruby on Rails】画像は public と app/assets/images のどちらに設置すべき?

概要 画像を読み込む際のパスが違う アセットパイプラインについて CSS で使えるプロパティが違う public ディレクトリに置くケース まとめ 概要 Rails ではアプリケーション内で使用される画像の設置場所に、現在 2つの場所が存在します 。 public ディレク…

【AWS】サーバ間でファイルのリアルタイム同期を行う【rsync + xinetd + lsyncd】

概要 はじめに rsync とは? xinetd とは? lsyncd とは? 対応手順 パッケージのインストール rsync の設定 ポート解放 rsync の起動 xinetd の設定 xinetd の起動 rsync の動作確認 lsyncd の設定 lsyncd の起動 リアルタイム同期の動作確認 ファイル作成…

【Ruby on Rails】deleted_at を使って論理削除をしよう

概要 はじめに 導入方法 gem の紹介 ApplicationRecord に設定追加 カラムの追加 動作確認 最後に まとめ 概要 Rails には DB のカラム名に『created_at』『updated_at』と言う、設定しておくだけで、作成日時と更新日時を自動記録してくれる、お決まりの便…

【Ruby on Rails】require と permit の使い方がよく分からない

概要 はじめに params の中身を確認 params.require の中身を確認 params.require.permit の中身を確認 おまけ 配列のパラメータを受け取りたい場合 まとめ 概要 Rails 4 からストロングパラメータと言う新機能が導入されました。 具体的には require と per…

【AWS】.ssh/config を利用して、ログイン時のコマンドを省略する

概要 はじめに .ssh/config とは AWS にログインする際のユーザ名 キーペアの作成 ログイン方法 SSHコマンドでログイン .ssh/config を利用してログイン その他 まとめ 概要 インスタンスに毎回ログインする際、ユーザ名と鍵 PATH を記載するのが面倒くさい…

【Ruby on Rails】ルーティング member と collection の違い

概要 member の使い方 collection の使い方 まとめ 概要 Rails には index, show, new, edit, create, update, destroy の 7 つのデフォルトアクションが用意されています。 もし、これ以外のアクションを新しく追加したい場合、ルーティングに設定を追記す…

【Ruby on Rails】ルーティング scope と namespace の違い

概要 namespace の使い方 scope の使い方 まとめ 概要 Rails で API を作成するときに、URL 設計を気にすると思います。 例えは、ユーザ情報を操作する users API のエンドポイントを下記のようなパスで作成したいとします。 http://$(DNS)/api/v1/users こ…

【AWS】Ruby on Rails + Nginx + Unicorn + MySQL 環境構築

概要 環境 タイムゾーンの設定 ロケールの設定 Yum インストール 標準ライブラリ Git インストール MySQL インストール Nginx インストール Ruby インストール Bundler インストール Rails インストール Rails アプリ作成 Gemfile を修正 Nginx の設定 デー…

【Ruby on Rails】緯度経度から 2 点間の距離を算出する

概要 計算式 プログラムを作成 算出結果の確認 まとめ 最後に 概要 最近では企業が多くの API を公開しており、それらを利用して簡単にアプリケーションを作成できるようになりました。 その中には、店舗情報を扱う API も数多く存在します。 店舗情報を扱う…