新米と秋刀魚のわた焼き お刺身用の秋刀魚を買いました。1尾250円です 3枚におろして、秋刀魚のわたに酒、味醂、醤油で調味して1時間ほど漬け込み、グリルで焼きました 秋刀魚のわた焼き わたの、苦味が程よくマイルドに調味され、クセになる味わいです 艶やかな新米と一緒に 自家製お漬物 土…
今週「Railsの認証・アクセスコントロールはGoldbergが便利かも。」を書いたら、そもそも私にGoldbergを教えて下さったyonetaさんが「Goldberg再び」という文書を挙げて下さった。 その中で「認証機能を実装できない(したことがない)人は認証プラグインを使うべきではない」という御宣託がありました。まさに御宣託、全くの同感です。yonetaさんの意図とは若干異なる事を承知でさらに厳密に言うなら、「言語は何でもいいけど、Webシステムの認証・アクセスコントロールのアーキテクチャ設計をやった事のない人間はプラグインは使用しない方が良い。個人情報を重要視するサイト・現金の動きを司るサイトなら絶対使用してはいけない。」と考えています。理由は簡単。一度もこのテーマに苦しんだ事がない人にリスク計算はできないからです。これだけは断言できます。 しかし全くやった事がない人の「教材」として
Restful Authentication with all the bells and whistles (new 9/05/08) This is a new restful authentication tutorial based the lastest version of the plugin and edge rails as of 9/05/08. The original tutorial can be found at http://railsforum.com/viewtopic.php?pid=74245#p74245 The source code is now available on github.com at http://github.com/activefx/restful_auth … ree/master Since this new tutori
Нажмите на Разрешить для подтверждения, что вы не робот Нажмите "Разрешить", чтобы закрыть это окно Это окно можно закрыть нажатием "Разрешить". Если вы хотите продолжить действия на данном сайте, просто нажмите на подробную информацию. Подробная информация
restful_authenticationは、ログイン認証という限定された機能を、適度なサイズで提供してくれている。ログイン認証には多くのRailsの技が駆使される傾向にあり、コードを眺めていると勉強になることが多い。今回はモジュールの使い方に注目してみた。 restful_authentication classic版のUserモデルの実装は以下のようになっている。 保存データの検証、アクティベーションに関する処理、パスワードのエンコード・デコード・照合、ログイン状態の維持等、とても多くのことをこなしている。 # ---------- app/models/user.rb ---------- require 'digest/sha1' class User < ActiveRecord::Base # Virtual attribute for the unencrypted pas
App development is certainly an exciting but challenging process. Several factors are involved in developing an app, due to which the final cost to develop an app greatly varies from project to project. It is important to be familiar with the entire process of creating a comprehensive app development budget because it is common for developers, especially new programmers, to exceed the budget while
画面から叩くテストを自動化すべく、Selenium on Railsプラグインを導入してみた。 プラグインのインストール % ruby script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails次いで % ruby script/server -e testとサーバーを起動しようとしたところ、 undefined method `register_template_handler' for ActionView::Base:Class (NoMethodError)というエラーが発生した。Rails2.1への移行でちらほら見かけるようなエラーな気がする。 これについてはOpenQA Forums Have Been Discountinuedでパッチが公開されているらしく、ダウンロー
restful_authenticationを--statefulオプションで利用すると、2つのstate_machineが用意されていることに気付く。一つは、以前から利用しているRailsのプラグインacts_as_state_machine。で、もう一つがgemでインストールするaasm。aasmってacts_as_state_machineの頭文字だよな?と思いながら、デフォルトではacts_as_state_machineの設定になっているし、acts_as_...を身近に感じるので、aasmの方は今まで無視していた。 ところが、インストールしたacts_as_state_machineの更新日時を見てみると2006-11-13と相当古い...。1年半以上更新されていないことになる。(でも、特に不便は感じないのだけど。)一方、aasmのページを見てみると、今も活発に更新されている。
はてなダイアリーが AtomPub で編集できるようになったので、早速 fuse を使ってファイルシステムを作ってみました。こんな感じに使えます。 http://rails2u.com/tmp/diary_fuse/fuse.htm (動画) /create に保存すると現在時刻で作成 /20080820101010 など、エントリーを編集可能。保存で更新。 rm するとエントリーを削除 /\d{14} 的なファイル名で保存すると、その時刻のエントリーを作成 などなど。Ruby の FuseFS を初めて使ってみましたが、結構簡単にファイルシステムをいじれて便利ですね。ちなみに本文の改行周りがおかしくなるというアレな挙動をして、全然実用できませんが、AtomPub 使うとこんな事もできるよーという例として見ていただければ。 ソースコードは以下です。
restful_authenticationに権限(role)管理を追加して、実用的に利用するカスタマイズ例として、Restful Authentication with all the bells and whistlesを参考にいろいろ考えてみた。コードを読みながら、次第に以下のような疑問や考えが浮かんできた。 メール送信処理のきっかけに、なぜobserverを利用するだろうか? observerはコールバック(before_createとかafter_save等)を外部のオブザーバーオブジェクトで処理するようなもの。 モデル自身のコールバックとして処理しても良いはず。 restful_authenticationの実装を見ると、コールバックの中で条件によって処理を分岐するために、モデルの状態をインスタンス変数にわざわざ保存している。 例:@activated = true、@forg
Rails 2.1からの日付と時刻の表示はUTCが標準になり、そのままの環境では以下のように表示されてしまう...。 <%= user.updated_at %> 2008-08-08 04:52:49 UTC 以前に比べれば日本人にとっては分かり易い表示だが、決定的に問題なのは日本の時刻と9時間ずれていること。 タイムゾーン その環境を決めているのは、config/environment.rbの以下の部分。 その部分をコメントアウトしてみると... # ---------- config/environment.rb ---------- Rails::Initializer.run do |config| ...(中略)... config.time_zone = 'UTC' ...(中略)... <%= user.updated_at %> Fri Aug 08 04:52:49 +
Photo by masuidrive76 Railsで高速化するためには、Memcachedによるキャッシュが欠かせないですが、もしmemcachedが落ちてしまうと、サービス全体でエラーが発生してしまうのが、気になるところでした。 Takiuchiさんと話をしていて、fiveruns-memcache-clientを使うことで、memcachedを再起動さえすれば自動で再接続されることはわかったのですが、やはりmemcachedが落ちている時はエラーになってしまうのが問題でした。 どうせ、キャッシュはキャッシュなのだから、memcachedが落ちている間はキャッシュを使わない様にするパッチをmemcache-clientに組み込もうと思って作業をしていたら、実はcache_fuにその機能があるのを発見しました。 config/memcached.ymlで、「raise_errors:
最近、restful_authenticationで試行錯誤していて感じたこと。restful_authenticationはユーザー認証に関する必要最小限の機能を提供してくれるが、実際に運用できるレベルに仕上げるには、要点を押さえた的確な修正が必要になる。ユーザー認証のscaffold的な位置付けだろうと。 生成されるソースコードはとても簡潔にまとめられていて、読み易い。しかし、いざ自分好みのログインに修正しようとすると、実にいろいろな手段があり、どのような仕組みにするか本当に迷ってしまう。 例えば、以前の日記で試したパスワード忘れに対応する方法も、今振り返ってみれば最悪の例だ...。アクティベーションとパスワード忘れの処理が混同しているし、修正の手順もセキュリティ的に中途半端。実装の仕方もせっかくのrestful_authenticationのRESTfulなルールを無視している。やは
パスワードは必ず忘れられる運命にある...。開発者側の立場であれば「パスワードくらい自分でちゃんと管理しておくべき」と言いたくなる。しかし、自分がユーザーであれば、パスワードを忘れて不便を感じている時「パスワードを忘れた場合」なんてリンクがあると、多少は救われた気がする。そこをクリックすれば、パスワードをリセットなり、再発行して、再びログインできることを夢見ている...。 ところで、restful_authenticationには「パスワードを忘れた場合」の処理は特にない。特に無いけども、最初にユーザー登録した時、アクティベーションを促すメールで、ユーザー名とパスワードも送信している。開発者側の立場であれば「過去にメールを送信しています。ご自分で検索してみてください。」で終わりにしたい。しかし、自分がユーザーであれば、「過去のメールは消えてしまった。」とか「自分のパソコンじゃないから検索で
Redmine を Windows 上の JRuby で実行した際に Subversion との連携が正しく動作しない点について簡単に調査してみた。 環境は以下の通り。 JRuby 1.1.2 Redmine 0.7.2 Subversion win32 1.4.5 原因 原因は、svn コマンドの実行に失敗していることで、失敗の原因は svn コマンドの実行時にパスをシングルクォート「'」で囲んで実行してしまっている点。 ソースコードの該当箇所は AbstractAdapter クラス(lib/redmine/scm/adapters/abstract_adapter.rb) の shell_quote メソッドです。 AbstractAdapter クラスの shell_quote メソッド def shell_quote(str) if RUBY_PLATFORM =~ /mswin
RailsでWebアプリケーションを作るとなると、FastCGIを利用することを(大抵の場合は)余儀なくされるっぽいですが、「Apache+FastCGI+Rails」の組み合わせで軽くハマりました。 以下のような謎のエラーが。しかも発生頻度は100~200アクセスに1回程度。 SystemExit (exit): /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/fcgi_handler.rb:116:in `exit’ /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/fcgi_handler.rb:116:in `exit_now_handler’ /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く