Saturday, January 16, 2010

アルゴリズム問題

http://www.itmedia.co.jp/enterprise/articles/0912/05/news002.html

class Board
  attr_accessor :cells
  attr_reader :width, :height
  def initialize(width, height)
    @width, @height = width + 2, height + 2
    @cells = Array.new(@height){ Array.new(@width){0} }
  end

  def place_peace
    2.upto(width-1) do |i|
      2.upto(height-1) do |j|
        cells[i][j] =
          (cells[i-2][j] == 0) && (cells[i][j-2] == 0) ? 1 : 0
      end
    end
  end

  def draw_board
    cells.each_with_index do |line, i|
            next if [0, 1].include?(i)
      line.each_with_index do |cell, j|
                next if [0, 1].include?(j)
                print cell == 1 ? "◎" : "+"
      end
            print "\n"
    end
  end
end


b = Board.new(10, 10)
b.place_peace
b.draw_board

アルゴリズム問題

http://www.itmedia.co.jp/enterprise/articles/0908/01/news001.html

class CircleCountry
  attr_reader :x, :y, :r
  def initialize(x, y, r)
    @x, @y, @r = x, y, r
  end

  def inside?(other)
    (self.x - other.x).abs <= other.r && (self.y - other.y).abs <= other.r
  end
end

def least_borders(circles, start, goal)
  count = 0
  circles.each { |c| count += 1 if (start.inside?(c) ^ goal.inside?(c)) }
  count
end

start = CircleCountry.new(0.8, 0.8, 0)
goal = CircleCountry.new(2, 2, 0)
circles = [CircleCountry.new(1, 1, 0.5),
           CircleCountry.new(2, 2, 0.4),
           CircleCountry.new(0.8, 0.8, 0.3)]

puts least_borders(circles, start, goal)

Tuesday, January 12, 2010

Net::HTTP回りを調べる

require "net/http"
list = []
Net.constants.sort.each do |c|
    next unless /^H/.match c
    sc = Net.const_get(c).ancestors rescue 'Module'
    list << sc.select { |e| /Object|Kernel/ !~ e.to_s }.reverse
end

list.sort_by { |e| e.length }.uniq.each { |e| puts e.join ' < ' }

出力
Net::HTTPExceptions
Net::HTTPHeader
Net::Protocol < Net::HTTP
Net::HTTPHeader < Net::HTTPResponse
Net::HTTPHeader < Net::HTTPGenericRequest
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError
Net::HTTPHeader < Net::HTTPGenericRequest < Net::HTTPRequest
Exception < StandardError < Net::HTTPBadResponse
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPInformation
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPUnknownResponse
Exception < StandardError < Net::HTTPHeaderSyntaxError
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPNotImplemented
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPInternalServerError
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPLengthRequired
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPMethodNotAllowed
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPMovedPermanently
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPFound
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPMultipleChoice
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPNoContent
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPNonAuthoritativeInformation
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPNotAcceptable
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPNotFound
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPGone
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPNotModified
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPOK
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPPartialContent
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPPaymentRequired
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPPreconditionFailed
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPProxyAuthenticationRequired
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPGatewayTimeOut
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPForbidden
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestEntityTooLarge
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestTimeOut
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPUnauthorized
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestURITooLong
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestedRangeNotSatisfiable
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPResetContent
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPVersionNotSupported
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPExpectationFailed
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPUseProxy
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPUnsupportedMediaType
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPSeeOther
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPCreated
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPInformation < Net::HTTPContinue
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPAccepted
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPServiceUnavailable
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPConflict
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPBadRequest
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPBadGateway
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPInformation < Net::HTTPSwitchProtocol
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPTemporaryRedirect
Exception < StandardError < Net::ProtocolError < Net::HTTPExceptions < Net::HTTPError
Exception < StandardError < Net::ProtocolError < Net::ProtoServerError < Net::HTTPExceptions < Net::HTTPServerException
Exception < StandardError < Net::ProtocolError < Net::ProtoRetriableError < Net::HTTPExceptions < Net::HTTPRetriableError
Exception < StandardError < Net::ProtocolError < Net::ProtoFatalError < Net::HTTPExceptions < Net::HTTPFatalError
 

Monday, January 11, 2010

What I should do next

  1. 作るものを作る(工作機械)
  2. 主題を決める(裏テーマとモチーフ)Lostの裏テーマは家族とか絆とか
  3. 標準化・シンプル化(1と同じかも)

Gift of Technology

The gift of technology is possibility -- possibilities in ever increasing mountains of diversity. Like biological life itself (despite its many hourly horrors), and like diversity itself, I find greater possibility to be an unequivocal good.

技術からの贈りものは可能性である。増加しつづける大量の多様性にもとづく可能性である。生物的な生命と同じように(多くの絶え間ない恐怖にかかわらず)、また多様性と同じように、私は、紛れもなく善良なものになる可能性が大いにあると思っている。

Sunday, January 10, 2010

今年の目標その1

次の本を全部読み通すこと
-SICP
-RESTful
-Ruby Magazine
-Thoughtworks Anthology
-Unix/Linux

Saturday, January 09, 2010

12月の電気代がやばい

今年の12月の電気代が14812円
去年の同月の電気代が14491円
しかしKWで見ると去年は563kwなのに対し
今年は667kw
だから実質16,000円越え

新たに購入したパネルヒーター
デロンギに比べて最大ワット数が少なくなっても
使用時間が増えているということ
つまり長時間使っても部屋が暖まらない

とりあえずの対策として
  1. 廊下側の扉を閉じる
  2. エアコンを中心にする
を講じてみる