タグ

ブックマーク / blog.willnet.in (8)

  • 権限管理のgemで良いのはどれ? - おもしろwebサービス開発日記

    昨日は ginza.rb 31回目のミートアップでした。 Ginza.rb 第31回 ユーザの権限管理どうしてます? - Ginza.rb | Doorkeeper @kyuden_ さんに、現状の二大認可 gem である cancancan や pundit、それらの問題点を解決するために作った banken について発表してもらいました。 感想 個人的には pundit のリソースベースでの権限管理は悪くないと思っています。ただスライドで書かれているような、Admin::UsersControlller と UsersController で処理を分けたい時などのエッジケースで回避策を模索しなきゃいけないのはだるいですね。banken だと、コントローラベースなのでコード記述量は増えてしまうのですがその分ハマりどころが減るので、そのトレードオフを考慮しつつ案件によって使い分けるのがいい

    権限管理のgemで良いのはどれ? - おもしろwebサービス開発日記
  • 最近の Rack サーバ事情について - おもしろwebサービス開発日記

    先月、heroku推しサーバが unicorn から puma に変わったという発表がありました。unicorn だとスロークライアントの影響を受けやすいというのが理由なようです。 もう少し詳しく調べてみましょう。 そもそもスロークライアントってなに その名の通り遅い回線のクライアントです。3G環境のモバイル端末などが該当します。 「unicorn だとスロークライアントの影響を受けやすい」とは unicorn はプロセスモデルのサーバであり、blocking I/O モデルを採用しています。つまり、クライアントとの通信中プロセスが専有されるということです。 例えば unicorn がワーカプロセスを3つ立ち上げていて、そこへ通信完了に10分かかるようなスロークライアントが3つ接続されたら…、続くクライアントはスロークライアントの通信が完了するまで実行を待たなければならなくなります。プ

    最近の Rack サーバ事情について - おもしろwebサービス開発日記
    komlow
    komlow 2015/02/25
    herokuの推奨サーバーがunicornからpumaに変わったことに関するpumaとunicornの比較
  • ランダムで日本人の名前を返す gem を作った - おもしろwebサービス開発日記

    gimei という、ランダムで日人の名前を返す gem を作りました。 似たようなライブラリに faker があります。faker は人の名前だけではなく、住所やメールアドレスやユーザ名や電話番号など、たくさんのジャンルのダミーデータを返してくれるすごい gem です。しかも i18n に対応しており、yaml ファイルを定義すれば日語も使えます。 じゃあ faker でいいじゃん!って思いますよね。しかし一つだけ問題がありまして…。ふりがなが使えないのです。 そこでgimeiです。gimeiは下記のような形でふりがな(フリガナ)に対応しています。 gimei = Gimei.new gimei.kanji #=> "斎藤 陽菜" gimei.hiragana #=> "さいとう はるな" gimei.katakana #=> "サイトウ ハルナ" gimei.last.kanji #

    ランダムで日本人の名前を返す gem を作った - おもしろwebサービス開発日記
  • Rails 4.0 と bundler install --binstubs について - おもしろwebサービス開発日記

    Rails 4.0.beta1 でアプリ作ってみようとして、途中で bundle install --binstubs としたら、なぜか rails generate などのコマンドが効かなくなってしまいました。、これは、Rails 4.0 が生成する bin/railsbundler がオーバライドしてしまったことが原因です。前に何処かで「bundler 1.3 は bin/rails が存在していたらオーバライドしないようにする」みたいなことを読んだ気がしたのですが、これはどういうことだったのだろう…というかそもそもなんでオーバライドしたら不具合起きるの><と思ったのでちょっと調べてみました。そして「多分こういうことなんだろうなあ」というところまで来たのでまとめてみます。推測も混じってるので間違ってたら教えてください。 Rails 4.0 での変更 Rails 4.0 からは s

    Rails 4.0 と bundler install --binstubs について - おもしろwebサービス開発日記
    komlow
    komlow 2013/07/08
  • Rails 3 の I18n について - おもしろwebサービス開発日記

    Ruby on Rails Guides: Rails Internationalization (I18n) APIを読んでのメモ。全部網羅してたりはしてないので、気になった方は原文見てください。 基 I18n.translate "store.title" I18n.localize Time.now # 短縮形 I18n.t "store.title" I18n.l Time.now config/locales が translation 用のデフォルトロードパス。 I18n.load_path や config/application.rb 内で config.i18n.load_path をいじれば修正できる。 辞書ファイルにはyaml形式かRubyのhash形式が使える。 デフォルトのlocaleは:en I18n.default_localeでデフォルトのlocaleを変

    Rails 3 の I18n について - おもしろwebサービス開発日記
  • Rails4.0に含まれる strong_parameters について - おもしろwebサービス開発日記

    注意 このエントリは急いで書いたので間違いが含まれている可能性が高いです。気づいた方はご指摘ください。 序文 strong_parameters とは、mass assignment で余計なパラメータをモデルの属性にセットさせないための新しい仕組みです。Rails 4.0 からはこれが標準になります。Rails2.x と 3.x はattr_accessibleやattr_protectedなどで似たような機能が提供されていましたが、これだと管理が煩雑になるケースがありました。 今年の3月くらいにGitHub が mass assignment の脆弱性を突かれたことで 、この問題をどうにかしようという流れが起き、最終的に strong_parameters が作られるという経緯を辿りました。 mass assignment とは Rails ではこんなコードをよく見ると思います。 de

    Rails4.0に含まれる strong_parameters について - おもしろwebサービス開発日記
  • 僕が参考にしている Ruby, Rails の情報源まとめ(海外ブログ編) - おもしろwebサービス開発日記

    昨日 @bekkou68 さんに「前島さんってどうやってRubyRails関連の情報を収集しているんですか?」って聞かれたのでまとめてみます。とりあえず海外のブログ限定で。日ブログ編は気が向いたらやります…。 RailsCasts 有名すぎて説明不要かもしれませんね。毎週2つ(うち1つは有料購読が必要)の Rails 関連動画をアップロードしてくれているサイトです。良質な情報を定期的に届けてくれるすばらしいサイトですね。1ヶ月9ドル払って有料購読する価値は間違いなくあると断言できます。動画中で紹介しているライブラリの情報もすばらしいですが、コード例もかなりRailsっぽく綺麗に書かれていて大変参考になります。 RubyFlow いろいろなRuby開発者のブログの更新情報をまとめたブログ。簡単な紹介文に各ブログのリンクがくっついているような形式です。日によってばらつきがありますが、だいた

    僕が参考にしている Ruby, Rails の情報源まとめ(海外ブログ編) - おもしろwebサービス開発日記
  • Redcarpet2のざっくりまとめ - おもしろwebサービス開発日記

    githubで使われているMarkdown用ライブラリRedcarpetが後方互換性のない version 2 になるみたいです。現時点のバージョンは 2.0.0b3 で、まだリリースではないようですが、これから使うなら2の方を勉強しておくべきだと思うのでまとめます。 基的にいつものようなREADMEの意訳です。 基情報 Redcapet は Redcloth の代換として使われてきたけど、バージョン2からは独自のAPIを持つようになる。 Redcarpet は Sundown という名前の Markdown をパースする拡張ライブラリを利用している。詳しくはこちら。 インストール 下記のようにインストールする(ただし、現在は普通にインストールすると1系が入ります)。native extensionsがビルドされるけど、スタンドアロンなので他のライブラリをインストールしておく必要は無

    Redcarpet2のざっくりまとめ - おもしろwebサービス開発日記
  • 1