2008-05-01から1ヶ月間の記事一覧

3ヶ月連続稼動

ただいま、122日連続稼働中〜 3ヶ月間もの間ずーっと電源断することなく動き続けられるGNU/Linuxの安定度はすばらしいものがある。ひょっとすると半年とか1年間稼動するかもしれない…。 そこまでいくと、カーネルのバージョンアップをしたほうがいいのかな?…

そこでerubisですよ

2008-05-28 ERB で引数の hash を展開して欲しい - #生存戦略 、それは - subtech puts ERB.new('<%= example %>').result_hash(:example => 'foo') ローカル変数とインスタンス変数の違いはあれど、erubisならばすでに実装されている。 Erubis::FastEruby.n…

メソッド名と同じローカル変数がある場合はローカル変数が優先される

2008-05-28 require 'erb' Foo = Struct.new(:foo, :bar) foo = Foo.new('foo', 'bar') ERB.new('<%= foo %> and <%= bar %>').result(foo.instance_eval{binding}) # => "#<struct Foo foo=\"foo\", bar=\"bar\"> and bar" これはfooがすでにローカル変数として宣言されているからそっちが優先さ</struct>…

Rubyで「require 'http://〜'」できるライブラリってあったよな

なんだったか…忘れてしもうた。ちなみにEmacs Lispにはrequire-or-install.elがある。Rubyのrequireにディレクトリ名が必要な理由 - http://rubikitch.com/に移転しました←更新

Rubyのコンストラクタについて

コンストラクタ - RubyBeginner (ルビギナー)の世にも奇妙な開発 initializeはRubyの仕組みでNewというエイリアスコールができるようになっているようです。 エイリアスではない。Class#newがそう定義しているだけ。Rubyはクラスそのものがオブジェクト…つ…

ねんがんのObject#instance_execをてにいれたぞ! 〜Object#instance_evalに引数が渡せるようになった〜

Object#instance_exec欲しいなあ - http://rubikitch.com/に移転しましたinstance_execキターーーーーー(゜∀゜)ーーーーーー!!たった今、Ruby 1.8.7-preview4がリリースされた。 念願叶ってやっとObject#instance_execがbackportされたのだ!つまり、Rub…

Rubyのrequireにディレクトリ名が必要な理由

Rubyのrequireのパス - imHo Cだと、ソースがどこにあっても #include "hoge.h" とやればそのファイル自身のパスも含めて探してくれるので便利なんだけどRubyの場合含めて くれないので、あるライブラリ的なソースから別のライブラリを参照するときにその置…

Ruby 1.9でもsendでプライベートメソッドを呼ぶことができる

privateメソッドをレシーバを指定して呼ぶ方法 - LukeSilvia’s diary テスト等ではsendを使うのがお手軽でよさそうです。ちなみに、1.9では、sendメソッドでも privateメソッドにはアクセスすることはできず、代わりに「__send__」メソッドを使います。 んに…

配列の先頭要素が「0番目」であることは気持ち悪いか…「N番目」という言葉を考察してみる

JavascriptやPHPの配列や関数などで 配列の最初の要素がary[0]に… - 人力検索はてなC言語、Ruby、Lispなど多くの言語では配列は0起点である。つまり、先頭の要素のインデックスは0である。 なぜそうなっているか‥それは実装上の都合であったり歴史的理由だ…

見やすさか…そうなるとxmpfilterの出番なんだが…

http://d.hatena.ne.jp/piyo2-moko/20080523#1211549660 01234 を、 0,1,2,3,4 て、できると、見やすいけど、 「print(i, ",")」としてみるとできる。最後に「,」がつくけどそれは愛嬌でw うーん… xmpfilter(←クリック)が楽に使えればいいのだが、素で使…

WEBrickにおけるlocationヘッダの挙動がおかしい

srv = WEBrick::HTTPServer.new(:DocumentRoot => '/home/rubikitch/test_html/', :BindAddress => '127.0.0.1', :Port => 5467) srv.start こんな感じでWEBrickのサーバーを立てているのだが、↓のCGIスクリプトの挙動がおかしい。 #!/usr/local/bin/ruby pr…

腐ったマスコミが自殺を誘発している

なんでも今は自殺の方法をネット検索で調べる時代だそうな。で、自殺防止の運動として、自殺の方法をキーワードにして検索したら、自殺防止サイトへたどりつくようにサーチエンジンに細工しているらしい。ってか違うだろ!マスゴミが「○○を使った自殺が相次…

はてブ重い…

いつも思うんだけどはてなブックマークが重すぎる。5秒待たされるなんてザラなんだけど。サイトの批評を見るためにはてブコメントをよく見るんだけど、これじゃあイライラする。はてなダイアリーもよく重くなる。だから開いてる間に他のサイトよく見てる。ま…

rcovでカバーされてないコードを出力する

rcovを使ってて、いちいちHTMLを見ないといけないのが面倒と思ってる人は、是非とも「--gcc」オプションを使ってみよう。 いちいちHTML見るのめんどくせえと思ってずっと前に俺が追加したオプションだが、あまり知られてないようだ。 # a.rb def foo(x) if x…

Ruby初心者〜初中級者が読むべきコードについて

Rubyの初心者にたいして「これは読むべき」だと思うコードを教え… - 人力検索はてな今北産業ではないが超要約してみる。Ruby初心者はまず文法や基本的なクラスを習得せよ。初級者ならばmailread.rbなどの簡単なライブラリを読んでみよう。中級くらいからはWE…

putsで改行

http://d.hatena.ne.jp/piyo2-moko/20080520#1211285631 12345678910 13579 14710 2345678910 345678910 48 こんなふうにしたかった。 こんなふうに引数なしの「puts」で改行されるから試してごらん。 a=1 # 12345678910 while a <= 10 print(a) a=a+1 end p…

Emacs23の日本語の扱いは不完全らしい

日本語を含むinfoが文字化け - とりあえず暇だったし何となくはじめたブログemacsのset-buffer-file-coding-systemで文字コードを変換できな… - 人力検索はてな←ここが参考になるだろう。

人力検索はてなの質問を答えてみる

これから得意分野の質問にどんどん答えていこうと思う。RSSで人力検索はてなの質問を見てみることにした。誰かの質問が自分の疑問だったりすることもあるので勉強になる。「いつもブログ拝見させて頂いております!」というレスは嬉しいものがある。それにし…

「Impress Japan: まるごとRuby! Vol.1」を執筆しました

インプレスブックス - 本、雑誌と関連Webサービス「Rubyビギナーに送るファーストステップガイド」と、「試行錯誤ツール、テスト/デバッグツールを使いこなす」を書きました。 前者はRuby初心者の道しるべとなればと願って書きました。後者はxmpfilterをは…

Mochaのstub_everythingは強力

Jay Fields' Thoughts: Testing: Mocha's stub_everything methodstub_everythingの強力さについて。stub_everythingメソッドは、どんなメソッドを呼び出してもnilを返すオブジェクトを生成する。なんていうか、幽霊…みたいな、透明人間みたいなオブジェクト…

プライベートメソッドをパブリックインターフェースを使ってテストする方法

Jay Fields' Thoughts: Using Stubs to Capture Test Essenceたとえばこんなコードがある。 class MessageGateway def process(message_text) response = post(create_request(message_text)) parse_response(response) end private def post(message) # ...…

やはり乗算は可換でないと違和感があるようだ

http://d.hatena.ne.jp/piyo2-moko/20080515#1210858404より #テキストの演算 #エラー×:print num*(name+"!")+"paf@"(左側にテキストが来るように) name="moko" num=3 name*num # => "mokomokomoko" num*name rescue $! # => #<TypeError: String can't be coerced into Fixnum> (簡潔に、なおかつxmpfilt</typeerror:>…

updateカテゴリについて

すでに書いた記事を更新(追記)したときにupdateカテゴリの記事で更新を通知する。古い記事を更新した場合、RSSに反映してほしいんだけど〜>はてなダイアリー

yasnippet.elとskkとの相性問題を回避 - http://rubikitch.com/に移転しました

更新

Ruby 1.8.7のArray#nitemsはブロックを受け付けなくなった

Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - http://rubikitch.com/に移転しましたテストケースを更新。Array#nitemsはブロックを受け付けていた。しかし、Array#countとかぶるのでブロックつきnitemsは削除された。ブロックなしのArray#nitems…

Enumerable#find_indexとArray#indexってかぶってるよね

機能がもろかぶっとる。統一しようぜとruby-devに提案してみた。 a = %w[a b C D e] a.index {|x| x =~ /^[A-Z]/ } # => 2 a.find_index {|x| x =~ /^[A-Z]/ } # => 2 a.index {|x| x =~ /^z/ } # => nil a.find_index {|x| x =~ /^x/ } # => nil (2..5).to_…

100日経過

uptime3桁到達。104日とちょっと。 追記 記憶力は十代のころは自信があったのだが、今はもう死んでる。当然、uptimeコマンドで算出している。 もはや無きに等しい記憶力はいろんなツールを活用することで補っているのが現状。

Date#inspectがわかりにくいの、どーにかならんのか

Date#inspectがわけわかな文字列になるんだけど、どーにかならんの? inspectは人間が読んでわかりやすい文字列にする主旨なんだが、これじゃあイミフなんだけど。 to_sのほうがまだわかりやすい。 Date#inspectは "#" とかにすべきだと思う。 require 'date…

うーん

Emacsを無料ソフト呼ばわりは失礼 - http://rubikitch.com/に移転しましたhttp://digimaga.net/200805/best-text-editors.htmlでのEmacs無料ソフト呼ばわりについて言及しているはてブがひとつしかないというのは正直悲しい。多くの人にとって「フリーソフト…

Ruby 1.8.7変更リストへの追記

Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - http://rubikitch.com/に移転しましたUnboundMethod#name, UnboundMethod#owner, Dir#each, Dir.foreach, ObjectSpace.each_object, Regexp#unionについて追記しといた。