This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/100

IE7でJuggernautを使ったときにエラーが出るようなので、原因を調べてみました。

その結果、IE7では、script、embed、objectなどの特定のDOMエレメントに対して、innerHTMLに値を設定しようとするとエラーになるようです。

   1  document.createElement('script').innerHTML = 'alert(1)'; // エラー!

いまのところ、以下のように別なDOMエレメントのinnerHTMLにHTMLとして 埋め込む分には大丈夫なようです。

   1  var span = document.createElement('span');
   2  span.innerHTML = '<script type="text/javascript">alert(1)</script>';
   3  document.body.appendChild(span);
どんな意図があっての仕様変更なんだろう?

  <a id="BlogEntryExtend"></a>
  <span id="extended-text" /><p>

ともあれ、IE7に対応するようにJuggernautのJavaScriptを書き換えてみました。

   1  ---- code of public/javascripts/juggernaut.js ----
   2   
   3    _appendIECommandHandler: function() {
   4      var scriptbox = document.createElement('div');
   5      scriptbox.style.display = 'none';
   6      scriptbox.innerHTML = [
   7        '&lt;script language="VBScript"&gt;',
   8        '  on error resume next',
   9        '  Sub juggernaut_flash_FSCommand(ByVal command, ByVal args)',
  10        '   call myFlash_DoFSCommand(command, args)',
  11        '  end sub',
  12        '&lt;/script&gt;'].join("\n");
  13      document.body.appendChild(scriptbox);
  14    },
  15   
  16    _appendFlashObject: function() {
  17      var host = Juggernaut.host;
  18      var port = Juggernaut.port;
  19      var data = Juggernaut.data;
  20      var flashbox = document.createElement('div');
  21      flashbox.style.display = 'none';
  22      flashbox.innerHTML = [
  23        '&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ',
  24          'codebase="http://download.macromedia.com/pub/shockwave/cabs/',
  25          'flash/swflash.cab#version=5,0,0,0" id="juggernaut_flash"&gt;',
  26        '&lt;param name="movie" value="/juggernaut.swf?host=', host,
  27          '&port=', port, '&juggernaut_data=', data, '"&gt;',
  28        '&lt;param name="quality" value="high"&gt;',
  29        '&lt;embed src="/juggernaut.swf?host=', host, '&port=', port,
  30          '&juggernaut_data=', data + '" quality="high" ',
  31          'name="juggernaut_flash" swLiveConnect="true" ',
  32          'type="application/x-shockwave-flash" ',
  33          'pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;',
  34        '&lt;/embed&gt;'].join('');
  35      document.body.appendChild(flashbox);
  36     },

作者のAlex氏にはパッチを送っておきました。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/100

posted by Png genki on Wed 13 Sep 2006 at 20:26

This article was migrated from http://rails.office.drecom.jp/hibi/archive/26

あふれたバッファを見るには下記。
瀧内さんに教えてもらった。
おーーすごい便利。ヤッター!
いやー小さい工夫の積み重ねって大事だね。
(Ctrl-Tは人によって違うかも。Ctrl-Zとかなのかな。。。)


Ctrl-t Ctrl-b:1画面?スクロール上へ
Ctrl-f :1画面?スクロール下へ


あとscreenでUTF8なファイルを見るには、-Uオプションで立ち上げるのは有名な話らしい。
そりゃそうだ、UTF8オプションだもの!


screen -U


がんばってバージョンアップしなくちゃだなぁ。 http://rails.office.drecom.jp/hibi/archive/26

This article was migrated from http://rails.office.drecom.jp/hibi/archive/26

posted by Png satoko on Wed 13 Sep 2006 at 14:35

This article was migrated from http://rails.office.drecom.jp/hibi/archive/25

# apt-get install imagemagick librmagick-ruby1.8

すんなりOK。
次、RMagic

# gem install RMagick
Bulk updating Gem source index for: http://gems.rubyforge.org
Building native extensions. This could take a while...
configure: error: Can't install RMagick. Can't find Magick-config or GraphicsMagick-config program.

すんなりNG
先にインストールしたやつをremove
apt-get remove imagemagick
apt-get remove librmagick-ruby1.8

というわけでぐぐる。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RMagick

ImageMagick
#wget http://jaist.dl.sourceforge.net/sourceforge/imagemagick/ImageMagick-6.2.9-4.tar.gz
#tar xvfz ImageMagick-6.2.9-4.tar.gz
#cd ImageMagick-6.2.9
#./configure --enable-shared
#make
#make install

RMagick
ちょっと持ち越し。。。
wget http://rubyforge.org/frs/download.php/11314/rmagick-1.13.0.gem
gem install rmagick-1.13.0.gem


#wget http://rubyforge.org/frs/download.php/11316/RMagick-1.13.0.tar.gz
#./configure --enable-shared
http://rails.office.drecom.jp/hibi/archive/25

This article was migrated from http://rails.office.drecom.jp/hibi/archive/25

posted by Png satoko on Wed 13 Sep 2006 at 03:28

This article was migrated from http://rails.office.drecom.jp/hibi/archive/24

http://d.hatena.ne.jp/naoya/20051118/1132279240

ランダムにレコードを取り出したいときに使うといいらしい。


select id from entry order by rand() limit1;


のですが、データ量がたくさんあるテーブルだと遅くなる罠があるので要注意。
ということで、今回使えるかと思ったのだけど無理っぽそうです。
flickrとかどうやってるのかなぁ。 http://rails.office.drecom.jp/hibi/archive/24

This article was migrated from http://rails.office.drecom.jp/hibi/archive/24

posted by Png satoko on Wed 13 Sep 2006 at 00:43

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/99

yuguiさんのhas_one :throughはABD的にRailsを使うのには欠かせない存在です。 今回は、オリジナルのhas_one :throughを拡張して、Unsaved objectも扱えるようにしてみました。

class ActiveRecord::Associations::HasOneThroughAssociation <
  ActiveRecord::Associations::HasOneAssociation
private
  〜 略 〜
  def load_target
    if !loaded? && @owner.new_record?
      table_name = @reflection.through_reflection.table_name
      @target = @owner.send(table_name.singularize).send(@reflection.name)
    end
    super
  end
end
上記のコードをオリジナルのコードに追加すると、Unsaved objectに対しても、アソシエーションを参照することができるようになります。
member = Member.new
member.build_membership(:group => Group.new)
member.group
というわけで、yuguiさんお願いしますー。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/99

posted by Png genki on Mon 11 Sep 2006 at 23:31

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/98

ブログの記事をエントリーと呼ぶかアーティクルと呼ぶかというお話。

Railsで書けばこんな感じになります。

class Blog < ActiveRecord::Base
  has_many :entries
  has_many :articles, :through => :entries
end
エントリーは「記入する」というアクティビティで、ブログと記事(Article)はリソースなので、ABD的に考えると何の呵責もなくすっきりと理解できますね。すばらしい!

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/98

posted by Png genki on Mon 11 Sep 2006 at 15:13

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/97

すでにあるかもしれないですが、gemのサブコマンド補完関数です。

_gem () {
  `gem help commands | grep '^  *' | sed 's/^ *//' | sed 's/  *.*//' | sed 's/^/compadd /'`
}

compdef _gem gem
時間ができたら zsh はもっと詳しく調べてみたいですね。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/97

posted by Png genki on Sun 10 Sep 2006 at 02:31

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/96

ZenTestは、RubyのTDD(テスト駆動開発)フレームワークの一つです。 TDDを行うのに便利な機能がいろいろあるのですが、特にautotestが気に入っています。

autotestをRAILS_ROOTで起動しておくと、編集したファイルに関係があるテストだけを自動的に実行して、結果を表示してくれます。

以前紹介した、テスト結果の色付けをしてくれる「RedGreen」と併用すると、さらに気分良くTDDを行う事ができます。 どうしてもテストコードを書くのが面倒、という方にも是非お勧めしたい一品です。

インストールもGemからできるので簡単です。

# gem install ZenTest
あとは、RAILS_ROOTに.autotestファイルを作って(空っぽで構いません)
$ autotest
とやればOKです。コード編集用と テスト結果表示用にTerminalを二つ並べておくと見やすいです。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/96

posted by Png genki on Fri 8 Sep 2006 at 02:39

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/95

Model同士の関係をグラフで表示するプラグイン」に、かずひこさんのコントリビューションをマージしました。

新たに、モデル同士の関係図を出力する rake タスクが加わりました。以下のようにして使用します。

$ rake model_graph [FORMAT=jpg] 
FORMATの指定は省略可能です。

プラグインリポジトリはこちらになります。ご自由にご利用ください。

http://svn.labs.drecom.jp/rails/plugins/trunk/model_graph/
バージョン番号を振っていなかったので、もともとのバージョンを0.1として、今回のリリースはバージョン0.2という事にしておきます。

かずひこさん、どうもありがとうございますー。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/95

posted by Png genki on Mon 4 Sep 2006 at 22:52

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/94

度々忘れがちなので備忘録。

ActiveRecordのhas_manyアソシエーションなどを使うと、コレクションに対するアクセサが追加されます。

class Group < ActiveRecord::Base
  has_many :members
end
このとき、コレクションに対して以下のようにARオブジェクトを追加すると、
group.members << Member.new(params[:member])
group.new_record?が真の場合はMemberはそのままコレクションに追加され、DBは変化しませんが、group.new_record?が偽の場合は、Memberは直ちにsaveされ、DBに格納されます。

group.new_record?が偽の場合にDBを変更せずにMemberをコレクションに追加したい場合は、以下のようにbuildメソッドを利用します。

group.members.build(params[:member])
余談ですが、リソース系のオブジェクトはcreateよりもnewを使う事が多いですね。 Ajaxでちょっとずつリソースを作っていって、完成したところでsaveでDBに格納。 逆にActivity系のオブジェクトは、createで作成と同時にDBに格納する感じです。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/94

posted by Png genki on Mon 4 Sep 2006 at 17:45
Contents
IE7のinnerHTMLに関する仕様変更
screenでバッファ履歴を見る:Ctrl-t [ 
RMagick 
MySQL の order by rand() 
has_one :throughでUnsaved Objectを扱う
エントリーとABD
gemのサブコマンド補完関数
ZenTestのautotestがとても快適
model_graph 0.2 Release!
ActiveRecord: コレクションの挙動
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
KingofSmack: Here also good reads for this mobile applicatio... '14-5
Spencer: You don't have to re-compile it, this version w... '14-4
staiano: Any chance we can get a recompile for 10.9? '14-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ