リア充爆発日記

You don't even know what ria-ju really is.

日本人ならRDSを使う際にかならずやらなければならないこと

AWS

「日本人なら」って言っても別に落ちないようにお祓いをするとかそういうことじゃあない。 文字コードの設定の話です。ふつうにRDS(MySQL)たちあげてRailsアプリとつなげて日本語入力したらぜんぶ"???"になったっていう。show table statusしたらテーブルの…

Railsで「このタイミングだけこのバリデーションしたい」っていうとき

パスワードの変更機能を作ってて パスワードはUserモデルの一部 パスワード変更画面は他の項目(都道府県とかのプロフィール項目)を変更する画面とは別 である場合、新しいパスワード(:password)はプロフィール変更時はバリデーションしたくなくて、ユーザ…

最も安い費用でそれなりのSSL証明書をゲットする方法のメモ

SSL証明書にはドメイン認証方式とか企業認証とかあるけど、とにかく個人情報を守れればよい、ということであればお安いドメイン認証方式でいい。もっとくわしく知りたい人はその辺でググってみてちょ。ドメイン認証方式で一般的に信用度があって、よほど変な…

オレオレ証明書でsslをaction単位で、かつnginx + unicorn + rails

ステージング環境とかで需要があるかもしれない、ぶっちゃけ証明書がオレオレかどうかはあまり関係のない話。 アプリの対応 全体的にSSLにするならconfig/enviroments/あたりにconfig.force_ssl = trueしておけばいいのだけど、action単位でforce_sslしたい…

貧乏臭くEC2を使っていくために調べたメモ

AWS

貧乏臭くRDSを使っていくために調べたメモの続編。これもWebサービス前提の話。一般的なものであればDBとWeb/APPサーバだけで成立すると思うのでその前提で。あと、Route53、SSLも使う前提。 VPCを使うか? 非VPCを使わなくっていいのは(ry ちなみに、Web…

貧乏臭くRDSを使っていくために調べたメモ

AWS

AWSでRDBMS使うならRDSでしょ、というところまではいいとして、どう使うのか?というところは非常に難しい。用途をスタートアップのWebサービスだとした場合、最初はお金をできるだけつかいたくないけど、人気が出たときにはスムーズに対応していきたい、と…

gem updateができない-certificate verify failed

gemのバージョンが2.0.2だったので最新の2.0.3に上げようとgem updateをやったが反応がない、ただのしかばねのようだ。 $ gem update --system Latest version currently installed. Aborting.gemのupdateは実際にはrubygems-updateが使われているらしいので…

capistranoでステージングとか本番環境とか使い分ける

これで動いた!さくらのVPS+github+capistranoでrailsアプリ自動デプロイの設定ファイルを置いておくの続き的エントリ。このさくらのVPSの環境をstagingに変更していく、という内容。 参考 http://d.hatena.ne.jp/ria10/20121211/1355192518 https://github.…

vagrant + berkshelf + chef で鼻血を出したままec2を起動させてみる

AWS

vagrant + berkshelf + chefで環境をつくってみたら鼻血が出たついでに、AWSと連携してec2のインスタンスを起動させてみようと思う。 参考 公式 https://github.com/mitchellh/vagrant-aws敬愛するアイディーナオヤさんのエントリを見ればもうこれは成功した…

chefで管理する前提のRails用のEC2インスタンスを作る

AWS

まだ、実際に運用してないので、随時改修していく前提のメモ書き。 Rubyはrbenvで入れる rbenvはシステムワイドに使えるようにする requiretty設定は切っておく chefを入れる ユーザーは基本的にec2-userオンリー 参考 http://qiita.com/items/8e973a544b592…

AMIイメージ作ろうとしたらERROR: error reading certificate file

AWS

ERROR: error reading certificate file /opt/aws/amitools/ec2/etc/ec2/amitools/cert-ec2.pem: No such file or directory - /opt/aws/amitools/ec2/etc/ec2/amitools/cert-ec2.pem AMIを作るときに使うec2-bundle-vol の挙動として「pemを除外する」とい…

vagrant + berkshelf + chefで環境をつくってみたら鼻血が出た

vagrantのチュートリアルをやったログでvagrantの便利さとおよその使い方は理解できた。もともとChefのレシピを作る環境を用意しよう、というのが主題だったので今回はVagrantを活かしてChefのレシピを書いてみようとしたところ、最近じゃBerkshelfというツ…

vagrantのチュートリアルをやったログ

chefのレシピを作る環境が欲しくて、サラの状態からのテストとかしたいからローカルじゃきついのでVirtualBoxを使った環境を作ろうとしたところ、Vagrantというツールがアツいという話を思い出し、チラ見したらマジでアツそうだったので導入することにした。…

ec2-upload-bundleでERROR: Error talking to S3: Curl.Error(51):

AWS

bucket名にドット使うなってよ。 http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/CLTRG-ami-upload-bundle.html

Ruby2.0でchefを動かそうとするとkernel_require.rb:45:in `require': cannot load such file -- rubygems/format

chefをインストールして何かしようとするとエラーになる。 [ec2-user@ip-10-xxx-xxx-xxx ~]$ chef-solo -v /home/ec2-user/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- rubyge…

AWSにRailsをデプロイするのはBeanstalk or OpsWorks?

AWSはアプリケーションマネジメントサービスとして、Elastic BeanstalkとOpsWorksの2つを用意している。どっちがいいのか?の判断基準の参考として公式には以下のページがある。 http://aws.amazon.com/application-management/カンタンに言えば コードさえ…

paperclipの保存先をAWSのS3にする

ただのメモGemfile gem "paperclip", "~> 3.4.1" gem "aws-sdk", "~> 1.9.5" config/environments/*.rb config.paperclip_defaults = { #path: "#{Rails.root}/public/system/develop/:class/:id/:style/:hash.:extension", path: ":class/:id/:style/:hash.…

Railsでテキスト中のURLに自動的にリンクを張る

というgemが存在した。 https://github.com/tenderlove/rails_autolinkこれは3.1以前はRails標準だったもので、セキュリティ的な要請から、Rails本体に比べて相当短いサイクルの修正が必要になるため、(そのたびにRailsをアップデートしてもらうのはスジが…

Railsでメール送信系のテストを行うには〜email-spec

会員登録時やパスワードリマインダーなどで発生するメール送信のテストはどうやってするのか調べたところ、email-specというgemが目的にぴったりっぽかった。 その名の通りRSpecとあとはMiniTestとCucumberに対応している。email-specをRSpecに導入するメモ…

IntelliJでSCSSとCoffeeScriptを使う

キーになるのは"File Watchers" プラグインです。SCSSもCoffeeScriptも、書いたものそのままじゃ動かなくて、それぞれコンパイルしてCSSファイルだったりJSファイルだったりを生成する必要がある。で、もっというと開発のときにはイチイチ.scssや.coffeeに手…

開発中にいちいちメールが飛ぶのがウザいとお思いのあなたへーletter_opener

開発中にサンキューメール(この言葉久しぶりに使った)とかの送信がポンポンとんでうっとおしいぜっ!とお思いの方に朗報です。https://github.com/ryanb/letter_openerこのgemを使うと、メールが飛ぶタイミングでメール同じ内容のファイルを生成し、そこで内…

capybaraを2.1にupgradeしてテンパった方へ

以下を入れておけば、心に平穏が戻るかもしれない。spec_helper.rb Capybara.configure do |config| config.match = :one config.exact_options = false config.ignore_hidden_elements = false config.visible_text_only = true end https://github.com/jni…

macでローカルsmtp経由でgmail宛にメールを送る(plalaとWiMax@nifty編)

Mac

家がplalaで外に出ている時につかうWimaxがniftyのやつ、という状況。OSX10.8系の話。/etc/postfix/main.cfを編集 relayhost = mmr.plala.or.jp #relayhost = smtp.nifty.comぷららはこれだけでいけた。送信元がusername@localhost.localhostでも届いた。nif…

i18n-jsとRails3.2.13で"invalid byte sequence in US-ASCII"

RailsでBackboneを使いながらDRYにi18nで登場したi18n-jsだけどRailsを3.2.13にアップグレードしたら検証環境で"invalid byte sequence in US-ASCII"が出てコンパイルがコケる。 rake aborted! invalid byte sequence in US-ASCII (in /var/www/hoge/shared/…

IntelliJ+Ruby plugin + rbenvでIntellijがGemを認識してくれなくなったら確認してみること

http://youtrack.jetbrains.com/issue/RUBY-11616これとまったく同じところでハマって、同じことやって解決した。SDKのpathは Ruby interpreter path: 正: /usr/local/Cellar/rbenv/0.4.0/versions/2.0.0-p0/bin/ruby 誤: /usr/local/Cellar/rbenv/0.4.0/shi…

RailsでBackboneを使いながらDRYにi18n

これを使えばOK牧場。 https://github.com/fnando/i18n-jsGemfile gem 'i18n-js' application.js //= require i18n //= require i18n/translations configファイル生成 bundle exec rake i18n:js:setup※ホントはこのプロセスは要らないのだけど、sprocketの…

backboneでfetch()のときにquery stringを渡したいときー

渡したいときーfetch()のときにdataにひっくるめて渡す User.fetch({data: {foo: bar}}) そんだけ。

collectionにmodelをcreateしたときに追加したやつが最後にくるのをなんとかしたい件

あるユーザーのなんかの投稿に対して、別のユーザーがコメントできるのはよくあるじゃないですか。 それをbackbone.jsでやろうとするとModelsとCollectionsをそれぞれ実装することになると思う。こんな感じ Models.Comment class YourAPP.Models.Comment ext…

Mysql2::Error: Specified key was too long; max key length is 767 bytes: CREATE UNIQUE INDEX

このエラーが起きるのは「indexを貼る対象のカラム容量の総量が767bytesを超えているとき」なんだけど、解決方法がいくつかある。 すなおに容量調整 だったら初めからそんな容量にしてねえよ、というケースがほとんどかもしれない。 文字コードを工夫する ut…

backbone.jsでdestroyとかcreateのsuccessコールバックが発火しない

このへんはresponseにJSONが帰ってこないと発火してくれないらしい。なんだよそれ。 head :created こんなふうだと発火してくれないので、しょうがないから render status: :created, json: {} ってやる。すると発火する。そういうわけで。