2007-01-01から1年間の記事一覧

Flashの実行環境をswfの置き場所で切り替える。

どこにswfが置かれているかでenvの値を変えるスクリプト。 String.prototype.startsWith = function(str){ return !this.indexOf(str); } String.prototype.endsWith = function(str){ return this.lastIndexOf(str) == this.length-str.length; } var env =…

Rubyのバージョンを出力する。

--version みたいなフォーマットで。 puts "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]" railsはscript/aboutでバージョンの一覧を見ることができる。 $ ./script/about About your application's envi…

render メソッドは、コントローラとビューで動作が違う。

Ruby on Rails の render メソッドは、コントローラとビューで動作が違う。 ActionController::Base#render ActionView::Base#render の2つは動作が異なる。 *.rhtml やヘルパーから呼ばれるのが、ActionView の render。 ActionView の render は、結果の文…

PATHを減らすとrubyscript2exeが速くなる。

http://www.erikveen.dds.nl/distributingrubyapplications/rails.htmlを参考に、RailsのExe化を試し中。 $ gem install tar2rubyscript $ gem install rubyscript2exe で必要なものは揃う。 rubyscript2exeの実行中に、 Copying files... で止まってみえる…

Continue / Break / Next / Last

Perlnextlast Rubynextbreak C, C++, Java, JavaScript, PHP, Pythoncontinuebreak 覚えかた。 Perlが一番短い。 RubyにはArray#lastがあるからbreak? その他の言語は両方長い。 参考。 http://merd.sourceforge.net/pixel/language-study/syntax-across-la…

アメブロが生むヘイトスピーチ

http://mala.nowa.jp/entry/24af50df17 はてブに全肯定みたいな人がいっぱいいるので気になったんだけど、 結論から言うと、アメブロが適切なステータスコードを出力していれば、どんなRSSリーダーを使っていようとユーザーがアドレスを手動で変更したりする…

ドキュメントルート、ポート番号を指定してWebrickを起動する。

サンプルそのままだし大した話じゃないんだけど。 $ webrick . 8080みたいにして起動。カレントディレクトリがドキュメントルートになる。開発環境で手軽にウェブサーバ立ち上げられるとすごく便利です。 #! /usr/bin/env ruby require 'webrick' (document_…

作業ディレクトリが壊れる。

http://www.nabble.com/Error-during-clean-up-t2454879.html ここに書いてあるのと全く同じ症状。 $ svn update svn: Working copy '.' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)で、cleanupしようとすると、 …

HTTPリクエストヘッダをダンプ

p request.envrequestのクラスはActionController::CgiRequest。ActionController::AbstractRequestを継承。 actionpack-1.13.3/lib/action_controller/cgi_process.rb actionpack-1.13.3/lib/action_controller/request.rb

Poundじゃダメかもしれない。

Apacheが1.xでmod_proxy_balancerが使えないので、Poundを入れてみた。とりあえず Apache mod_proxy → Pound → mongrel_clusterみたいな感じで、mod_proxy_balancerの代替にしてみようと思った。けど、X-FORWARDED-FORが元のアドレスを保持してくれない。カ…

Unicodeのハイフンっぽい文字いろいろ

全角ハイフンを半角に変換する処理ではまったので。同じに見える字形で違うコードを指してた。 #!/usr/bin/ruby # 'HYPHEN-MINUS' (U+002D) # http://www.fileformat.info/info/unicode/char/002d/index.htm puts "\x2D" # 'MINUS SIGN' (U+2212) # http://w…

Hoe の install_gem が cygwin で動かない。

sudoを使おうとするため。Hoeのバージョンは1.3.0。./gems/hoe-1.3.0/lib/hoe.rb を直接編集して修正。定数CYGWINを追加して、 WINDOZE = /win32/ =~ RUBY_PLATFORM unless defined? WINDOZE CYGWIN = /cygwin/ =~ RUBY_PLATFORM unless defined? CYGWIN WIN…

newgem + rake package で "stopping only thread" というエラーが出て悩んだ。

newgem で作ったソースで rake package を実行すると、 rake aborted! stopping only thread note: use sleep to stop forever (See full trace by running task with --trace)というエラーが出るようになってしまって悩んだ。Manifestファイルの pkg/* の行…

SQLの条件を組み立てるRailsプラグイン Condition Builder 1.1

RailsでSQLの条件を扱う、Condition Builderプラグインが便利です。 最新版(1.1) http://blog.inquirylabs.com/2007/06/28/condition-builder-11/ 説明 http://blog.inquirylabs.com/2007/01/04/condition-builder-10-released/ 以前の記事 http://blog.inqu…

RailsのビューをJavaScript形式でレンダリングする。

<script type="text/javascript" src="/include.js"></script> ↓ document.write('<p>foobar<\/p>');のようにJavaScriptで外部HTMLをインクルードしたい場合。 document.writeをRailsで出力するメソッド。 def render_to_js(opts) str = render_to_string opts str = str.gsub(/[\r\n]/," ") str = str.gsub(/\\/,"\\\\") s</p>…

IEはinnerHTMLでselectにoptionを足せない。バグ。

確か前にもひっかかったのでメモ。DOMで足すのめんどくさい。 http://completemirage.blog55.fc2.com/blog-entry-45.html http://snowland.net/nucleus/item/742 http://muffinresearch.co.uk/archives/2006/07/19/bug-when-creating-select-options-using-i…

ActiveRecordのフォームの雛形を手っ取り早く作成する。

<%= form("record_name") %> で@record_nameのフォームを簡単に生成できるというのを知った。 http://api.rubyonrails.org/classes/ActionView/Helpers/ActiveRecordHelper.html でも細かい編集もしたかったので、以下のようにしてみた。 <%= form("record_n…

created_on より created_at を使う。

テーブルにcreated_atというカラムを作っておくと、ActiveRecordが自動的にデータを作成した日時を記録してくれる。Magic Field Name。似たようなのに、以下の4種類がある。 created_at …… 作成日時 created_on …… 作成日 updated_at …… 更新日時 updated_on…

ActiveRecordのfind(id)はnilを返さない。

f = Foo.find(id) return nil if f.nil? みたいなコードを書いてしまいそうになる。これは間違い。find(id)で見つからない場合、例外(ActiveRecord::RecordNotFound)が発生する。正しくは、 f = Foo.find_by_id(id) return nil if f.nil?

DateTimeにタイムゾーンを設定する。

>> n = DateTime.new(0) => #<DateTime: 3442115/2,0,2299161> >> n.to_s => "0000-01-01T00:00:00Z" >> n = n.new_offset(Rational(9,24)) # ←コレ => #<DateTime: 3442115/2,3/8,2299161> >> n.to_s => "0000-01-01T09:00:00+0900"</datetime:></datetime:>

MediaWikiをWindowsに入れる場合の制限について。

Linux環境で、MediaWikiを短いURLで運用するには、 http://www.mediawiki.org/wiki/Manual:Short_URL のAlias設定 http://meta.wikimedia.org/wiki/Using_a_very_short_URL のBの設定 を参考に、 Alias /wiki /path/to/wikidir <Directory /path/to/wikidir> Options FollowSymLinks Orde</directory>…

SquidのCache Managerの出力を切り出して監視

# watch -n5 '/usr/sbin/squidclient -h localhost -p 80 mgr:info | perl -nle "print if /^Cache/ .. /unlinkd/"'

開発用メールサーバでBCCが受け取れなくて悩む

Jamesで作った開発用メールサーバで、BCCが受け取れなくて悩みました。原因は、受信した全てのメールを1つのアドレスにフォワードしているため、RCPTで複数のアドレスが指定されても1通にまとめられてしまうんじゃないかなと思います(たぶん)。 最初RailsのA…

rubyを1.8.6に上げるとXPathが正しく動作しなくなる?

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/30721 これと同じ問題で悩んでいます。バグじゃないかなー。attribute::* で全ての属性が取得できるのに、attribute::class みたいに属性の名前を指定すると何も返ってこなくなるみたいでした。…

Javaでテンポラリーファイルを使う。

File.createTempFile(...) Google Code Search: File.createTempFile http://www.exampledepot.com/egs/java.io/CreateTempFile.html このメソッドの呼び出し以前に、このメソッドが返すファイルは存在しない。(上書きしない) 現在のVM上では、同じパスを二…

JSTLのc:foreachは、Stringをコンマで分割できる。

Iterableを実装したクラスをc:foreachのitemsに指定したらエラーになった。Iterableでは繰り返せないらしい。なんで?気になったので、itemsに何を指定できるのか調べた。JSTL1.0仕様(jstl-1_0-fr-spec.pdf) p.66に何を指定できるのか書いてある。 配列 java…

Date#before / Date#after の順序を間違えて考えていた。

(1日).before(2日) → true (2日).after(1日) → true A.before(B) は、「AはBより前」。 A.after(B) は、「AはBより後」。

SimileのTimelineが、タイムゾーンが正の場合に正しく動作しない。

http://simile.mit.edu/timeline/ 柔軟にカスタマイズできて、とてもいいアプリケーションだと思うのだけれど、今のところJSTでちゃんと動かないみたい。TimeZoneを+9に設定すると、たとえば月のラベルに12月が2回表示されたりする。 以下の手順で確認した。…

HTMLエスケープして改行をbrに変換

application_helper.rbに追加する用。 def hbr(str) str = html_escape(str) str.gsub(/\r\n|\r|\n/, "<br />") end # <%=hbr textarea_value %>

3/24-4/8

ここ3週間は、ずっとB-PUMPに行っていた。土日のみ。なかなか出来なかった紺四角(6級)が登れて、タイタニックの6級が全部終わった。でも紺四角はまだ1回しか登れてない。引き続き練習。ジム左側のオレンジ(7級)も全て完了。換気口の横からスタートするやつが…