タグ

ブックマーク / lukesilvia.hatenablog.com (11)

  • REST について調べたまとめ - LukeSilvia’s diary

    普段仕事Rails を使っている身ですが、Rails 2.x 系を使っているものが1つもない。結構前からRails 3 の話題がでてきている今、そろそろRails 2.x をまともに使っておきたいと思ったので、まずはREST について調べました。最初にREST について調べたのは、REST がRails 2.x (実際には1.2.x から)で導入された最も大きな概念だからです。 REST とは REST とはアーキテクチャスタイルである アーキテクチャスタイルとはデザインパターンのようなもので、システムを設計する上での方針をまとめたものである。 REST は「REpresentational State Transfer」の略である 直訳すると、「(リソースの)表現可能な状態の転送」。あるリソースの状態を表現したものがサーバからクライアントに転送されるのがREST。ここにでてきた「リソー

    REST について調べたまとめ - LukeSilvia’s diary
    InoHiro
    InoHiro 2014/05/19
  • 大きめのテーブルにカラムやインデックスを追加する際の注意 - LukeSilvia’s diary

    先日大きめ(といっても500万行くらい)のテーブルにインデックス付きのカラムを追加しようとして痛い目にあったので調査。 大きめのテーブルにカラムやインデックスを追加するとどうなるか 今回は単純に、「ALTER TABLE 〜 」で追加しようとしました。追加するカラムは3つで、 varchar(255) インデックスなし varchar(255) ↓のdate 型カラムとマルチカラムインデックスの形式のユニークインデックスあり date インデックスあり SQL を実行し、状況を「SHOW PROCESSLIST」で監視していたら、1つ目のカラム追加で次のような状態に… 最初にState が「copy to tmp table」状態になり、次の状態に遷移するまで1時間かかる 次にState が「Repair with keycache」状態になり、完了までに1時間かかる 次のカラム追加に対す

    大きめのテーブルにカラムやインデックスを追加する際の注意 - LukeSilvia’s diary
  • Hash引数便利よね - LukeSilvia’s diary

    Railsの引数としてのHashの使い方上手いよな Ruby on Railsのメソッド引数って、Hashが多いですよね。しかも、HashのキーとしてSymbolが使えて凄く直感的に書ける。 Hashを使った引数 redirect_to :controller => "user", :action => "home" なんでもかんでもHashにすれば良いってわけじゃないけど、パラメータの数が不変の場合とか(上の例の場合、コントローラ指定しない場合もある)、オプション系のパラメータには凄い便利。 引数の意味調べるために呼び出すメソッドの引数のを受ける変数の名前を見て判断しなくていいし。 Hash引数使ってみる 例えばオプション系で使ってみる。例として、リダイレクト処理をして、flashのメッセージを指定できるメソッドを書いてみる。 Hash使わない場合 def redirect_with_m

    Hash引数便利よね - LukeSilvia’s diary
    InoHiro
    InoHiro 2011/10/03
  • Hashによるオプション引数とActiveRecord::Base.extract_options_from_args! - LukeSilvia’s diary

    以前、メソッドの引数としてHashを使うといいというエントリーを書きました。 Hash引数便利よね - Slow Dance その中で、特にオプション引数に対して有効ということを書きました。 今回は、オプション引数とActiveRecord::Base.extract_options_from_args!を組み合わせるとなかなか便利という話です 携帯の識別番号を設定するメソッド 参考はJpmobileのtestのソース ソース閲覧 . retrospectiva module ActionController class TestRequest < AbstractRequest attr_accessor :user_agent def guid @env["HTTP_X_DCMGUID"] end def guid=(id) @env["HTTP_X_DCMGUID"] = id en

    Hashによるオプション引数とActiveRecord::Base.extract_options_from_args! - LukeSilvia’s diary
  • MySQLが再起動できなくなった - LukeSilvia’s diary

    MySQLを停止して、起動しようとしたらエラーした 停止 /etc/rc.d/init.d/mysql stop した後に 起動 /etc/rc.d/init.d/mysql start ここで失敗。何故か起動できない(泣) 試す まずは、mysqlとか打ってみる。当然起動しないで、以下のようにエラーする。 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' エラーメッセージでググる 「Can't connect to local MySQL server through socket」エラーについて このエラーが発生する原因には以下の3つが考えられます。 ・MySQLサーバーが起動していない ・MySQLサーバーで使っているUNIXソケットとクライアントソフトで使っているUNIXソケ

    MySQLが再起動できなくなった - LukeSilvia’s diary
  • 特定のコマンドをパスワードなしでsudo する設定 - LukeSilvia’s diary

    ちょい分かりにくかったので、設定メモです。やりたいことは、sudo で実行する際に、find コマンド等、よく使う、かつ、実行してもあまり被害がないコマンドに関しては、パスワード入力なしで実行できるようにしたいということです。 sudo コマンドに関する設定は、「/etc/sudoers」にかかれています。 設定を変更するのは、これを直接編集するのではなく、「visudo」コマンドを実行します。このコマンドで設定を行うと、終了時にSyntax のチェックなどを行ってくれます。 $sudo visudo ユーザー「lukesiliva」は、「find」コマンドだけについては、sudo で実行する際にパスワードを聞かれないようにしたいという設定は以下のようになります。 こで、find コマンドのみパスワード入力を求められず、他のコマンドをsudo で実行する際には、今まで通りパスワードを求めら

    特定のコマンドをパスワードなしでsudo する設定 - LukeSilvia’s diary
  • update_attribute とupdate_attribtues の違い - LukeSilvia’s diary

    以前に書いたコードを読んでいると、1カラムの値だけを変えるからといって、update_attribute メソッドを使っている部分があった。これはあまりよくない update_attribute とupdate_attribtues の違い 前者は1つのカラムの値を、後者は複数のカラムの値を更新できる。という違い以上に、「update_attribute メソッドはvalidation なしに更新、update_attributes メソッドはvalidation ありで更新」という違いがあります。 つまり、update_attribute 使うと、検証処理なしに、値が更新されてしまう。ソースを見ると、update_attribute の方は、save(false) を使って更新しているのが分かる。 activerecord/lib/active_record/base.rb at mas

    update_attribute とupdate_attribtues の違い - LukeSilvia’s diary
  • 「クックパッド」のものづくりセミナーに行ってきたまとめ - LukeSilvia’s diary

    昨日、ウェブキャリアさんが主催する月間524万人が利用するのインフラ、「クックパッド」のものづくりセミナーに行ってきました。 クックパッドと言えばRails での大規模リニューアルがニュースになりました。また、大規模開発には向かないと言われたこともあるRails でこれほど大規模なサイトを開発するノウハウに興味があり、参加しました。 めちゃくちゃ良い情報を得ることができました。これはすごいセミナーでした。以下、まとめです。メモ不足だったので、一部他のサイトの情報を元にまとめています。 CookPad 概要 サイト レシピ検索No.1/料理レシピ載せるなら クックパッド Rails で作られたサイトの中、ユーザ数で世界で8番目の規模 rails100 wiki / Alexa Rankings Rails で作られたサイトの中、ページビューでは世界で2番目 構成 Rails 2.0(現在2

    「クックパッド」のものづくりセミナーに行ってきたまとめ - LukeSilvia’s diary
  • validationのエラーメッセージ(error_messages_for)の日本語化 - LukeSilvia’s diary

    何が問題か RubyOnRalsには、ライブラリとして便利な機能がデフォルトで提供されている。「error_messages_for」もその1つ。これは、ユーザーがフォームからデータを送信してきた時、内容にもれがあったり、値が不正であることをメッセージとして出力するもの。 しかし、デフォルトは英語表記。しかも、カラム名を使用してしまうのであまりよくない。そこで、これを日語化する。 解決策 主に3つあると思う。 1.「ActiveHeart」を使う(非推奨) 2.「ruby-gettext」を使う 3. 自分で変更 ActiveHeartは、作成者が非推奨していた。何らかの脆弱性なのかな。ググれば出ると思う。このライブラリの中に日語化をサポートするものがある。 ruby-gettextも日語化をサポートするが、こちらは日語化だけでなく、様々な言語にアプリケーションを対応させることがで

    validationのエラーメッセージ(error_messages_for)の日本語化 - LukeSilvia’s diary
  • Rails 1.2.3 〜 2.2.2 までの主な変更点のまとめ - LukeSilvia’s diary

    rails の2.x 系をまともに勉強していなかったので、調査しました。コピペの部分も多いですが、情報ソースと共に記述します。 あまり変更点がなかったマイナーアップデートは除外してあります。 1.2.4 2.0 からエラーになる構文に対する警告出力 1.2.4 で警告がでなければ、2.0 で問題なく動くと言われている セッション固定攻撃対策として, URLベースセッションのサポートを削除 ActiveRecord::Base#to_jsonを使っている場合に発生する可能性があるXSS攻撃を回避するようにJSONエンコーディングアルゴリズムが変更 参考 Rails 1.2.4登場 - 2.0での対応予定者もバージョンで警告チェックを | エンタープライズ | マイコミジャーナル 1.2.5 JSONXSS 修正 参考 Ruby on Rails 1.2.5公開 - JSON XSS脆弱性を

    Rails 1.2.3 〜 2.2.2 までの主な変更点のまとめ - LukeSilvia’s diary
    InoHiro
    InoHiro 2009/04/13
    これはよい
  • まつもとゆきひろ氏が語る「ビューティフルコード」セミナーに行って来た - LukeSilvia’s diary

    まつもとゆきひろが語る「ビューティフルコード」×「プログラマ35歳定年説」に行ってきました〜。今年初めて行ったイベントなのですが、とてもいいお話を聞くことができました。美しいコードとはどのようなものか、またそのようなコードを書けるようになるためにはどうすればいいのかというお話でした。 以下、まとめになります。僕のメモを元にしたので、まつもとさんが話された内容と多少ズレがあるかもしれません。 そもそもコードとは何か 「コードの美しさとは」という前に、そもそも「コード」とは何か。 ソフトウェアの作成はものづくりではない コードは工業製品ではない。コードは、車とかと同じ工業製品だと思われることが多く、例えば次のような勘違いがある。 日は「ものづくり」が得意だ。だからソフトウェアも「ものづくり」として取り組めばいい 車のように、ソフトウェアも部品をどんどんコピーして組み合わせばできる 違うよ!全

    まつもとゆきひろ氏が語る「ビューティフルコード」セミナーに行って来た - LukeSilvia’s diary
    InoHiro
    InoHiro 2009/02/08
    "プログラマはアーティスト" / コードを読もう
  • 1