SlideShare ist ein Scribd-Unternehmen logo
1 von 89
Downloaden Sie, um offline zu lesen
3. Обекти и класове



stefan = Lecturer.new “Стефан Кънев”
nikolay = Lecturer.new “Николай Бачийски”
Lecture.new ‘15‐10‐2008’, stefan, nikolay
15 мин
Хиперкуб
3.   1415926535 8979323846 2643383279 5028841971 6939937510
     5820974944 5923078164 0628620899 8628034825 3421170679
     8214808651 3282306647 0938446095 5058223172 5359408128
     4811174502 8410270193 8521105559 6446229489 5493038196
     4428810975 6659334461 2847564823 3786783165 2712019091
     4564856692 3460348610 4543266482 1339360726 0249141273
     7245870066 0631558817 4881520920 9628292540 9171536436
     7892590360 0113305305 4882046652 1384146951 9415116094
     3305727036 5759591953 0921861173 8193261179 3105118548
     0744623799 6274956735 1885752724 8912279381 8301194912
     9833673362 4406566430 8602139494 6395224737 1907021798
     6094370277 0539217176 2931767523 8467481846 7669405132
     0005681271 4526356082 7785771342 7577896091 7363717872
     1468440901 2249534301 4654958537 1050792279 6892589235
     4201995611 2129021960 8640344181 5981362977 4771309960
     5187072113 4999999837 2978049951 0597317328 1609631859
     5024459455 3469083026 4252230825 3344685035 2619311881
Обекти и класове
class Vector
end

direction = Vector.new
class Vector
  def initialize(x, y, z)
    @x, @y, @z = x, y, z
  end

 def length
   (@x * @x + @y * @y + @z * @z) ** 0.5
 end

  def to_s() “(#@x, #@y, #@z)” end
end

orientation = Vector.new 1.0, 0.0, 1.0
puts orientation.length
@name, @age
class Vector
  # ...
  def x() @x end
  def y() @y end
  def z() @z end
end

v = Vector.new 1.0, 0.0, 1.0
puts v.x + v.y + v.z()
name=
class Thing
  def name=(value)
    puts “Name is set to #{value}”
  end
end

>> bacon = Thing.new
>> bacon.name = “Bacon”
Name is set to Bacon
>> bacon.name=(“Chunky bacon”)
Name is set to Chunky bacon
dir = Vector.new 1.0, 0.0, 1.0
dir.z = 5.0
dir.x, dir.y = 1.0, ‐1.0
class Vector
  # ...

 def x=(value) 
   @x = value
 end

 def y=(value) 
   @y = value
 end

  def z=(value) 
    @z = value
  end
end
class Vector
  attr_accessor :x, :y, :z

  def initialize(x, y, z)
    @x, @y, @z = x, y, z
  end
end
attr_accessor
attr_accessor :name



def name(value)
  @name
end

def name=(value)
  @name = value
end
attr_reader
attr_writer
Meyer’s Uniform
Access Principle
class Person
  attr_reader :first, :last

  def initialize(first, last)
    @first, @last = first, last
  end

end
class Person
  attr_reader :first, :last

  def initialize(first, last)
    @first, @last = first, last
  end

  def business_card
    “#@first #@last”
  end

end
class Person
  attr_reader :first, :last

 def initialize(first, last)
   @first, @last = first, last
 end

 def business_card
   “#@first #@last”
 end

  def solve_problem(problem)
    until problem.solved? or self.bored?
      stare_at problem
      try_something_random
    end
  end
end
class Programmer < Person
end
class Programmer < Person

  def solve_problem(problem)
    thoughts = self.think_about problem
    solution = self.invent_solution thoughts
    self.write_tests_about solution
    self.implement solution
    self.party!
  end

end
class SmartGuy < Person

  def business_card
    super() + “, Ph.D.”
  end

end
Няма множествено
  наследяване
Статични методи
Методи на класа
Променливи на класа
class Person
  def initialize(first, last)
    @first, @last = first, last
    @@count ||= 0
    @@count += 1
  end
end
@@count ||= 12
@@count = @@count || 12
class Person
  def initialize(first, last)
    @first, @last = first, last
    @@count ||= 0
    @@count += 1
  end

  def Person.count
    @@count
  end
end

>> Person.new “Thelonious”, “Monk”
>> Person.new “Glenn”, “Gould”
>> puts Person.count
2
class Person
  def self.count
    @@count
  end
end
Оператори
class Vector
  attr_accessor :x, :y, :z

 def initialize(x, y, z)
   @x, @y, @z = x, y, z
 end

 def length
   (@x * @x + @y * @y + @z * @z) ** 0.5
 end

  def to_s() “(#@x, #@y, #@z)” end
end
c = a + b
d = c * 7
class Vector

 def +(other)
   Vector.new self.x + other.x,
       self.y + other.y,
       self.z + other.z
 end

 def *(n)
   Vector.new @x * n, @y * n, @z * n
 end

end
>> a = Vector.new 1.0, 0.0, 0.0
>> b = Vector.new 0.0, 1.0, 0.0
>> puts a + b
(1.0, 1.0, 0.0)
>> puts a + b * 2
(1.0, 2.0, 0.0)
!   ~   @+  @‐ **  *   /   
%   +   ‐   <<  >>  &   |
^   <   <=  >=  >   ==  ===
!=  =~  !~  <=>
&&  ||  ..  ... ?:  =   **=
*=  /=  %=  +=  ‐=  >>= <<=
&&= &=  ||= |=  ^=  and not
or
3. Обекти и класове



stefan = Lecturer.new “Стефан Кънев”
nikolay = Lecturer.new “Николай Бачийски”
Lecture.new ‘15‐10‐2008’, stefan, nikolay
ДИС‐2
0 = 1
1
∫x dx
1        1           1
∫x dx =
          x
            x −   ∫ x
                   xd
1        1             1
∫x dx =
          x
            x −     ∫ x
                     xd     =

             1
= 1 − ∫ x(− 2 )dx
            x
1        1           1
∫x dx =
          x
            x − ∫ xd
                      x
                           =

             1           1
= 1 − ∫ x(− 2 )dx = 1 + ∫ dx
            x            x
1        1           1
∫x dx =
          x
            x − ∫ xd
                      x
                           =

             1           1
= 1 − ∫ x(− 2 )dx = 1 + ∫ dx
            x            x
aquarius@arrakis:$ irb
>> puts 0 == 1
false
Fixnum
class Fixnum
  alias broken_equal? ==
end
>> puts 0.broken_equal?(1)
false
>> puts 2.broken_equal?(2)
true
class Fixnum
  alias broken_equal? ==

  def ==(other)
    if (self.equal?(0) and other.equal?(1)) or
         (self.equal?(1) and other.equal?(0))
      true
    else
      self.broken_equal?(other)
    end
  end
end
>> puts 0 == 1
true
>> puts 1 == 1
true
>> puts 2 == 1
false
Александър Макендонски
не е съществувал

Всеки триъгълник
е равностраннен
class Coin
end
class Coin

 def initialize(value)
   @value = value
 end

 def pick_up(person)
   person.enrich self.value
 end

  def put_on_train_rail!
    self.flatten
  end
end
pesho = Coin.new 0.50
pesho = Coin.new 0.50

def pesho.pick_up(person)
  person.get_hopes_high
  person.humiliate
  person.make_sad
end
Хиперкуб
3.   1415926535 8979323846 2643383279 5028841971 6939937510
     5820974944 5923078164 0628620899 8628034825 3421170679
     8214808651 3282306647 0938446095 5058223172 5359408128
     4811174502 8410270193 8521105559 6446229489 5493038196
     4428810975 6659334461 2847564823 3786783165 2712019091
     4564856692 3460348610 4543266482 1339360726 0249141273
     7245870066 0631558817 4881520920 9628292540 9171536436
     7892590360 0113305305 4882046652 1384146951 9415116094
     3305727036 5759591953 0921861173 8193261179 3105118548
     0744623799 6274956735 1885752724 8912279381 8301194912
     9833673362 4406566430 8602139494 6395224737 1907021798
     6094370277 0539217176 2931767523 8467481846 7669405132
     0005681271 4526356082 7785771342 7577896091 7363717872
     1468440901 2249534301 4654958537 1050792279 6892589235
     4201995611 2129021960 8640344181 5981362977 4771309960
     5187072113 4999999837 2978049951 0597317328 1609631859
     5024459455 3469083026 4252230825 3344685035 2619311881
pesho = Coin.new 0.50

def pesho.pick_up(person)
  person.get_hopes_high
  person.humiliate
  person.make_sad
end
method_missing
    send
method_missing(name, *args)
class Thing
  def foo
    puts quot;I pity the foo!quot;
  end

  def method_missing(name, *args)
    puts quot;Called #{name} with #{args.inspect}quot;
  end
end
class Thing
  def foo
    puts quot;I pity the foo!quot;
  end

  def method_missing(name, *args)
    puts quot;Called #{name} with #{args.inspect}quot;
  end
end

>> thing = Thing.new
>> thing.foo
I pity the foo
>> thing.larodi 1, quot;barquot;, []
Called larodi with [1, quot;barquot;, []]
send
send(name, arg0, arg1, …)
>> people = [quot;Monkquot;, quot;Evansquot;, quot;Coltranequot;]
>> puts people.size
3
>> puts people.send(:size)
3
>> people.send :insert, 0, quot;Davis“
>> puts people.size
4
>> people.send :<<, quot;Rollins“
>> puts people.size
5
class Mapper
    def initialize(list)
      @list = list
    end

    def method_missing(name, *args)
      @list.map { |x| x.send(name) }
    end
  end


>> mapper = Mapper.new [quot;Coltranequot;, quot;Evansquot;, quot;Monkquot;]
>> mapper.size
[8, 5, 4]
>> puts mapper.downcase
[quot;coltranequot;, quot;evansquot;, quot;monkquot;]
class Array

  alias old_star *

  def *(other = nil)
    if other.nil?
      Mapper.new self
    else
      self.old_star(other)
    end
  end

end
>> people = [quot;Coltranequot;, quot;Evansquot;, quot;Monkquot;]
>> people.*.size
[8, 5, 4]
>> people.*.downcase
[quot;coltranequot;, quot;evansquot;, quot;monkquot;]
>> people * 2
[quot;Coltranequot;, quot;Evansquot;, quot;Monkquot;, quot;Coltranequot;, 
quot;Evansquot;, quot;Monkquot;]
users.*.email
3. Обекти и класове

Weitere ähnliche Inhalte

Was ist angesagt?

第6回 関数とフロー制御
第6回 関数とフロー制御第6回 関数とフロー制御
第6回 関数とフロー制御Wataru Shito
 
第2回 基本演算,データ型の基礎,ベクトルの操作方法
第2回 基本演算,データ型の基礎,ベクトルの操作方法第2回 基本演算,データ型の基礎,ベクトルの操作方法
第2回 基本演算,データ型の基礎,ベクトルの操作方法Wataru Shito
 
Finding solution set of quadratic inequalities
Finding solution set of quadratic inequalitiesFinding solution set of quadratic inequalities
Finding solution set of quadratic inequalitiesMartinGeraldine
 
第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出し第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出しWataru Shito
 
第3回 データフレームの基本操作 その1
第3回 データフレームの基本操作 その1第3回 データフレームの基本操作 その1
第3回 データフレームの基本操作 その1Wataru Shito
 
第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2Wataru Shito
 
Intermediate algebra 8th edition tobey solutions manual
Intermediate algebra 8th edition tobey solutions manualIntermediate algebra 8th edition tobey solutions manual
Intermediate algebra 8th edition tobey solutions manualdisney0087
 
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)Wataru Shito
 
Other roots grade 9
Other roots grade 9Other roots grade 9
Other roots grade 9AjayQuines
 
Math 8 Lesson 3 - 1st Quarter
Math 8 Lesson 3 - 1st QuarterMath 8 Lesson 3 - 1st Quarter
Math 8 Lesson 3 - 1st Quarteralicelagajino
 
ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-
ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-
ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-ssusere0a682
 
Schede tabelline 1_10
Schede tabelline 1_10Schede tabelline 1_10
Schede tabelline 1_10Denis Ruggeri
 
ضرب وحيدات الحد
ضرب وحيدات الحدضرب وحيدات الحد
ضرب وحيدات الحدmansour1911
 
The Ring programming language version 1.8 book - Part 66 of 202
The Ring programming language version 1.8 book - Part 66 of 202The Ring programming language version 1.8 book - Part 66 of 202
The Ring programming language version 1.8 book - Part 66 of 202Mahmoud Samir Fayed
 
solucionario de purcell 3
solucionario de purcell 3solucionario de purcell 3
solucionario de purcell 3José Encalada
 

Was ist angesagt? (19)

第6回 関数とフロー制御
第6回 関数とフロー制御第6回 関数とフロー制御
第6回 関数とフロー制御
 
第2回 基本演算,データ型の基礎,ベクトルの操作方法
第2回 基本演算,データ型の基礎,ベクトルの操作方法第2回 基本演算,データ型の基礎,ベクトルの操作方法
第2回 基本演算,データ型の基礎,ベクトルの操作方法
 
2
22
2
 
Finding solution set of quadratic inequalities
Finding solution set of quadratic inequalitiesFinding solution set of quadratic inequalities
Finding solution set of quadratic inequalities
 
第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出し第5回 様々なファイル形式の読み込みとデータの書き出し
第5回 様々なファイル形式の読み込みとデータの書き出し
 
第3回 データフレームの基本操作 その1
第3回 データフレームの基本操作 その1第3回 データフレームの基本操作 その1
第3回 データフレームの基本操作 その1
 
第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2
 
Intermediate algebra 8th edition tobey solutions manual
Intermediate algebra 8th edition tobey solutions manualIntermediate algebra 8th edition tobey solutions manual
Intermediate algebra 8th edition tobey solutions manual
 
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)
 
Other roots grade 9
Other roots grade 9Other roots grade 9
Other roots grade 9
 
Math 8 Lesson 3 - 1st Quarter
Math 8 Lesson 3 - 1st QuarterMath 8 Lesson 3 - 1st Quarter
Math 8 Lesson 3 - 1st Quarter
 
ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-
ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-
ゲーム理論NEXT 線形計画問題第8回 -シンプレックス法3-
 
Schede tabelline 1_10
Schede tabelline 1_10Schede tabelline 1_10
Schede tabelline 1_10
 
ضرب وحيدات الحد
ضرب وحيدات الحدضرب وحيدات الحد
ضرب وحيدات الحد
 
Business
BusinessBusiness
Business
 
The Ring programming language version 1.8 book - Part 66 of 202
The Ring programming language version 1.8 book - Part 66 of 202The Ring programming language version 1.8 book - Part 66 of 202
The Ring programming language version 1.8 book - Part 66 of 202
 
Class heights project report
Class heights project reportClass heights project report
Class heights project report
 
solucionario de purcell 3
solucionario de purcell 3solucionario de purcell 3
solucionario de purcell 3
 
Maths T5 W1
Maths T5 W1Maths T5 W1
Maths T5 W1
 

Ähnlich wie 3. Обекти и класове

4. Метапрограмиране
4. Метапрограмиране4. Метапрограмиране
4. МетапрограмиранеStefan Kanev
 
Functional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionAtsushi Nitanda
 
樽家昌也 (日本Rubyの会)
樽家昌也 (日本Rubyの会) 樽家昌也 (日本Rubyの会)
樽家昌也 (日本Rubyの会) toRuby
 
Oceans 2019 tutorial-geophysical-nav_7-updated
Oceans 2019 tutorial-geophysical-nav_7-updatedOceans 2019 tutorial-geophysical-nav_7-updated
Oceans 2019 tutorial-geophysical-nav_7-updatedFrancisco Curado-Teixeira
 
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能devsumi2009
 
Les polynômes formels à une indéterminée à coefficients dans un corps K
Les polynômes formels à une indéterminée à coefficients dans un corps KLes polynômes formels à une indéterminée à coefficients dans un corps K
Les polynômes formels à une indéterminée à coefficients dans un corps KAchraf Ourti
 
Match II (armand)
Match II (armand)Match II (armand)
Match II (armand)Eng. QaSeMy
 
Toan pt.de075.2012
Toan pt.de075.2012Toan pt.de075.2012
Toan pt.de075.2012BẢO Hí
 
2. Функционални Закачки
2. Функционални Закачки2. Функционални Закачки
2. Функционални ЗакачкиStefan Kanev
 
papa pump off grid water pump far away from public utilities - papa ram pump
papa pump   off grid water pump   far away from public utilities - papa ram pumppapa pump   off grid water pump   far away from public utilities - papa ram pump
papa pump off grid water pump far away from public utilities - papa ram pumptapanma
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009gyuque
 
カルマンフィルタ講義資料
カルマンフィルタ講義資料カルマンフィルタ講義資料
カルマンフィルタ講義資料Nobutaka Shimada
 
Shibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼうShibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼうgyuque
 
Lois de kirchhoff, dipôles électrocinétiques
Lois de kirchhoff, dipôles électrocinétiquesLois de kirchhoff, dipôles électrocinétiques
Lois de kirchhoff, dipôles électrocinétiquesAchraf Ourti
 
GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門bose999
 
事件模型探究
事件模型探究事件模型探究
事件模型探究ematrix
 

Ähnlich wie 3. Обекти и класове (20)

機械学習と自動微分
機械学習と自動微分機械学習と自動微分
機械学習と自動微分
 
4. Метапрограмиране
4. Метапрограмиране4. Метапрограмиране
4. Метапрограмиране
 
Functional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network Perception
 
樽家昌也 (日本Rubyの会)
樽家昌也 (日本Rubyの会) 樽家昌也 (日本Rubyの会)
樽家昌也 (日本Rubyの会)
 
Oceans 2019 tutorial-geophysical-nav_7-updated
Oceans 2019 tutorial-geophysical-nav_7-updatedOceans 2019 tutorial-geophysical-nav_7-updated
Oceans 2019 tutorial-geophysical-nav_7-updated
 
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
 
Les polynômes formels à une indéterminée à coefficients dans un corps K
Les polynômes formels à une indéterminée à coefficients dans un corps KLes polynômes formels à une indéterminée à coefficients dans un corps K
Les polynômes formels à une indéterminée à coefficients dans un corps K
 
Match II (armand)
Match II (armand)Match II (armand)
Match II (armand)
 
Gsp53 1
Gsp53 1Gsp53 1
Gsp53 1
 
Toan pt.de075.2012
Toan pt.de075.2012Toan pt.de075.2012
Toan pt.de075.2012
 
2. Функционални Закачки
2. Функционални Закачки2. Функционални Закачки
2. Функционални Закачки
 
papa pump off grid water pump far away from public utilities - papa ram pump
papa pump   off grid water pump   far away from public utilities - papa ram pumppapa pump   off grid water pump   far away from public utilities - papa ram pump
papa pump off grid water pump far away from public utilities - papa ram pump
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
 
dRuby
dRubydRuby
dRuby
 
カルマンフィルタ講義資料
カルマンフィルタ講義資料カルマンフィルタ講義資料
カルマンフィルタ講義資料
 
Shibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼうShibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼう
 
за Ruby
за Rubyза Ruby
за Ruby
 
Lois de kirchhoff, dipôles électrocinétiques
Lois de kirchhoff, dipôles électrocinétiquesLois de kirchhoff, dipôles électrocinétiques
Lois de kirchhoff, dipôles électrocinétiques
 
GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門
 
事件模型探究
事件模型探究事件模型探究
事件模型探究
 

Mehr von Stefan Kanev

Как блогът ми ме направи по-добър професионалист
Как блогът ми ме направи по-добър професионалистКак блогът ми ме направи по-добър професионалист
Как блогът ми ме направи по-добър професионалистStefan Kanev
 
Щастливият програмист 2.0
Щастливият програмист 2.0Щастливият програмист 2.0
Щастливият програмист 2.0Stefan Kanev
 
Пак ли този Rails?
Пак ли този Rails?Пак ли този Rails?
Пак ли този Rails?Stefan Kanev
 
The Happy Programmer
The Happy ProgrammerThe Happy Programmer
The Happy ProgrammerStefan Kanev
 
ФМИ Python: Agile & Friends
ФМИ Python: Agile & FriendsФМИ Python: Agile & Friends
ФМИ Python: Agile & FriendsStefan Kanev
 
Behavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и CucumberBehavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и CucumberStefan Kanev
 
Test-Driven Development + Refactoring
Test-Driven Development + RefactoringTest-Driven Development + Refactoring
Test-Driven Development + RefactoringStefan Kanev
 
Защо Ruby on Rails
Защо Ruby on RailsЗащо Ruby on Rails
Защо Ruby on RailsStefan Kanev
 
5. HTTP и приятели
5. HTTP и приятели5. HTTP и приятели
5. HTTP и приятелиStefan Kanev
 
1. Въведение в Ruby
1. Въведение в Ruby1. Въведение в Ruby
1. Въведение в RubyStefan Kanev
 
0. За курса, Ruby и Rails
0. За курса, Ruby и Rails0. За курса, Ruby и Rails
0. За курса, Ruby и RailsStefan Kanev
 

Mehr von Stefan Kanev (15)

Ruby 0 2012
Ruby 0 2012Ruby 0 2012
Ruby 0 2012
 
Ruby 0
Ruby 0Ruby 0
Ruby 0
 
Debugging Habits
Debugging HabitsDebugging Habits
Debugging Habits
 
Защо MongoDB?
Защо MongoDB?Защо MongoDB?
Защо MongoDB?
 
Как блогът ми ме направи по-добър професионалист
Как блогът ми ме направи по-добър професионалистКак блогът ми ме направи по-добър професионалист
Как блогът ми ме направи по-добър професионалист
 
Щастливият програмист 2.0
Щастливият програмист 2.0Щастливият програмист 2.0
Щастливият програмист 2.0
 
Пак ли този Rails?
Пак ли този Rails?Пак ли този Rails?
Пак ли този Rails?
 
The Happy Programmer
The Happy ProgrammerThe Happy Programmer
The Happy Programmer
 
ФМИ Python: Agile & Friends
ФМИ Python: Agile & FriendsФМИ Python: Agile & Friends
ФМИ Python: Agile & Friends
 
Behavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и CucumberBehavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и Cucumber
 
Test-Driven Development + Refactoring
Test-Driven Development + RefactoringTest-Driven Development + Refactoring
Test-Driven Development + Refactoring
 
Защо Ruby on Rails
Защо Ruby on RailsЗащо Ruby on Rails
Защо Ruby on Rails
 
5. HTTP и приятели
5. HTTP и приятели5. HTTP и приятели
5. HTTP и приятели
 
1. Въведение в Ruby
1. Въведение в Ruby1. Въведение в Ruby
1. Въведение в Ruby
 
0. За курса, Ruby и Rails
0. За курса, Ruby и Rails0. За курса, Ruby и Rails
0. За курса, Ruby и Rails
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

3. Обекти и класове