PaperclipでGoogle Storageに画像を保存しているときに表示がクッソ遅い。

原因は表示するたびにファイルの存在確認のリクエストを出しているためで、1ファイルにつき200msぐらい遅くなってた。(30個の表示で計6秒遅くなってた)

対応方法は、fog_hostを設定しておけばリクエスト出さなくなるようで、普通の速度に戻りました。

config/initializers/paperclip.rb:

Paperclip::Attachment.default_options[:fog_host] = "http://#{ENV["GOOGLE_STORAGE_BUCKET_NAME"]}.storage.googleapis.com"

deviseのconfirmableモジュールを使うとデフォルトでemailを変更するときに再確認メールを送信する。

(これがサインアップ時のメールと同じ内容なので使い辛いというのは別の話)

設定でオフにできる。

config/initializers/devise.rb:

Devise.setup do |config|
  config.reconfirmable = false
end
class Comment < ApplicationRecord
  belongs_to :user
  belongs_to :post

  alias_method :sender, :user

  def reciever
    post.user
  end
end

こうしておくとメール送るときにわかりやすい。

if comment.sender != comment.reciever
  NoticeMailer.recieved_comment(@comment).deliver_later
end

users_urlとかがメール内でも使える。

class ApplicationMailer < ActionMailer::Base
  include Rails.application.routes.url_helpers
end

sprocketsやturbolinksを使っていて全css, jsを読み込んでるとしても何だかんだ言って今どのページにいるのか知りたい場合が多いです。

thoughtbotのflutieに始まり色んなところで勝手にcontroller名とaction名をつなげたものを使っていますがそれをベースに動く機能が必要になったので、つなげるルールを明確化するためにgemにしました。

komagata/view_id: Identifier your view from controller and action.

抽象的な名前を取りすぎな気がしますが、とりあえず・・・。

名前のつなげ方でうすが、controllerとactionを--でつなぎます。

ネームスペースは-でつなぎます。

PostsController#index => posts-index
DeletedPostsController#show => deleted_posts--show
Admin::DeletedPostsController#create => admin-deleted_posts--create

いつも使う処理なのでgemにしました。

fixed_footer-rails | RubyGems.org | your community gem host

使い方

Gemfileに書きを追加。

gem "fixed_footer-rails"
$ bundler install

application.jsに書きを追加。

//= require fixed-footer

jsから呼び出す。例えばfooter.coffeeを作って下記のように書く。

$(document).on "turbolinks:load", ->
  new FixedFooter("your-own-footer-id")

我々sikachuチルドレンにビッグニュース。

sikachu meetup #1 - komagataのブログ

あの、sikachu氏がCookpad社へ入社されたようです。

氏の今後を応援しつつ動向を見守りたいと思います。

この設定をいつもやります。

class ApiController < ApplicationController
end

だとかっこ悪いので、

# config/initializers/inflections.rb:
ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.acronym "API"
end

こうする。

class APIController < ApplicationController
end

気持ちいい。デフォルトの大文字設定に欲しいな。

僕ら普段非スーツ系のITエンジニア・デザイナーは普段着にリュック(バックパックではなくリュックと言わせていただきたい)を背負ってお客さん先などに移動します。トートバックやワンショルダータイプのカバンだとMacBook Proの重さに耐えられず肩凝りになるためです。

僕と同僚デザイナーの@machidaさんの2人でお客さんのところに行く途中、駅のホームで電車を待っている時、我々が低所得者っぽく見えたことから「リュックが低所得者に見える問題」は発生しました。

https://gyazo.com/f4c738cd1e53744aeb28fce19dd83378

こんな感じ。

僕らはその対策のために「低所得者に見えないMacBook Proを入れられるカバンはどれか」について常に情報を交換してきました。

しかし、昨夜、TVを見ていた僕に電流走る・・・・っっっ!!

そもそも普段着る服をパタゴニアとかアウトドア系にすればいいんじゃないか・・・っっっ!?

アウトドア系の格好をしていればリュックも自然とマッチする!

今まで気づかなかったが知り合いのエンジニアの方でも普通にいつもアウトドア系の格好してる人いるじゃないか。僕のようにファッションセンスに自信の無いエンジニアでもアウトドア系の服を着ていれば、お客さんも、

「ああ、この人はアウトドア系の人なんだな」

と思われるだけだし、克己心の強い、ヘルシーな感じの人だと思われる。(気がする)

なんて素晴らしいソリューションなんだ!特許取らなきゃ・・・。

$ rails _4.2.7.1_ new foo