Shred IT!!!!

IT全般について試したこと・勉強したことを綴ったり、趣味について語るブログ

Docker を CentOS 7 にインストールして、Ubuntu を動作させる

概要 Docker を VirtualBox 上にある CentOS 7 にインストールして、 CentOS 7 上で Ubuntu を動作させるところまでを書き残す。 ちなみにこの CentOS 7 は Mac 上の Vagrant で動作している。 Dockerについては下記サイト等で確認するといい。 「いまさら聞…

Twilio を使って Rails から ショートメール(SMS) を送信する

概要 Rails サーバからショートメールを送信する方法。 http://qiita.com/kidach1/items/cd63063fa98aaa5030bd 記事を残してくれている方がいるので、この記事を元にショートメールが送信できるまでを試す。 Twilio アカウント作成 http://twilio.kddi-web.c…

ActiveAdmin で 編集内容を Ajax を使って反映させる方法

概要 ActiveAdmin で作った管理機能でフォームの更新内容を Ajax で反映させるときの方法をまとめる。 coffee script でガリガリ書かないといけないこともあるが、単純にデータの保存・上書きであれば下記の方法で大体はいけるはず。 準備 Gemfile の編集。 …

docker build すると ADD, COPY で no such file or directory になる問題の解決方法

docker 導入に関する記事を別で書くつもりだが、 今やっているプロジェクトで docker build で大ハマりしたので、 その解決方法をメモしておく。 概要 CentOS 7 Docker 1.6.2 上記環境だが、特に yum のリポジトリを更新することもなく、 下記を実行して Doc…

Vagrant + VirtualBox で構築した環境を他の PC へコピー・移設する方法

概要 MacBookPro から iMac へ Vagrant + VirtualBox で構築した環境をコピーする。 開発中のソースは GitHub で管理されているのでどちらのマシンでも作業できるようになる。 コピー元 = MacBookPro コピー先 = iMac この仮想環境は CentOS 7 なので、ボッ…

ActiveRecord::Enum 定義するとエラーで落ちることがある件

class Mail < ActiveRecord::Base enum flag: [:send, :receive] end 特に定義上おかしいところはないはずだが、 下記エラーが発生してしまう。 wrong number of arguments (3 for 0) 色々いじっていて気づく。 class Mail < ActiveRecord::Base enum flag: …

Rails 4.2 へ ActiveAdmin を導入して、日本語化する方法

概要 Rails4.2 の環境へ ActiveAdmin を導入してみる。 有名な gem だと思われるが、業務で扱ったことがなかった。 業務で利用することになったので、導入方法や簡単な設定までをまとめておく。 前提 下記で Rails の環境が構築済みとする。 Ruby2.2.2 rvm 1…

Rails 非同期で処理を実行する方法(Sidekiq, Resque, Delayed Job, Active Job比較)

概要 Rails で WEB 画面からのキックでジョブをバックグラウンドで実行するときどうするか。 例えば、メール送信・画像変換・CSVアップロードによる大量SQL実行など。 そんなときはバックグラウンドで非同期にジョブを実行してくれる便利な gem がある。 Rai…

Rails 4.2 + Capistrano3 + Unicorn + Nginx でホットデプロイ環境構築

Capistrano3 + Unicorn + Nginx でのデプロイ環境構築を試してみる。 今回は Ubuntu 12 の環境で行う。 リモートのGITサーバの準備や外部にWEBサーバ等を準備するのが面倒なので、 全てローカルで完結するように試してみる。 準備 # rvm list known Ubuntu 1…

Rails4.2 を Nginx + Unicorn で動作させる

概要 Rails や Padrino の案件に関わってきたが、全て Apache + Passenger の構成で動作させていた。 最近では、Nginx + Unicorn で動作させているという話しをよく聞くので、環境作りを試してみる。 前提 Rails4.2 をインストール済み bundler を使っている…

Rails TDD/BDD開発向けテスト一式(ユニット/インテグレーションテスト、テスト自動化、静的解析) Rspec + Capybara + PhantomJS + Poltergeist + Turnip + Jasmine + FactoryGirl + Guard + Rubocop + Spring

概要 Rails4.2 で新規プロジェクトを立ち上げることになったらテストをどうしようか。 現時点で考えうる全部入りを試してみようと思う。 導入する gem やライブラリは下記。 Rspec Ruby向けテストフレームワーク Capybara WEBアプリケーションのテストを補助…

Rspec + Capybara + Poltergeist で外部サイトのテストをする方法

概要 外部サイトをテストしたい!なんてことはほとんどないが、 スクレイピングだったりで外部サイトに依存する場合に検知できる方法ないかと思い、 Rspec + Capybara + Poltergeist で外部サイトをテストしてみた。 準備 ruby-2.1.3 bundler をインストール…

Rails | Ajax で動的な検索・ソート機能付きページネーションを実装する(jQuery DataTablesプラグイン連動)

概要 Rails でページング処理といえば、kaminari だと思う。 amatsuda/kaminarigithub.com kaminari で Ajax のページングもできるようだが、 AdventCalendar - kaminari徹底入門 - Qiita jQuery の DataTables プラグインと連携して、ページング(一覧画面)…

ギターのネックの反りや捻れを簡単に直す方法

概要 ギターを久しぶりに弾こうと思ったら、 ネックが反ったり捻れたりしてる・・・ トラスロッドで調節するのも気が重いし、 楽器屋に持って行くのもなぁーって人に向けた記事です。 ギターのネックが捻れて反ってる? 昔働いていた職場の同僚で、某F社のギ…

MySQL で IN 句 + サブクエリの処理時間が遅い場合の改善方法

概要 とあるプロジェクトで Rails 3.2 + MySQL 5.5 を利用してる。 管理画面の機能追加と改修をしているのだが、 ある機能の一覧ページが重くて開かないと報告を受けた! 1台しかない MySQL サーバが落ちて、 サービスに支障が出たことが何度かあるらしい。 …

BitBucket で Git のプライベートリポジトリを 無料で作る方法

Rails で簡単なアプリを作ろうと思っているが、ソースの管理に困る。 ローカルPCでソース管理するのも嫌だし、 サーバを借りているわけでもない。 GitHub でソース管理することも考えたが、 プライベートリポジトリが欲しい... 検索していると下記サイトを発…

Capistrano からの bundle install で rmagick のインストールが失敗するときの対処方法

概要 cap コマンドからの bundle install が失敗する件。 前回記事で Capistrano 2 系で踏み台経由でデプロイって記事を書いたのだけど、 cap コマンド内で実行される bundle install が失敗してしまうので、 今回それを解決する方法を記事にする。 ↓前回記…

Capistrano 2 系で踏み台サーバ経由でデプロイする方法

Capistrano 2 系の記事を今さら書くのも微妙だが、作業メモ。 3 系でも同じような感じで使えるはず。 概要 Capistrano 2 系で踏み台サーバを経由してデプロイする方法。 状況は下記。 ローカルマシン -> 踏み台サーバ -> テストサーバ Mac から踏み台サーバ…

Ubuntu12.04 で RMagick Imagemagick をインストールする

微妙な環境だけど、作業メモ。 bundler (1.7.11) rails (3.2.19) rmagick (2.13.3) など。 Gemfile に下記のように指定。 ... gem 'rmagick', '2.13.3' ... bundle install 実行した結果、下記のようなエラー Gem::Installer::ExtensionBuildError: ERROR: F…

4. Rubyによるデザインパターン【Factory Method】

4回目のデザインパターンは Factory Method(ファクトリーメソッド) パターンの記事を書いてみる。 Template Method と関連性のあるパターン。 実装については簡単だけど、メリットが理解しづらい。 いろいろなサイトを参考にして、3つのメリットを理解した…

Rails Model で has_many 定義した要素数を validate する方法

実装例 class Kuso < ActiveRecord::Base has_many :unchis validate: buriburi_unchis def buriburi_unchis errors.add(:unchis, "oops!") if unchis.size > 1 end end ポイントは unchis.size。 以前記事にした Railsで階層化された複数モデルに対応するフ…

Mac から踏み台サーバ経由(SSHトンネル)で git する方法

踏み台サーバ経由で git する方法をメモしておく。 Linux でも同じ、.ssh/config を編集して踏み台サーバ経由(SSHトンネル)する方。 あくまで Mac(ローカルマシン)から、git コマンドを直接叩きたいときの設定。 踏み台サーバ上で作業する場合の設定では…

Railsで階層化された複数モデルに対応するフォームの作り方【JavaScript/CoffeeScriptによる動的処理追加】

今回はフォームに「追加・削除」ボタンを設置し、それらをJavascript/CoffeeScriptと連携して動的にする実装をする。 前回の静的な実装までは↓から。 Railsで階層化された複数モデルに対応するフォームの作り方 - Shred IT!!!!jetglass.hatenablog.jp タスク…

Railsで階層化された複数モデルに対応するフォームの作り方

Rails4.1.8 での自分用メモとして記事にしておく。 業務でモデルの階層が深いけど、1画面でフォームを作らなければならなかったので、簡略化した形で記事にまとめる。 記事は2つに分かれていて、 最初に書いたこの記事は Rails 側で行うべき基本的なことを…

3. Rubyによるデザインパターン【Builder】

3回目のデザインパターンは Builder(ビルダー) パターンの記事を書いてみる。 Template Method と Strategy のいいところを使ったパターンだと思う。 おなじみ、下記ソウルを忘れないこと。 参考:programming - Rubyによるデザインパターン5原則 - Qiita 変…

2. Rubyによるデザインパターン【Strategy】

今回もデザインパターンの一つ、 Strategy(ストラテジー) パターンの記事を書いてみる。 Template Method と Strategy を利用できるタイミングが似ているので、どういう時にどっちを使うか議論されているみたい。 参考:language agnostic - When to use tem…

1. Rubyによるデザインパターン【Template Method】

デザインパターンの勉強は何度もしてきたけど、忘れたり、色々なパターンがごっちゃになったりしてしまう。 勉強不足って一言で片付いてしまうが、結局、理解しきれていないのが問題だと思う。 まずはデザインパターンの根底にあるソウルを受け継いでおきた…

ブログ開設しました。

どうも、つやっちです。 IT業界11年、フリーランス歴3年のITエンジニアです。 昔は LAMP環境(Linux, Apache, MySQL, PHP)での開発をメインとしていました。 ここ2〜3年は Ruby と Javascript でのフロント寄りの開発が多いです。 フリーランスという特性上、…