タグ

ブックマーク / secondlife.hatenablog.jp (53)

  • RubyのSymbol - 2nd life (移転しました)

    Rubyを最初学んだとき、SymbolとStringの違いが解って無くて、なら全部StringでいいやとSymbolを全く使わなかった時期がありました。今は意図的に使い分けるようにしています。Lost-Season: Rubyのシンボル で疑問点が上がっていたので、初心者向けにSymbolについて説明してみます。 まず使い道ですが、文字の定義を明確にしたいときに使うことが多いです。たとえばhashのkeyだったり、アクセサの引数で渡すインスタンス変数名だったり、alias_methodの引数で渡すメソッド名だったりと、文字に意味づけしたい時に使えます。このようなときにSymbolを使うことによって、ソースがすっきりして可視性が上がります。 また、symbolを使うと速度が向上します。これは、'a' と書くと毎回Stringの'a'を生成しコストが発生しますが、:aと書くと初回にしかコストが

    RubyのSymbol - 2nd life (移転しました)
    poppen
    poppen 2005/12/23
  • Irb/TipsAndTricks - 2nd life (移転しました)

    http://www.rubygarden.org/ruby?Irb/TipsAndTricks Ruby使いなら誰もが愛用している(と思われる)irbのtipsなどが書かれているrubygardenの1ページなんですが、ここのriを使ってリファレンス引く方法が超便利!refeに変えたら鼻血が出るほど便利だったので紹介。refeとは、 クラス名とメソッド名から Ruby のリファレンスマニュアルのエントリを引く、コマンドライン用のツールです。読みは「りふぇ」。 ri をパクって日語・RD に対応させたものです。 http://i.loveruby.net/ja/prog/refe.html という青木さん作のツールで、最近はgem化もされてるのでgem install refeでも一発インストールができます。で、先ほどのサイトで書かれてるriの箇所をちょっと変更して、~/.irbrcに

    Irb/TipsAndTricks - 2nd life (移転しました)
    poppen
    poppen 2005/12/23
  • Web2.0 アプリケーションライク な背景画像を生成する Background Image Maker

    http://lab.rails2u.com/bgmaker/ ウェブサイトのデザインをしているとき、自分はCSSを利用します。そのCSSを書いていて、「ああ、こんな背景画像がほしーな」と思うと、今までは画像編集ソフトでちまちま作ってSCPでサーバにアップして確認し「いやここはもうちょいこうした方が」とまた少しだけ修正してアップして…という繰り返し作業を行ってました。 しかしその作業単調が面倒になってきたため、簡単にWeb2.0っぽいアプリケーションでよく使わるような背景画像をWeb上から作成できるツール、「Background Image Maker」を作ってみました。下のような背景画像を簡単に作成ができます。また先日このページを現在のデザインにリニューアルしたのですが、今使っている背景画像も全部 Background Image Maker を使って作成してます。 使い方は値を適当に弄

  • 川o・-・)<2nd life - 第0回 Rails勉強会@東京

    http://wiki.fdiary.net/rails/?Rails%CA%D9%B6%AF%B2%F1%A1%F7%C5%EC%B5%FE 先日の11/05日に第0回 Rails勉強会@東京に行ってきました。急な応募にもかかわらず29名全員が欠席無しで参加とかすごい! 感想はいろんな人が書いているので、自分が当日発表したpluginだけ公開します。 http://svn.rails2u.com/public/plugins/trunk/ ActiveHeart 主に日語関係で便利じゃないのかなぁ、といったものが入ってるpluginです。今現在は ActiveRecordMessagesJa TransSid が入ってます。ActiveRecordMessagesJaはくまくまーさんのValidationsを参考にメッセージ周りのローカライズを行ってます。このpluginを入れて cl

    川o・-・)<2nd life - 第0回 Rails勉強会@東京
    poppen
    poppen 2005/11/25
    pluginについて
  • 川o・-・)<2nd life - Railsの最適化に関する10の事柄

    http://weblog.textdrive.com/article/175/rails-optimizing-resource-usage TextDriveで、Optimizing Rails Resource Usageという記事が公開されました。Railsの最適化について10の事柄を挙げています。興味がある人は原文を読んでもらうとして、ここでは軽くサマリー(意訳)を。間違っていたらコメント歓迎! 1. 最小限のFastCGI 開発には1つのDispatcherで十分。A list Apartでも4つのFastCGI Dispatcherで動かしてて速くてloadも0.01だよ。あとFCGIが増えるとDBコネクションも増えるからね。 2. キャッシュを使う Dispatcherを通さずキャッシュを使う。Railsではとっても簡単にキャッシュ使えるし、期限設定も楽だし。lighttp

    川o・-・)<2nd life - Railsの最適化に関する10の事柄
    poppen
    poppen 2005/11/20
  • prototype.js の Ajax.Responders.register - 2nd life (移転しました)

    最近のprototype.js(1.4_rc1かな?)から追加されたAjax.Responders.registerがかゆいところに手が届く感じで便利です。何をする物かと云うと、prototype.jsを使ってAjaxる場合、Ajax.Requestを通して通信を行います。そのAjax.Requestすべての通信開始時と終了時に任意のfunctionを登録できる機能です。早速 http://rails2u.com:8008/ (safariリンククリック注意!ブラウザがハングアップするという話) でRESTWikiに組み込んでみました。これで裏で非同期に通信を行ってるとき、ブラウザの右上に視覚的に'loading...'の文字が表示されます。 実装方法は非常に簡単で Ajax.Responders.register({ onCreate: function() { if($('busy')

    prototype.js の Ajax.Responders.register - 2nd life (移転しました)
  • RailsのFastCGI運営時でのrestert,reloadの方法 - 2nd life (移転しました)

    RailsのFastCGIで動かしてるアプリケーションのconfig(enviroment.rb)やライブラリの再読込って最初やり方が解らずに、lighttpdを毎回毎回毎回再起動というアホらしいことをしていたんだけど、先日RailsFCGIHandlerのソースを見たら特定のSIGNALを送ればいいことが解った。ソースには SIGNALS = { 'HUP' => :reload, 'TERM' => :exit, 'USR1' => :exit, 'USR2' => :restart } と定義されてるている。reloadとrestartの一番の違いはreloadだとライブラリなどの再読込はされるけど、enviroment.rbは再読込されず、restartは両方再読込されることだろう。で、コレを知ってからはアプリケーションがwikiならばwikiがpathに含まれているので $ fo

    RailsのFastCGI運営時でのrestert,reloadの方法 - 2nd life (移転しました)
    poppen
    poppen 2005/10/20
  • Rubyで今実行中のメソッド名を知る - 2nd life (移転しました)

    http://www.lostway.org/~tko/cgi-bin/bakagaiku.rb?bakaid=200510131 を見て、exception起こしてbacktractで無理矢理取得、って方法を知る。アタマイイ!ということでObjectに組み込んでみた。ひょっとしたら使う機会があるかも? class Object def current_method begin raise StandardError rescue StandardError => e e.backtrace[1].scan(/`(.*)'/).to_s end end end で、下記のような挙動に。 def foo p current_method end foo #=> 'foo' 追記 id:ha-tan:20051014:1129218253 によると、callerを使えば例外を投げなくともbac

    Rubyで今実行中のメソッド名を知る - 2nd life (移転しました)
    poppen
    poppen 2005/10/20
  • 誕生日から年齢を求める - 2nd life (移転しました)

    誕生日(timeオブジェクト)から年齢を求めたいとき class Time def to_age now = Time.now.strftime("%Y%m%d").to_i birthday = self.strftime("%Y%m%d").to_i (now - birthday) / 10000 end end とかいうmethodを作っておくと require 'time' t = Time.parse('1981/9/26') p t.to_age #=> 23 と簡単に求められる!前どっかで単純に現在の20050922みたいな日付から誕生日の19810926を引いて10000で割るだけで求められるよ、っての見かけたんだけどどこで見たのか忘れたのでメモ。

    誕生日から年齢を求める - 2nd life (移転しました)
    poppen
    poppen 2005/10/03
  • RubyのObservable - 2nd life (移転しました)

    http://www.ruby-lang.org/ja/man/?cmd=view;name=Observable ActiveRecordのソース読んでて、Observerパターンのところでinclude Observableとmix-inしててなんじゃこりゃって思ったので調べたら、標準添付ライブラリでこんなんあったのねー。 つーことで結城さんのJava言語で学ぶデザインパターン入門のObserverパターンのサンプルをObservableを使って実装してみた。 #!/usr/bin/env ruby require 'observer' class RandomNumberGenerator include Observable attr_reader :number def execute 20.times do @number = rand 50 self.changed noti

    RubyのObservable - 2nd life (移転しました)
  • 川o・-・)<2nd life - bookmarkletの文字数制限を無くす

    bookmarkletを作るとき、IEでは500文字ちょい、Firefoxでは2000文字ぐらい(?)の文字数制限がある。また、作った後に一行にまとめたり、デバッグしたりも大変面倒。でもそれがとても簡単な方法でどうにでもなることをインターフェイス!インターフェイス!の人に教わった。 javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="http://example.com/example.js";document.body.appendChild(s)})(); createElementでscript要素を作って、その中にhttp://example.com/example.jsとソースを指定することによってそのJSを実行できる。WinIEとFirefoxでは確認済み。

    川o・-・)<2nd life - bookmarkletの文字数制限を無くす
  • webアプリケーションテストツール seleniumがヤバすぎる

    http://selenium.thoughtworks.com/index.html JavaScriptを使い実際のブラウザを介してテストするseleniumがヤバすぎる。便利すぎ。Web案件なんつーのはほんと最終フェイズになってもMVCで云うモデルに当たる部分が「仕様変更」の一言によって変更されることも多々あって、そんなときは各種testが書き直しになったりする。んで最終で時間がない状態じゃtest書き直せる訳もなく人海戦術で無理矢理なんとか仕上げる、つーのがいまのWeb案件の大概の末路の気がするんだけどそれはおいといて。 このseleniumを使えば、簡単な記述で人間が実際にブラウザを操作してテストしている部分の大半である画面遷移、フォームの入力、ヴァリデーションの正否がなどが行える。つまりインターフェイスの仕様が変わらなければ延々とテストし続けられるわけだ。最後の受け入れテストの

    webアプリケーションテストツール seleniumがヤバすぎる
    poppen
    poppen 2005/05/29
  • JavaScriptのデバッグコンソールで警告を出す - 2nd life (移転しました)

    IRCJavaScriptを極めて起業するの人に教えてもらったんだけど、Firefoxのabout:configで user_pref("javascript.options.strict", true); するとJavascript Debug Consoleで警告がでるように。たとえば関数無いでvar fooで定義してない変数をfoo = 'var'みたいにいきなり使おうとすると警告される。JavaScriptを書いてるときけっこーべんり。

    JavaScriptのデバッグコンソールで警告を出す - 2nd life (移転しました)
    poppen
    poppen 2005/05/03