SlideShare a Scribd company logo
1 of 104
Download to read offline
speaker { [“Stefan”, “Kanev”].join(“ “) }
speaker { “Nikolay” + “ “ + “Bachiyski” }
on_date { @lecture_date || “13‐10‐2008” }




          2. Функционални
                   закачки
speaker { [“Stefan”, “Kanev”].join(“ “) }
speaker { “Nikolay” + “ “ + “Bachiyski” }
on_date { @lecture_date || “13‐10‐2008” }




          2. Функционални
                   закачки
Хиперкуб
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
Domain
Specific
Language
mind.refresh
3.14
1_729


quot;Who is John Galt?quot;


[18, :f, quot;Sofiaquot;]


{:jazz => [quot;Thelonious Monkquot;, quot;Bill Evansquot;],
 :baroque => [quot;J.S. Bachquot;, quot;Henry Purcellquot;],
 :classical => [quot;L.V. Beethovenquot;, quot;W.A. Mozartquot;] }
if hungry?
  eat
else
  sleep until hungry?
end




          work until job.done?
          write_code(:ruby) while me.unhappy?
          eat(food) if hungry?
          write_code unless tired?
функции
функционално
програмиране
приема неща

връща неща
приема неща

връща неща

              Обекти
order, change = use_machine(number, money)
Неща




order, change = use_machine(number, money)




coffee, change = use_machine(42, 1.50)
cup, cash = order(quot;Cappuccinoquot;, 3) do |pref|
  pref.make_short
  pref.add_sugar 2
  pref.add_extra :cream
end
приема неща

връща неща
приема неща
приема инструкции
връща неща
приема неща
приема инструкции
връща неща


              Код
cup, cash = order(quot;Cappuccinoquot;, 3) do |pref|
  pref.make_short
  pref.add_sugar 2
  pref.add_extra :cream
end
>> numbers = [2, 3, 5, 7]

>> numbers.map { |x| x ** 2 }
[4, 9, 25, 49]

>> numbers.select { |x| x > 4 }
[5, 7]
извикване do |аргументи|
  код
end

извикване { |аргументи| код }
File.open(quot;spendingsquot;).each_line do |line|
  next unless well_formed?(line)
  date, category, amount = line.split
  category_sum[category] += amount.to_i
end



points.all? { |x,y| saved.include? [y,x] }
Щипки



                Улей



points.all? { |x,y| saved.include? [y,x] }
     Итератор          Блок / Корутина
Пич, извикай
 корутината
def twice
  yield
  yield
end

twice { puts “Ruby rocks!” }
accumulate
def accum(start, items)
  result, items = start, items.dup
  yield(result, items.pop) until items.empty?
  result
end


numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
puts accum(0, numbers) { |a, b| a + b }
puts accum(1, numbers) { |a, b| a * b }
def with_primes(max)
  2.upto(max) do |n|
    yield n unless (2...n).any? { |c| n % c == 0 }
  end
end

with_primes(10) { |x| puts x }
2.upto(10) do |n|
(2..10)
(2…10)
any?
 all?
students.any? { |s| s.cheated? }
 numbers.all? { |x| x % 2 == 0 }
def with_primes(max)
  2.upto(max) do |n|
    yield n unless (2...n).any? { |c| n % c == 0 }
  end
end

with_primes(10) { |x| puts x }
return
def magic_roots(numbers)
  numbers.map do |number|
    return number ** 0.5 if number < 0
    (‐number) ** 0.5
  end
end

magic_roots([100, ‐25, ‐9, 16])
def
  return
end
next
break
n, found = 1, 0
while true
  n += 1
  next unless (2...n).any? { |a| n % a == 0 }
  found += 1
  puts quot;#{n} squared is #{n * n}quot;
  break if found >= 50
end
lucky = []
users.each do |user|
  next unless user.submitted_homework?
  lucky << user
  break if lucky.size >= 5
end
next(arg)
break(arg)
item = items.first_item
found = until item.nil?
  break item if item.nice? and item.shiny?
  item = item.successor
end
def magic_roots(numbers)
  numbers.map do |number|
    next number ** 0.5 if number < 0
    (‐number) ** 0.5
  end
end

magic_roots([100, ‐25, ‐9, 16])
Щипки



                Улей



points.all? { |x,y| saved.include? [y,x] }
     Итератор          Блок / Корутина
next
 излез от блока в итератора



break
 излез от итератора
lucky = []
users.each do |user|
  next unless user.submitted_homework?
  lucky << user
  break if lucky.size >= 5
end
Enumerable
   Array
   Hash
collect
select
inject
001:0> numbers = [1, 2, 3, 4, 5, 6, 7]
=> [1, 2, 3, 4, 5, 6, 7]
002:0> numbers.collect { |n| n ** 2 }
=> [1, 4, 9, 16, 25, 36, 49]
003:0> numbers.select { |n| n % 2 == 0 }
=> [2, 4, 6]
004:0> numbers.inject { |a, b| a + b }
=> 28
emails = []
users.each do |user|
  emails << user.email if user.active?
end
return emails

users.select { |u| u.active? }.map { |u| u.email }
alias :collect, :map
alias :select, :find_all
001:0> people = [quot;Coltranequot;, quot;Monkquot;, quot;Davisquot;, quot;Evansquot;]
002:0> people.all? { |x| x =~ /^[A‐Z][a‐z]+$/ }
=> true
003:0> people.any? { |name| name.include? 'trane' }
=> true
004:0> people.sort
=> [quot;Coltranequot;, quot;Davisquot;, quot;Evansquot;, quot;Monkquot;]
005:0> people.sort { |a, b| a.size <=> b.size }
=> [quot;Monkquot;, quot;Evansquot;, quot;Davisquot;, quot;Coltranequot;]
006:0> people.sort_by { |name| name.size }
=> [quot;Monkquot;, quot;Evansquot;, quot;Davisquot;, quot;Coltranequot;]
007:0> people.each_with_index { |n, i| puts quot;#{i}. #{n}quot; }
0. Coltrane
1. Monk
2. Davis
3. Evans
008:0> people.detect { |name| name.include? quot;squot; }
=> quot;Davis“
009:0> people.zip([quot;Johnquot;, quot;Theloniousquot;, quot;Milesquot;, quot;Billquot;])
=> [[quot;Coltranequot;, quot;Johnquot;], [quot;Monkquot;, quot;Theloniousquot;], [quot;Davisquot;, 
quot;Milesquot;], [quot;Evansquot;, quot;Billquot;]]
collect!
select!
:symbol
symbol != char
Symbol.similar_to String
{
    :host => quot;fmi.rails‐bg.netquot;,
    :port => 3306,
    :username => quot;websitequot;,
    :password => quot;gouldquot;,
    :database => quot;websitequot;,
}
wazup?!!!?!??1:!!??

def wazup?(a)
  puts quot;#{a} dat!quot;
end
def greet(name = quot;Unknownquot;)
  puts quot;Greetings, #{name}quot;
end

greet
greet quot;Rubyquot;
connect :db, :host => quot;172.0.0.1quot;, :port => 3306

connect(:db, {:host => quot;172.0.0.1quot;, :port => 3306})

def connect(what, options = {})
form_for(url, html_options)

form_for {:action => quot;showquot;, :id => 1}, :class => quot;horizontalquot;

form_for do
  :action => quot;showquot;, :id => 1
end, :class => quot;horizontalquot;
001:0> hash, string = {quot;Johnquot; => quot;Coltranequot;, 
quot;Eddiequot; => quot;Vedderquot;}, quot;larnodiquot;
002:0> puts hash.to_s
JohnColtraneEddieVedder
003:0> puts hash.inspect
{quot;Johnquot;=>quot;Coltranequot;, quot;Eddiequot;=>quot;Vedderquot;}
004:0> puts string.to_s
lar
odi
005:0> puts string.inspect
quot;larodiquot;
to_s
inspect
p foo
quot;It is: %pquot; % foo
lambda
square = lambda { |x| x ** 2 }

puts square(7) # Не работи

puts square.call(7)

puts square[7]
seek = lambda do |needle, haystack|
  haystack.each do |item|
    return true if item.equal?(needle)
  end
  false
end
square = ‐> (x) { x ** 2 }



                       1.9
Proc.new
root = Proc.new { |x| x ** 0.5 }

positivep = Proc.new { |x| x > 0 }

puts root[x] if positivep[x]
def my_map(list, operation)
  result = []
  list.each do |item|
    result << operation[item]
  end
  result
end

p my_map([2, 3, 5, 7], Proc.new { |x| x ** 2})
def my_map(list, operation)
  result = []
  list.each do |item|
    result << yield(item)
  end
  result
end

p my_map([2, 3, 5, 7]) { |x| x ** 2}
def my_map(list, operation)
  result = []
  list.each do |item|
    result << yield(item)
  end
  result
end

operation = Proc.new { |x| x ** 2 }
p my_map([2, 3, 5, 7]) ... ???
proc → block
def my_map(list, operation)
  result = []
  list.each do |item|
    result << yield(item)
  end
  result
end

operation = Proc.new { |x| x ** 2 }
p my_map([2, 3, 5, 7], &operation)
block → proc
def my_map(list, &operation)
  result = []
  list.each do |item|
    result << operation[item]
  end
  result
end

p my_map([2, 3, 5, 7]) { |x| x ** 2 }
block_given?
def can_has_block?
  return block_given?
end

puts can_has_block? # false
puts can_has_block? { “plz } # true
def my_proc(&block)
  block
end

square = my_proc { |x| x ** 2 }
puts square.call(7)
puts square[42]
(‐>_{_%_})[quot;(‐>_{_%%_})[%p]quot;]
def raise_to_power(numbers, power)
  numbers.map { |x| x ** power }
end

p raise_to_power([2, 3, 5, 7], 3)
def raise_to_power(numbers, power)
  numbers.map { |x| x ** power }
end

p raise_to_power([2, 3, 5, 7], 3)
def make_stamp(owner)
  time = Time.now

  lambda do |thing|
    quot;#{time}: #{thing} is owned by #{owner}quot;
  end
end

sony = make_stamp(quot;Sonyquot;)
puts sony[quot;Playstationquot;]
sleep 1
microsoft = make_stamp(quot;Microsoftquot;)
puts microsoft[quot;X‐boxquot;]
puts sony[quot;Playstationquot;]
Mon Oct 13 16:37:22 +0300 2008: Playstation
is owned by Sony
Mon Oct 13 16:37:23 +0300 2008: X‐box is 
owned by Microsoft
Mon Oct 13 16:37:22 +0300 2008: Playstation
is owned by Sony
def cuckoo
  n = 0
  tick = lambda { n += 1 }
  tack = lambda { puts n }
  return tick, tack
end

one, two = cuckoo
two[] # 0
one[]
two[] # 1
one[]

three, four = cuckoo
four[] # 0
two[]  # 2
can_haz_keushunz?

More Related Content

What's hot

04 apr 2015 d jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....
04 apr 2015 d  jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....04 apr 2015 d  jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....
04 apr 2015 d jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....udhayam99
 
IIT-JEE Mains 2017 Offline Previous Question Paper Set C
IIT-JEE Mains 2017 Offline Previous Question Paper Set CIIT-JEE Mains 2017 Offline Previous Question Paper Set C
IIT-JEE Mains 2017 Offline Previous Question Paper Set CEneutron
 
IIT-JEE Mains 2016 Offline Previous Question Paper Set F
IIT-JEE Mains 2016 Offline Previous Question Paper Set FIIT-JEE Mains 2016 Offline Previous Question Paper Set F
IIT-JEE Mains 2016 Offline Previous Question Paper Set FEneutron
 
04 apr 2015 a jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....
04 apr 2015 a  jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....04 apr 2015 a  jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....
04 apr 2015 a jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....udhayam99
 
1560357646 question paper i-set-a
1560357646 question paper i-set-a1560357646 question paper i-set-a
1560357646 question paper i-set-a8765SANDEEP
 

What's hot (7)

04 apr 2015 d jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....
04 apr 2015 d  jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....04 apr 2015 d  jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....
04 apr 2015 d jee main exam JEE MAIN EXAM 2015 CODE -D QUESTION PAPER DT.04....
 
2008p3
2008p32008p3
2008p3
 
IIT-JEE Mains 2017 Offline Previous Question Paper Set C
IIT-JEE Mains 2017 Offline Previous Question Paper Set CIIT-JEE Mains 2017 Offline Previous Question Paper Set C
IIT-JEE Mains 2017 Offline Previous Question Paper Set C
 
IIT-JEE Mains 2016 Offline Previous Question Paper Set F
IIT-JEE Mains 2016 Offline Previous Question Paper Set FIIT-JEE Mains 2016 Offline Previous Question Paper Set F
IIT-JEE Mains 2016 Offline Previous Question Paper Set F
 
04 apr 2015 a jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....
04 apr 2015 a  jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....04 apr 2015 a  jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....
04 apr 2015 a jee main exam JEE MAIN EXAM 2015 CODE -A QUESTION PAPER DT.04....
 
1560357646 question paper i-set-a
1560357646 question paper i-set-a1560357646 question paper i-set-a
1560357646 question paper i-set-a
 
06.04.2014 e
06.04.2014 e06.04.2014 e
06.04.2014 e
 

Viewers also liked

Direcciones Para Buscar La InformacióN Para El Ensayo
Direcciones Para Buscar La InformacióN Para El EnsayoDirecciones Para Buscar La InformacióN Para El Ensayo
Direcciones Para Buscar La InformacióN Para El Ensayosolascriptura2008
 
01 Aula7 Op Lidera
01 Aula7 Op Lidera01 Aula7 Op Lidera
01 Aula7 Op LideraArtur Araujo
 
Sbs Class October 19 2008
Sbs Class October 19 2008Sbs Class October 19 2008
Sbs Class October 19 2008BertBrim
 
Prueba Piloto de Reingenieria en Tlaxcala
Prueba Piloto de Reingenieria en TlaxcalaPrueba Piloto de Reingenieria en Tlaxcala
Prueba Piloto de Reingenieria en TlaxcalaArmando Cerón
 
Llamadamovistar
LlamadamovistarLlamadamovistar
Llamadamovistarluischo
 
Aquellos Maravillosos AñOs
Aquellos Maravillosos AñOsAquellos Maravillosos AñOs
Aquellos Maravillosos AñOsguestf724e9
 
Ensayo Complejidad Alejandra Escobar
Ensayo Complejidad Alejandra EscobarEnsayo Complejidad Alejandra Escobar
Ensayo Complejidad Alejandra Escobarguest75ce8
 
Movilidad Bogota
Movilidad BogotaMovilidad Bogota
Movilidad Bogotaguest75ce8
 

Viewers also liked (20)

01 Aula Castells
01 Aula Castells01 Aula Castells
01 Aula Castells
 
Direcciones Para Buscar La InformacióN Para El Ensayo
Direcciones Para Buscar La InformacióN Para El EnsayoDirecciones Para Buscar La InformacióN Para El Ensayo
Direcciones Para Buscar La InformacióN Para El Ensayo
 
01 Aula7 Op Lidera
01 Aula7 Op Lidera01 Aula7 Op Lidera
01 Aula7 Op Lidera
 
Portugal á Noite
Portugal á NoitePortugal á Noite
Portugal á Noite
 
Sbs Class October 19 2008
Sbs Class October 19 2008Sbs Class October 19 2008
Sbs Class October 19 2008
 
Dinar.Versió light
Dinar.Versió lightDinar.Versió light
Dinar.Versió light
 
01 Aula3 Op Noite
01 Aula3 Op Noite01 Aula3 Op Noite
01 Aula3 Op Noite
 
Prueba Piloto de Reingenieria en Tlaxcala
Prueba Piloto de Reingenieria en TlaxcalaPrueba Piloto de Reingenieria en Tlaxcala
Prueba Piloto de Reingenieria en Tlaxcala
 
01 Aula6 Jol T 5
01 Aula6 Jol T 501 Aula6 Jol T 5
01 Aula6 Jol T 5
 
Llamadamovistar
LlamadamovistarLlamadamovistar
Llamadamovistar
 
Aquellos Maravillosos AñOs
Aquellos Maravillosos AñOsAquellos Maravillosos AñOs
Aquellos Maravillosos AñOs
 
Amistad
AmistadAmistad
Amistad
 
Mr Putter And Tabby
Mr Putter And TabbyMr Putter And Tabby
Mr Putter And Tabby
 
01 Aula4 Jol T 5
01 Aula4 Jol T 501 Aula4 Jol T 5
01 Aula4 Jol T 5
 
01 Aula2 Jol T 5
01 Aula2 Jol T 501 Aula2 Jol T 5
01 Aula2 Jol T 5
 
Pruebita
PruebitaPruebita
Pruebita
 
Ensayo Complejidad Alejandra Escobar
Ensayo Complejidad Alejandra EscobarEnsayo Complejidad Alejandra Escobar
Ensayo Complejidad Alejandra Escobar
 
Llegim Imatges
Llegim ImatgesLlegim Imatges
Llegim Imatges
 
Movilidad Bogota
Movilidad BogotaMovilidad Bogota
Movilidad Bogota
 
01 Aula0 Jol T 5
01 Aula0 Jol T 501 Aula0 Jol T 5
01 Aula0 Jol T 5
 

Similar to 2. Функционални Закачки

GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門bose999
 
Misc Commands
Misc CommandsMisc Commands
Misc CommandsMija Nam
 
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaSc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaToshihiro Nakamura
 
3. Обекти и класове
3. Обекти и класове3. Обекти и класове
3. Обекти и класовеStefan Kanev
 
数学物理漫谈
数学物理漫谈数学物理漫谈
数学物理漫谈Xu jiakon
 
20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)Hideki Yamane
 
とちぎRuby会議01(原)
とちぎRuby会議01(原)とちぎRuby会議01(原)
とちぎRuby会議01(原)Shin-ichiro HARA
 
ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理Shinya Miyazaki
 
資料庫期末Project Proposal
資料庫期末Project Proposal資料庫期末Project Proposal
資料庫期末Project ProposalFrank Chang
 
Egxeiridio Drastiriotiton Modellus
Egxeiridio Drastiriotiton ModellusEgxeiridio Drastiriotiton Modellus
Egxeiridio Drastiriotiton ModellusStergios
 
Fantasista Revised Open Bidding Process
Fantasista Revised Open Bidding ProcessFantasista Revised Open Bidding Process
Fantasista Revised Open Bidding ProcessfantasistaVppr
 
Readme bg
Readme bgReadme bg
Readme bg46115r
 
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能devsumi2009
 

Similar to 2. Функционални Закачки (20)

GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門
 
Misc Commands
Misc CommandsMisc Commands
Misc Commands
 
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaSc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク Doma
 
3. Обекти и класове
3. Обекти и класове3. Обекти и класове
3. Обекти и класове
 
数学物理漫谈
数学物理漫谈数学物理漫谈
数学物理漫谈
 
Hackday Ml
Hackday MlHackday Ml
Hackday Ml
 
dRuby
dRubydRuby
dRuby
 
20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)
 
とちぎRuby会議01(原)
とちぎRuby会議01(原)とちぎRuby会議01(原)
とちぎRuby会議01(原)
 
greek doc 1
greek doc 1greek doc 1
greek doc 1
 
D1
D1D1
D1
 
1
11
1
 
ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理
 
Business
BusinessBusiness
Business
 
資料庫期末Project Proposal
資料庫期末Project Proposal資料庫期末Project Proposal
資料庫期末Project Proposal
 
Egxeiridio Drastiriotiton Modellus
Egxeiridio Drastiriotiton ModellusEgxeiridio Drastiriotiton Modellus
Egxeiridio Drastiriotiton Modellus
 
Reloaded
ReloadedReloaded
Reloaded
 
Fantasista Revised Open Bidding Process
Fantasista Revised Open Bidding ProcessFantasista Revised Open Bidding Process
Fantasista Revised Open Bidding Process
 
Readme bg
Readme bgReadme bg
Readme bg
 
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
 

More from 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
 
4. Метапрограмиране
4. Метапрограмиране4. Метапрограмиране
4. МетапрограмиранеStefan Kanev
 
1. Въведение в Ruby
1. Въведение в Ruby1. Въведение в Ruby
1. Въведение в RubyStefan Kanev
 
0. За курса, Ruby и Rails
0. За курса, Ruby и Rails0. За курса, Ruby и Rails
0. За курса, Ruby и RailsStefan Kanev
 

More from Stefan Kanev (17)

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
за Rubyза Ruby
за Ruby
 
Защо Ruby on Rails
Защо Ruby on RailsЗащо Ruby on Rails
Защо Ruby on Rails
 
5. HTTP и приятели
5. HTTP и приятели5. HTTP и приятели
5. HTTP и приятели
 
4. Метапрограмиране
4. Метапрограмиране4. Метапрограмиране
4. Метапрограмиране
 
1. Въведение в Ruby
1. Въведение в Ruby1. Въведение в Ruby
1. Въведение в Ruby
 
0. За курса, Ruby и Rails
0. За курса, Ruby и Rails0. За курса, Ruby и Rails
0. За курса, Ruby и Rails
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

2. Функционални Закачки