タグ

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

  • Macのlaunchdについて - おもしろwebサービス開発日記

    Macでatコマンドを使ったらなぜかうまくいかなくて、原因を調べたら、どうやらdaemonが起動していない模様。 atコマンドが使いたくなった。launchctl - fu7mu4の日記 設定は上記の記事の通りやったら動いたのですが、そもそもMac特有のlaunchdについてよく知らないことに気づいたのでざっくり調べてみました。 launchdの基礎 他のUNIXで使われているinitの代わり init, inetd, cron等の設定を共通化するために作られた*1 サービスごとに個別の設定ファイル(launchd.plist)に記述される。 initの代わりとして、PID1で動くlaunchdの他に、必要に応じて、ログインしているユーザごとにそれぞれユーザ向けlaunchdが動作する。 launchdの起動するサービス DaemonとAgentがある。 Daemon root権限での動作

    Macのlaunchdについて - おもしろwebサービス開発日記
    kamipo
    kamipo 2009/03/18
    init, inetd, cron等の設定を共通化するために作られた
  • Rubyでwebにアクセスするライブラリ、どれが速い? - おもしろwebサービス開発日記

    なにやらRuby1.8.6のNet::HTTPは遅いという噂があります。 InfoQ: RubyNet::HTTPで何が良くないのか? それでは一体どのライブラリが一番速いのでしょうか。調べてみました。 大きいファイルをダウンロード localhost(apache)に置いた10Mのファイルをダウンロードしてみました。ソースは下記の通り require "rubygems" require "benchmark" require "net/http" require "httpclient" require "open-uri" require "curl" Benchmark.bm do |x| File.open("/tmp/openuri", "w") do |file| x.report("open-uri"){ open("http://localhost/testfile")

    Rubyでwebにアクセスするライブラリ、どれが速い? - おもしろwebサービス開発日記
  • Rails2.1系にCSRFに対する脆弱製が発見されました - おもしろwebサービス開発日記

    Rails2.1系のwebサービスを公開している方は注意。 Riding Rails: Potential Circumvention of CSRF Protection in Rails 2.1 どういう事かというと、 通常、RailsはCSRFを防ぐために、フォームにtokenを自動で埋め込みリクエスト受付時に認証を行っています。 ブラウザで普通生成できない、信頼されているcontent-typeのリクエストはそのtokenの認証を行わずスルーしているようです。 その信頼されているcontent-typeリストの中に、ブラウザで生成できる'text/plain'が入ってしまっているようです。 つまり、Rails2.1系で作られたwebサイトに対しては、content-typeをtext/plainにしておけばCSRFし放題ってこと・・・なはず。 対策 次回のアップデートバージョンであ

    Rails2.1系にCSRFに対する脆弱製が発見されました - おもしろwebサービス開発日記
  • zshの使える設定まとめ - おもしろwebサービス開発日記

    .zshrcの設定は【コラム】漢のzsh (22) もってけ泥棒! コピペで始めるzsh - リターンズ | エンタープライズ | マイコミジャーナルのコピペでほぼ問題ないとは思うのですが、それぞれの設定の意味と使い方くらいは抑えておきたいところです。というわけで、自分的に重要そうなものだけまとめてみました。 補完 autoload -U compinit compinit のようにすると、zshの補完機能が有効になります。また、 ls - でtabを押すと ls - -1 -- single column output -A -- list all except . and .. -B -- don't list entries ending with ~ -C -- list entries in columns sorted vertically -D -- generate out

    zshの使える設定まとめ - おもしろwebサービス開発日記
    kamipo
    kamipo 2008/10/23
  • do...endと{...}の違い - おもしろwebサービス開発日記

    Rubyのブロックの記述方法にはdo...endと{...}の2種類があります。僕は基的にRubyコーディング規約を参考にしてRubyコードを書いているのでdo...end派なのですが、Railsのnamed_scopeをこんな風に書いたらエラーがでました named_scope :hoge, lambda do |name| { :conditions => ["name = ?", name] } end #=> ArgumentError "tried to create Proc object without a block" でもこうしたらOK。 named_scope :hoge, lambda { |name| { :conditions => ["name = ?", name] } } do...endと{...}って同じかと思っていましたが違うようです。リファレンスを

    do...endと{...}の違い - おもしろwebサービス開発日記
    kamipo
    kamipo 2008/10/16
  • gungiに行ってきました - おもしろwebサービス開発日記

    今日は、PASONAさん主催のgungiに行ってきました。 主催、運営された方々すばらしいイベントをありがとうございました。 副題が、「gungiプレゼンツ Webの未来を指し示す技術ベンチャー達 〜収益は後からついてくるよね?。」ということで、ベンチャーの収益面にフューチャーしたイベントでした。 パネラーの会社 株式会社プリファードインフラストラクチャー サイジニア株式会社 株式会社ロケットスタート 株式会社超店舗検索 株式会社ハートレイルズ 感想 上記パネラーのうち、 株式会社プリファードインフラストラクチャー サイジニア株式会社 の2社さんは(この5社の中では)収益のプライオリティを高くしている会社、他3社は収益に対するプライオリティがそれほど高くない会社という印象を受けました。 いかにして収益をあげるかに対する立ち位置として、「いい物を作ればお金は後からついてくる」と超店舗検索の柴

    gungiに行ってきました - おもしろwebサービス開発日記
  • ruby-debugでデバッグ - おもしろwebサービス開発日記

    Railsアプリのデバッグをするとき、僕は基的にはpを使ってます。pだけじゃしんどそうだなーという場合も時々あって、そういう時にはruby-debugを使ってます。でも時々なので使い方をよく忘れます。これは効率悪いですね。というわけでruby-debugの使い方を簡単にですがまとめてみます。 インストール gemを使います。 sudo gem install ruby-debug で、該当箇所にrequire require 'ruby-debug' Rails2.1以降ならconfig/environment.rbに書いちゃってもいいかも config.gem 'ruby-debug' 使い方 デバッグしたい箇所にdebuggerと書く。 script/serverでmongrel(またはwebrick)を起動して、debuggerと書いた部分を通るようなことをする。 あとはコマンドを

    ruby-debugでデバッグ - おもしろwebサービス開発日記
  • logrotateでログのローテーションをする - おもしろwebサービス開発日記

    railsのproduction.logなどをローテーションする一般的な方法、logrotateについてのメモ書きです。 基 /etc/logrotate.confにデフォルトの設定 /etc/logrotate.d/配下に個別の設定を書く 利用できるディレクティブ(の一部) daily or weekly or monthly ログのローテーション間隔 missingok ログファイルがない場合でもエラーにしない rotate n n回ローテーションする compress ローテーションされたログを圧縮 delaycompress 次回のログローテーションサイクルになるまで圧縮しない notifempty ログファイルが空ならローテートしない create 0644 user group ログファイルのパーミッションと所有ユーザの設定 copytruncate 通常、ローテートするとき

    logrotateでログのローテーションをする - おもしろwebサービス開発日記
    kamipo
    kamipo 2008/10/03
    dateext ログファイル末尾につく数値の代わりに日付(YYYYMMDD)がつく
  • railsのクッキーとセッションについてまとめ - おもしろwebサービス開発日記

    こないだ、よくわからんので今度調べると書いたところについて。 CSRFの対応について、rails使いが知っておくべきこと - おもしろWEBサービス開発日記 まずクッキーとセッションの違いから。自分の認識はこんな感じ クッキーもセッションも、ブラウザにデータを保存させる仕組み。 クッキーはデータをそのままブラウザに保存させる。 セッションはセッションIDをブラウザに保存させ、データはサーバ側が保持する。サーバはセッションIDをキーにしてデータを取り出す。 railsでクッキーを設定するには railsでは、クッキーは基的に使わないと思ってますが、一応使い方をメモ。 cookies[:hoge] = { :value => "value", :expires => "30.days.from_now", :path => "/store", :domain => "www.example.

    railsのクッキーとセッションについてまとめ - おもしろwebサービス開発日記
  • CSRFの対応について、rails使いが知っておくべきこと - おもしろwebサービス開発日記

    以前、CSRFについてのエントリを書きました。 CSRFについて - おもしろWEBサービス開発日記 上記エントリではCSRFの概念について書きましたが、もう少しつっこんで調べる必要が出てきました。調べたことを書いてゆきます。 基礎 application.rb(ないし適当なController)にprotect_from_forgeryメソッドを定義すれば、railsが自動的にCSRF対策をしてくれます。というか、デフォルトでapplication.rbに下記のように書いてあるので、特に何もせずともCSRF対策はバッチリなのです。 protect_from_forgery # :secret => '8ff3ed33f86a431662d8dfe255acdb4a' railsは、get以外の動詞のリンクに、authenticity_tokenというパラメータを自動的に付け加えます。ge

    CSRFの対応について、rails使いが知っておくべきこと - おもしろwebサービス開発日記
  • rubyでwebにアクセスするライブラリ、何使う? - おもしろwebサービス開発日記

    rubyでwebにアクセスするライブラリが複数あります。 標準のライブラリ open-uri Net::HTTP gemライブラリ mechanize curb(curl) どんなときにどれを使ったらいいんでしょうね?ということで簡単にですがそれぞれの特徴を調べてみました。 open-uri この中で一番簡単なライブラリ。openメソッドを拡張して、webページを普通のファイルのようにオープンできるようにします。詳しい使い方は下記参考。 open-uri - Rubyリファレンスマニュアル Net::HTTP getの他にpostやリダイレクトにも対応。下記のように、ブロックの中でサーバ内のコンテンツにアクセスするように書くので、同一サーバに何度もアクセスする場合はopen-uriより便利。 require 'net/http' Net::HTTP.version_1_2 Net::HTT

    rubyでwebにアクセスするライブラリ、何使う? - おもしろwebサービス開発日記