Railsでクラスインスタンス変数とクラス変数を利用する前に、設計を見直そう

下記のようなクラスインスタンス変数を定義した後に、値を確認する方法としてAPI::APIBase.class_eval { puts @remote_host }があります。class_evalは、Moduleクラスのインスタンスメソッドでブロック内でレシーバ定義式の中であるように振舞います。 ENV['…

コピペでSSH設定をすると危険だということを「OpenSSH実践入門」から学んだ

OpenSSHを基礎から学ぶことができる「OpenSSH実践入門」を読みました。ローカルで編集したコードをGitHubにpushするためにSSHのKeyを登録する必要があるなど、身近なところで頻繁に利用されている技術ですが、毎回コピーアンドペースト(以下、コピペ)で何も…

docker-composeでUbuntuのイメージのみを管理しようとしてハマったので、ruby-jpで質問した

環境 $ docker --version Docker version 19.03.1 本題 Ubuntu18.04をベースイメージとしたDockerfileを作成し、docker-composeでコンテナの管理をしようとすると、イメージからコンテナを作成されていることが標準出力から確認できるのですが、attachをする…

ラックサーバーでRAID0構成を組んだ

創意ラボさんが主催する、「サーバーにメモリ刺してもらっていいですかね」に参加しました。 connpass.com 参加者は6人いたので、ペアで作業をすることになりました。 内容は、以下のようにとても濃いものでした。 ラックサーバーにメモリを刺す RAID0構成を…

manを実行すると「No manual entry for ...」と表示されるコマンドの利用方法をどうしても知りたい時の対処法

動作環境 macOS Mojave # echo $0 /bin/bash 利用可能なコマンド一覧を取得するには、compgen -A commandまたはcompgen -acを実行すればよいことを知りました。 そこで、man compgenで詳しい利用法を確認しようとするとNo manual entry for compgenというメ…

git rev-parseの説明にあるPick out and massage parametersのmassageとは何か

Git

Gitのバージョン $ git --version git version 2.21.0 git rev-parse --show-toplevelを実行すると、Gitで管理しているrootのpathを知ることができます。 rails new check_rev-parse-dirでRailsプロジェクト作成してgit rev-parse --show-toplevelの動作確認…

manの結果をgrepできるようにするLinuxコマンドについて

特定のLinuxコマンドのコマンドやオプション名を忘れたが、一部のみ覚えている時にmanコマンドの結果からgrepしたいことがあります。 manコマンドで特定のLinuxコマンドのドキュメント読もうとすると、Manual pageが起動しますが標準出力されないためgrepコ…

サービスの管理を行うsystemctlコマンドについて調べてた

ISUCON9の練習をするため、Vagrant ISUCONを利用しました。チームはGoで参加するので、初期実装はPythonでした。言語を切り替える方法がわからず、悪戦苦闘していたのですがsystemctlコマンドを用いることで実現できることがわかりました。 解決する過程で、…

git remote rmがgit help remoteした時に表示されてなくて困った

Git

とあるプロジェクトをForkした後に、ローカルでCloneをして遊んでいると予期せず間違ってPRを元プロジェクトに投げてしまいました。そこで、Forkをしたリポジトリを削除し自分で新しくリポジトリを作成しました。変更に伴い、リモートリポジトリのリンク先を…

SendGridでメール配信を実装した後に開発者セミナーに参加したら理解が深まった

先日、SendGridにてメール送信の実装をしました。 個人でも学習のためSendGridに登録していると開発者向けセミナーへの参加案内のメールを受け取り、Doorkeeperに登録して参加しました。 予想以上に学びになったセミナーだったので、実装とセミナー通じて得…