トップ 最新 追記

活動日誌


2006-06-07

[Ruby]驚き最少の原則

http://www.rubyist.net/~matz/20060601.html#p02

「驚き最少の原則」という言葉は、まつもとさんが言い出したものでもなく、 またまつもとさんはもう既に使っていない言葉だとは知らなかった。 確かに、Matzにっきを「驚き最少」で検索してみても、このエントリしか出てこない。

「驚き最少の原則」と聞いてまず頭に浮かぶのは、 C++ と LISP と Ruby のストレス度合いのグラフが出てくるスライド。

今調べてみたところ、2002 年のスライドでは「『脳力』消費」のグラフとして出てきていた。 http://www.rubyist.net/~matz/slides/of-kansai2002/index.html

で、このスライドで「驚き最少の原則」も出てくる。 http://www.rubyist.net/~matz/slides/of-kansai2002/mgp00036.html

このスライドによって、自分の中では「驚き最少の原則」とこのグラフが結びついた形で 記憶されていた。 (このエントリを書くまで、グラフの縦軸は「驚き度」だと思い込んでいた)

その後、まつもとさんが「驚き最少の原則」を使わなくなったあとも、このグラフはスライドに出てくる。 例えば 2005 年のスライド。 http://www.rubyist.net/~matz/slides/tsukuba-seminar1/

よって、自分の中では「Ruby = 驚き最少」という認識を持ち続けていたのであった。

まつもとさん曰く、ruby-talk などでは打ち消していたとのことだったが、 ruby-talk は読んでいないので知らなかった。

[Ruby]assert_sorted

Ruby の Array/Enumerable にも Test::Unit にも Rails にも、 配列が整列済みであるかどうかを調べるメソッド/アサーションはないようです。

標準であってよさそうな気はするのですが……

module Test::Unit::Assertions
  def assert_sorted(object, message=nil)
    first = true
    prev = nil
    sorted = true
    object.each do |e|
      if first
        first = false
      else
        if (block_given? ? !yield(prev, e) : (prev <=> e) != -1)
          sorted = false
          break
        end
      end
      prev = e
    end

    full_message = build_message(message, "<?> is not sorted.", object)
    assert_block(full_message){ sorted }
  end
end

書いてみましたが、もうちょっとうまい書き方がありそうな気はします。


2006-06-10

りんかい線一日乗車券販売

5月13日(土曜日)から7月2日(日曜日)までの土休日に、りんかい線内乗り降り自由な1日乗車券を発売します。値段は大人500円、小人250円。

http://www.twr.co.jp/info/2006/thanks_3rd.html

これはありがたい


2006-06-12

日本Rubyカンファレンス2006

当日スタッフとして、9日(前日準備)・10日・11日と参加しました。

何とか無事イベントを終了させることができ、微力ながらも貢献できたかなと 思っています。

全ての参加者の皆様、本当にありがとうございました。

本日のツッコミ(全3件) [ツッコミを入れる]

_ kitaj [ぬぉぉぉぉ,yanagitaさんがここの人だって認識してませんでしたよっ! 大変失礼しました. おつかれさまでした.]

_ かくたに [大活躍だったと思います。]

_ yanagi [> kitajさん いえいえ、この日記ページには名前が出てきてませんでしたから :-) とりあえず出すようにしてみま..]


2006-06-15

[Ruby]next の引数

メソッドの途中で値を返すには return を使います。

def f
  return 1
  2
end

f # => 1

では、ブロックの途中で値を返すにはどうするのか?

# [5, 5, 5] にしたい
# map 派
[1, 2, 3].map{ |e| ???? 5; e}

こういうときは next に引数を渡すのだというのを、今日初めて知りました。

irb(main):008:0> [1, 2, 3].map{ |e| next 5; e }
=> [5, 5, 5]

Rubyリファレンスマニュアル - 制御構造

ブロックの途中で yield の呼び出し元に値を返したいと思った経験があまりなかったので、 このようなケースを考えたことがありませんでした。 ちょっとショック。


2006-06-23

[Ruby]String と Array に共通して定義されているメソッド

継承元のメソッドは含まない

irb(main):005:0> pp (String.new.public_methods(false) & Array.new.public_methods(false)).sort
["*",
 "+",
 "<<",
 "<=>",
 "==",
 "[]",
 "[]=",
 "concat",
 "delete",
 "each",
 "empty?",
 "eql?",
 "hash",
 "include?",
 "index",
 "insert",
 "inspect",
 "length",
 "replace",
 "reverse",
 "reverse!",
 "rindex",
 "size",
 "slice",
 "slice!",
 "to_s"]
=> nil

2006-06-24

CRT の使用時間

http://pc8.2ch.net/test/read.cgi/hard/1148476646/32n

自宅の T561 は 22067 時間だった。


2006-06-26

LL Ring チケット購入

昼休みにローソン店頭で問題なく買えた。


2006-06-29

Rubyist Magazine 日本 Ruby カンファレンス 2006 特別号

るびまの「日本 Ruby カンファレンス 2006 特別号」が出ました。 http://jp.rubyist.net/magazine/?RubyKaigi2006

logger と編集のみなさんおつかれさまでした。 ありがとうございます。


2005|02|03|04|05|06|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|10|
2008|04|10|
2009|10|
2010|05|08|
2012|01|02|03|
2014|01|
トップ 最新