SlideShare una empresa de Scribd logo
1 de 89
Descargar para leer sin conexión
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. Обекти и класове

Más contenido relacionado

La actualidad más candente

La actualidad más candente (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
 

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

4. Метапрограмиране
4. Метапрограмиране4. Метапрограмиране
4. Метапрограмиране
Stefan Kanev
 
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
devsumi2009
 
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.2012
BẢO Hí
 
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
tapanma
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
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étiques
Achraf Ourti
 
事件模型探究
事件模型探究事件模型探究
事件模型探究
ematrix
 

Similar a 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入門
 
事件模型探究
事件模型探究事件模型探究
事件模型探究
 

Más de Stefan Kanev

Behavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и CucumberBehavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и Cucumber
Stefan Kanev
 
5. HTTP и приятели
5. HTTP и приятели5. HTTP и приятели
5. HTTP и приятели
Stefan Kanev
 
1. Въведение в Ruby
1. Въведение в Ruby1. Въведение в Ruby
1. Въведение в Ruby
Stefan Kanev
 

Más de 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
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

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