0. За курса, Ruby и Rails
-
Upload
stefan-kanev -
Category
Technology
-
view
1.057 -
download
5
description
Transcript of 0. За курса, Ruby и Rails
![Page 1: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/1.jpg)
![Page 2: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/2.jpg)
0. За курса, Ruby и Railst
Textclass RubyAndRails < Course speaker "Стефан Кънев" speaker "Николай Бачийски"end
06.10.2008, ФМИ
![Page 3: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/3.jpg)
![Page 4: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/4.jpg)
![Page 5: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/5.jpg)
![Page 6: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/6.jpg)
![Page 7: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/7.jpg)
![Page 8: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/8.jpg)
![Page 9: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/9.jpg)
3
![Page 10: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/10.jpg)
3Събирания във ФМИ
![Page 11: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/11.jpg)
3Събирания във ФМИ
Събирания навън
![Page 12: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/12.jpg)
3Събирания във ФМИ
Събирания навън
Сайт на курса
![Page 13: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/13.jpg)
∀ понеделник и сряда
![Page 14: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/14.jpg)
∀ понеделник и сряда
19:00 - 21:00
![Page 15: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/15.jpg)
∀ понеделник и сряда
19:00 - 21:00
зала 200
![Page 16: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/16.jpg)
![Page 18: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/18.jpg)
http://fmi.rails-bg.net/
•Домашни•Споделяне на код•Въпроси и отговори•Информация за курса
![Page 19: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/19.jpg)
Догматичност(Не очаквахте испанската инквизиция, а?)
![Page 20: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/20.jpg)
![Page 21: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/21.jpg)
![Page 22: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/22.jpg)
Оценки
![Page 23: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/23.jpg)
![Page 24: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/24.jpg)
![Page 25: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/25.jpg)
200+• Отговори във форума
• Елегантни решения
• Втори проект през семестъра
• Допълнителни задачи
![Page 26: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/26.jpg)
![Page 27: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/27.jpg)
![Page 28: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/28.jpg)
Ruby
![Page 29: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/29.jpg)
Ruby Ruby
RubyRubyRuby
RubyRubyRuby
![Page 30: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/30.jpg)
Ruby Ruby
RubyRubyRuby
RubyRubyRuby Web
![Page 31: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/31.jpg)
Ruby Ruby
RubyRubyRuby
RubyRuby
HTTP
SQL
(X)HTML
CSSRuby Web
![Page 32: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/32.jpg)
Ruby Ruby
RubyRubyRuby
RubyRuby
HTTP
SQL
(X)HTML
CSSRuby Web
Rails
![Page 33: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/33.jpg)
Ruby Ruby
RubyRubyRuby
RubyRuby
HTTP
SQL
(X)HTML
CSS
Rails
Rails
RailsRails
RailsRails
Rails
Rails
Ruby Web
Rails
![Page 34: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/34.jpg)
Ruby Ruby
RubyRubyRuby
RubyRuby
HTTP
SQL
(X)HTML
CSS
Rails
Rails
RailsRails
RailsRails
Rails
Rails
Ruby Web
Rails
Ruby
Ruby
Ruby
![Page 35: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/35.jpg)
Ruby Ruby
RubyRubyRuby
RubyRuby
HTTP
SQL
(X)HTML
CSS
Rails
Rails
RailsRails
RailsRails
Rails
Rails
Ruby Web
Rails
JavaScript
Ruby
Ruby
Ruby
![Page 36: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/36.jpg)
Ruby Ruby
RubyRubyRuby
RubyRuby
HTTP
SQL
(X)HTML
CSS
Rails
Rails
RailsRails
RailsRails
Rails
Rails
AJAX
JSON
Ruby Web
Rails
JavaScript
Ruby
Ruby
Ruby
![Page 37: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/37.jpg)
Ruby Ruby
RubyRubyRuby
RubyRuby
HTTP
SQL
(X)HTML
CSS
Rails
Rails
RailsRails
RailsRails
Rails
Rails
AJAX
JSON
?
Ruby Web
Rails
JavaScript
Ruby
Ruby
Ruby
![Page 38: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/38.jpg)
![Page 39: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/39.jpg)
![Page 40: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/40.jpg)
![Page 41: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/41.jpg)
![Page 42: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/42.jpg)
![Page 43: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/43.jpg)
1995
![Page 44: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/44.jpg)
Интерпретира се
aquarius@arrakis:~$ cat sample.rb require 'date'puts "Hello world"puts "The exact time is #{DateTime.now}"aquarius@arrakis:~$ ruby sample.rb Hello worldThe exact time is 2008-10-05T14:40:14+03:00
![Page 45: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/45.jpg)
aquarius@arrakis:~$ irb 001:0> names = ["Stefan", "Nikolay"]=> ["Stefan", "Nikolay"]002:0> surnames = ["Kanev", "Bachiyski"]=> ["Kanev", "Bachiyski"]003:0> names.zip(surnames).map { |f,l| "#{f} #{l}" }=> ["Stefan Kanev", "Nikolay Bachiyski"]
Интерактивен шел (IRB)
![Page 46: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/46.jpg)
Динамичен
![Page 47: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/47.jpg)
![Page 48: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/48.jpg)
ООП
![Page 49: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/49.jpg)
ФП
![Page 50: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/50.jpg)
+ =
![Page 51: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/51.jpg)
Smalltalk
LISP
CLU
![Page 52: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/52.jpg)
essay pic SICP
Programs must be written for people to read, and only
incidentally for machines to execute
![Page 53: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/53.jpg)
![Page 54: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/54.jpg)
Matz(Yukihiro Matsumoto, 松本行)
• Benevolent Dictator For Life• 43 годишен• Спокоен, приятен човек• Мормон
![Page 55: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/55.jpg)
Интерпретатори
•MRI (Matz's Ruby Interpreter)• YARV (Yet Another Ruby VM)• Rubinus (вдъхновен от Smalltalk)• JRuby (сещате се)• IronRuby
![Page 56: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/56.jpg)
![Page 57: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/57.jpg)
Платформа
![Page 58: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/58.jpg)
2004-
![Page 59: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/59.jpg)
![Page 60: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/60.jpg)
MVC
![Page 61: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/61.jpg)
Text
class User < ActiveRecord::Base validates_presence_of :email, :name, :birthday, :gender, :city validates_uniqueness_of :email, :case_sensitivity => false belongs_to :city has_many :comments, :dependent => :destroy has_many :received, :class_name => 'Message', :foreign_key => 'recipient_id' def self.authenticate(email, password) u = find_by_email(email) u && u.authenticated?(password) ? u : nil
Active Record
![Page 62: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/62.jpg)
<% ERB %>
![Page 63: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/63.jpg)
Controller
Controller
![Page 64: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/64.jpg)
TDD
![Page 65: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/65.jpg)
Migrations
![Page 66: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/66.jpg)
Plugins
![Page 67: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/67.jpg)
![Page 68: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/68.jpg)
![Page 69: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/69.jpg)
![Page 70: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/70.jpg)
github
![Page 71: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/71.jpg)
DHH(David Heinemeier Hanson)
• Създател на Rails• 28 годишен • Нахакан, арогантен тип• Дътчанин
![Page 72: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/72.jpg)
I’m not here to create Rails for you. I’m here to create Rails for me and if you happen to like that version of Rails that I’m creating for
me, than you are going to have a great time
![Page 73: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/73.jpg)
![Page 74: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/74.jpg)
![Page 75: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/75.jpg)
![Page 76: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/76.jpg)
![Page 78: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/78.jpg)
category_sum = Hash.new(0)
File.open('spendings').each_line do |line| next unless line =~ /^\d\d\.\d\d\.\d{4}\s+\w+\s+[-0-9.]+/ date, category, amount = line.split category_sum[category] += amount.to_iend
category_sum.sort_by { |_, sum| -sum }.each do |category, sum| puts "#{sum} spent on #{category}"end
![Page 79: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/79.jpg)
04.10.2008 lolcat 1004.10.2008 lolcat 1
05.10.2008 iMac 2375# I am getting compulsive05.10.2008 lolcat 20
06.10.2008 bet -20# Clayderman!!! 06.10.2008 tickets 60
# Let's never play poker again07.10.2008 bet 100
![Page 80: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/80.jpg)
nb@creep$ ruby iamfrugal.rb 2375 spent on iMac80 spent on bet60 spent on tickets31 spent on lolcat
![Page 81: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/81.jpg)
![Page 82: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/82.jpg)
![Page 83: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/83.jpg)
Text
def symmetric? points = Set.new @bricks.map(&:points).sum left, right, top, bottom = WIDTH * 2, -WIDTH * 2, HEIGHT * 2, -HEIGHT * 2 points.each do |x, y| left = [left, x].min right = [right, x].max top = [top, y].min bottom = [bottom, y].max end points.all? { |x, y| points.include? [right - x + left, y] } or \ points.all? { |x, y| points.include? [right - x + left, bottom - y + top] } end
![Page 84: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/84.jpg)
Text
def try board, bricks if bricks.empty? board.print_me if ($c % 10000).zero? $c +=1 if board.symmetric? puts 'symmetric! '*100 p board board.print_me end #gets if board.symmetric? #board.print_me #puts "-" * 30 return end bricks = bricks.dup brick = bricks.pop brick.rotate do |rotation| board.put rotation do try board, bricks end endend
![Page 85: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/85.jpg)
![Page 86: 0. За курса, Ruby и Rails](https://reader034.fdocuments.net/reader034/viewer/2022042715/559ee94b1a28abdf618b46fb/html5/thumbnails/86.jpg)
Ruby няма да ви нареди магнитите, но ще ви даде няколко безценни часа
забавление