Ruby 1.9.3
全然追いつけない。
- http://www.ruby-lang.org/ja/news/2011/10/31/ruby-1-9-3-p0-is-released/
- Random.rand(1..10)
- "cde".prepend('ab')
- "あいう".byteslice(3, 3)
- io/console
- test/unit: テストの並列実行をサポートします。
IE8+prototype.js+scriptaculous.js+jquery.js=エラー
prototype.js→scriptaculous.js→jquery.jsという順番で読み込む場合、IE8(8以外のIEでは試してない)でエラーが発生する問題。
- prototype.js: 1.6.1
- scriptaculous.js: 1.8.2
- jquery.js: 1.4.4
エラーが発生する箇所は、prototype.jsのgetElementsByClassNameの中。$(element)を実行する箇所で、$がjQueryになってしまっている事が問題。
jquery.jsの中で、window.$にjQueryをセットした後にdiv.getElementsByClassNameを実行する箇所が有る。グローバルの$がjQueryに置き換わっているため、prototype.jsで定義されたgetElementsByClassNameの中でjQueryが使われてしまう。jQuery.noConflictで_$から戻そうにも、jquery.jsのロード中なので外からは手が出せない(自分が知らないだけで方法があるだろうか)。
困った。
HerokuのOne-Off processについて
Heroku Scheduler Add-onの記事を読んで、One-Off taskやらOne-Off admin processやらを正しく把握できていないことに気がついた。今更ながら。
Heroku Scheduler Add-onは、コマンドを毎日決まった時間に実行したり、一定の間隔で実行したりさせられる、Cron Add-onの代替となり得るもの(日/時/10分間隔で選べる)。無料でインストールすることが出来る。
で、ふと、「そういえば、コンソールやCronで使うDynoの使用料金ってどうなってるんだったろうか?」ということが気になり、正しく把握していないことに気がついた次第。
- http://devcenter.heroku.com/articles/oneoff-admin-ps
- http://devcenter.heroku.com/articles/billing-changes
One-off processは、One-off taskを実行するために作られるプロセスで、heroku runなどを実行する際に利用されるDyno。で、料金的には、Dynoとの接続時間で課金されるものと考えればよさそう。上記リンクの後者には、「10:00にheroku run consoleを実行して、10:06にそのセッションを閉じたなら、0.1 dyno-hourと数える」という様なことが書かれている。
特にどうという話ではないけれど、正しく把握してなかったなと思った次第。
Rubyを使ってテキスト中のURL文字列を抽出して加工する方法は?
Railsを使っていてリンクにするだけならauto_linkヘルパを使うのが妥当な選択肢なんでしょうか?
auto_linkはRails 3.1から廃止されてgemに追い出されたとのこと。その理由が安全じゃないという事らしい。
自前で書くにはどうするのが楽なのか、既に最適解があるだろうと思ってググって見たんですが、どれが最適かよく分からず。
おおむね、正規表現で置換するタイプだと思います。正規表現が手書きだったり、URI.extractで処理していたりという違いはあれど。
で、実際にいくつかの文字列でで試してみると、URI.extractで上手くやる方法がよく分からなくなった(部分一致しちゃう事がある)ので、URI.regexpとgsubでごまかしてみました。
URLらしき文字列をリンクに出来ている様に見えますが、XSSに対してどうかという評価はやりきれていません。
ちなみに、Ruby(サーバサイド)でなく、JS(クライアントサイド)で置換する方法もある様ですね(やることはほとんど同じようですけどね)。