とーますメモ

Ruby on Rails / Goなどの学習メモ

【Rails】Mac上でImagemagick + RMagickをインストール

Imagemagickはコマンドラインから画像の操作や表示ができるツール。 多くのOS及び言語から使用できるため人気がある。RMagickはRuby用のImagemagickインターフェース。 RubyからImagemagickを使用する場合は、このgemをインストールする。 Imagemagickのイン…

【Ansible】Macのbrew経由でAnsibleのバージョンを上げたら、ansible.cfgを読み込まなくなったっぽい。

自分用メモ。以前はansible.cfgを「/usr/local/bin/ansible/ansible.cfg」に置いており、 「/usr/local/bin/ansible/」内に「apps」ディレクトリを作成し、 さらにその中に各プロジェクトのディレクトリを作成し、プレイブックをその中に置いていた。こんな…

【Ansible】Macのbrew経由でPythonをインストールしたら、Ansibleが動作しなくなった。

表題のとおりだが、 今まで動いていたAnsibleが以下のエラーを吐くようになった。 dyld: Library not loaded: @executable_path/../.Python Referenced from: /usr/local/Cellar/ansible/2.5.2/libexec/bin/python2.7 Reason: image not foundいろんなサイト…

【Capistrano】リポジトリ変更時に行うこと

自分用メモ。以下のサイトがまとまっている。 capistrano3でリポジトリのURLを変更した時にやること - Qiita

【FTP】FTPのパッシブモードについて

FTP

自分用メモClientからパッシブモードで「FTPサーバ」に接続する場合は以下のようになるっぽい。 When Passive mode is used the Client first connects to the server on port 21. Then the client issues a PASV or EPSV command. The server then replies …

【初心者用】Nginxが何なのか、一から調べてみた。

そのそもよくNginxがわかっていないので自分用に内容を整理する。 1)Nginxの用途 ①「静的なコンテンツのWebサーバ」として利用 ・静的ファイルを配信するWebサーバとして利用 ②「動的なコンテンツのWebサーバ」として利用 ・Webアプリとの接続方法は、Fast…

【Sidekiq】Capistranoで独自タスクを書いてみた。

capistrano-sidekiqが微妙だったので、 自分でタスクを書いた。 append :linked_files, "config/database.yml", "config/secrets.yml", "config/sidekiq.yml" set :sidekiq_pid_path, -> { File.join(shared_path, 'tmp', 'pids', 'sidekiq.pid') } set :sid…

【Nginx】SSLセキュリティ設定について

以下のサイトの参考に設定すれば良さげ。 Generate Mozilla Security Recommended Web Server Configuration Files設定後、以下のサイトを使用しテストをする。 SSL Server Test (Powered by Qualys SSL Labs)A+とれてれば、OK.

【Shopifyアプリ】Nginxをリバースプロキシとして設定した場合のTips

自分用メモ以下のようにした場合、アプリ登録時にエラーになり redirect_urlにlocalhost:3000が表示される。 server { listen 80 default_server; location / { proxy_pass http://localhost:3000; } } 以下のようにしたら、正常に登録できた。 server { lis…

【Shopify】アプリ登録のURLはhttpsじゃないと駄目。

表題のとおりだが、開発環境でhttpでやろうとしてハマった。

【CircleCI】Capistranoでデプロイする設定

まずは、CircleCIからデプロイ先サーバに接続するために秘密鍵を登録する。 詳細は以下。 thoames.hatenadiary.jpそして以下設定を.circleci/config.ymlに追加。 ※「'xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx'」のフィンガープリントは 上記のリン…

【CircleCI】CapistranoでデプロイするためのSSH Permissions設定

前提として既にデプロイ先のサーバでは、共通鍵の設定が終わっている前提。以下参考。 thoames.hatenadiary.jp SSH Permissionsの箇所に秘密鍵を登録することでCircleCI側からデプロイできるようになるが、何回「Add SSH Key」を押して登録しようとしてみて…

【Rails】CapistranoでBitbucketからcloneしデプロイするまで試してみた

【環境】 Ubuntu + Rbenv + Rails + Puma + MySQL 1)SSH周りの設定 前提 公開リポジトリの場合は、Capistranoの設定は簡単だが、BitbucketのPrivateリポジトリからcloneする場合は、SSH認証が絡んでくるため、設定が少し複雑になる。ちなみにGithubのPriva…

【Ansible】デプロイ完了通知をSlackに流す方法

すごい簡単。 1)Slackで通知を送るチャンネル作成 説明省略 2)Incoming Webhooksのトークンを取得 以下のページから。 https://my.slack.com/services/new/incoming-webhook/1)で作成した、チャンネルを設定 3)タスク作成 roles/slack/tasks/main.ya…

【Ansible】MySQLのrootパスワードが変更できない

Ansibleはバージョン「2.2.0.0_2」を使用。 インストール先OSは、Ubuntu 16.04.そして以下のコード実行し、rootパスワードを変更を試みたが、 更新されず、パスワード無しでログインできてしまう。tasks/main.yml - name: Install the mysql packages in Deb…

【Ansible】Rbenvで「rbenv: command not found」というエラーが出た場合の対策

以下のサイトさんが詳しい。 www.bunkei-programmer.net要は、ansible経由の場合は、/bin/shシェルが使用され .bash_profileや.bashrcを読み込む、/bin/bashシェルが使用されないため 発生する現象ということっぽい。引用すると1)bashコマンドを「-l」オプ…

【ufw】Ubuntuで簡単にFirewallを設定できるufwを試す。

自分用メモ。すごい簡単に設定できる。 DigitaloceanのUbuntu16.04イメージに既に入っていたので ルールを追加して、有効化するだけで使えた。 現在のステータスを確認 $ ufw status デフォルトの通信ルール 通信拒否方法① $ ufw default DENY と通信拒否方…

【Ansible】「/usr/bin/python: not found」エラーに対する処理

Ubuntu 16.04ではpython3が入っているが、 pythonが入っていないため発生するエラー。以下のサイトが詳しい。 【小ネタ】Python3がインストールされているOSにansibleを実行する | Developers.IO ansible pythonが無い場合の対処 - vague memory自分の場合…

【Rails】Rails5で文字列の"true"や"false"をBooleanにキャストする方法

Rails5では以下のように書ける。 ActiveRecord::Type::Boolean.new.cast(0) # false ActiveRecord::Type::Boolean.new.cast(1) # true ActiveRecord::Type::Boolean.new.cast('0') # false ActiveRecord::Type::Boolean.new.cast('1') # true ActiveRecord::…

【Rails】Sidekiqを使用してみた。

自分用メモActiveJob経由か、直接使うかは 以下の記事で詳細を書いた。 thoames.hatenadiary.jp自分の場合は、フルにSidekiqの機能を使用したかったため 「直接Sidekiqを使用する」方法を取る。 インストール Gemfile gem 'sidekiq' gem 'redis-namespace'[…

【Rails】SidekiqをActiveJob経由で使うのが良いか、直接使うのが良いのか。

初めてバックエンドの非同期処理を書くことになったため 良さそうなgemを探したところ、以下の3つが有名なことがわかった。・Delayed Job ・Resque ・Sidekiq色んなサイトで、各gemの説明があるので ここではその説明は省くが 自分の場合、以下の理由から・…

【Redis】MacでRedisを使ってみる

自分用メモ。 Redisとは、メモリ内にデータを保存するタイプのKVS。 永続性やデータ型のサポートがあることが特徴 クラッシュセーフではありません。 メモリは揮発的であり、クラッシュするとデータが飛んでしまいます。 スナップショットによる永続化も可能…

【Shopify】Rails内でWebhookを試してみた

自分用メモ。ShopifyのWebhookの使い方については 既に素晴らしいまとめをしてくださっている方が いるので、その方のやり方を踏襲。qiita.com一点だけ追記すると、検証ロジックの「Secret Key」は 手動でWebhookを作成する場合と、AdminAPIを用いて作成する…

【Shopify】Railsを利用したShopifyアプリを作成してみる

自分用メモ。 アプリを作成する前に前提として以下の3つの準備が必要 ①ngrokの設定 最初からサーバを用意できるのならば、それでも良いかもしれないが 自分の場合、ローカルマシンを開発サーバとして、 Shopifyから「直接」アクセスさせる方法を試す。local…

【Rails】Carrierwave(1.2.2)をActiveRecordと切り離して使用する方法を試してみた。

自分の用途としては、ただ画像を外部APIへ送信するため ローカルDBに保存する必要がなかった。しかし、多くのサイトを見るとCarrierwaveをActiveRecordと併せて使用する サンプル例が多いため、自分で調べてみた。 インストール Gemfileに追記 gem 'carrierw…

【Go】Echo × レイヤー管理のWebアプリをgo-bindataでまとめて、サーバ上で常駐化させてみようとしたが・・・

ちなみにかなり時間を割いて調べたけど、 自分が欲しい情報が得られず、トライアンドエラーを繰り返すも 全くうまくいかず、やっとこそなんとか常駐化まで出来た内容をメモ書き。【前提】 Echoフレームワークを使用し、常駐化にはSupervisorを使用する。 Sup…

【Rails】独自例外の置き場所(配置ディレクトリ)について

自分用メモ。日本語で検索しても情報が出てこなかったので ちょっと調べてみた。調べ方としてはGithubのコード検索で「 出てきたコードがどのディレクトリに配置されているのかで調査。10件〜15件ぐらい見た感じだと、大体が「lib」ディレクトリ内に入れる。…

【Rails5】バリデーションエラーでtranslation missingが出る。

自分の場合、英語で表示したかったの 以下を設定したが何も変わらず。失敗した例: config/application.rb config.i18n.default_locale = :en 以下を設定したら上手く表示された。成功した例: config/application.rb config.i18n.fallbacks = [:en] [参考] …

【Atom】拡張子を追加し、ハイライトカラーを割り当てる方法

file-typesを使用する。atom.ioインストール後、Atom -> Config...を選び、config.csonを開く。その後、以下のように設定例)liquid拡張子のファイルをRailsのERBとして割り当てる。 "*": "file-types": liquid: "text.html.erb" 設定できる設定一覧は以下。…

【Rails】renderで指定したテンプレートの内容(文字列)だけを取得したい場合

renderではなく、「render_to_string」を使用すれば良い。例)views/templates/_default.html.erbを使用する前提。 render_to_string partial: "templates/default", locals: { title: params[:title], body: params[:body] } [参考] ruby-rails.hatenadiary…