Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

Урок 1

Нет ДЗ


Урок 2

Нет ДЗ


Урок 3

Нет ДЗ (на форуме было)


Урок 4

  1. Тем, у кого были сложности с выполнением урока: x, y, z - вывод (смотрите видео). Ссылка на видео будет. Вкратце: переменная х должна быть строкой, y - это число, z - дробное число (с точкой). Должны выводиться в одну строку: x = ..., y = ..., z = ... . Вывод в одну строку с помощью одной строки. Программа должна спрашивать по-русски:
Введите x
Введите y
Введите z
  1. То же самое, но с помощью интерполяции. Т. е. #{}.
  2. Пройти по ссылке http://www.ruby-doc.org/core-2.1.1/String.html - попробовать то, что понятно.
  3. Пройти по ссылке http://www.ruby-doc.org/core-2.1.1/Integer.html - попробовать то, что понятно (с числами).
  4. Написать программу, которая будет выводить числа от 0 до 50 следующим образом:
i = 0, четное: true
i = 1, четное: false
i = 2, четное: true
...
i = 50, четное: true

Программа должна занимать одну строку (потому что блоки проходили только в фигурных скобках). Это задание сделать обязательно.


Урок 5

Пересмотреть видео. Убедиться в том, что выполнены все примеры. Сделать анимированную штуку из урока (1:24:20)


Урок 6

  1. Посмотреть то, что Роман написал https://paste2.org/kev51Hab
  2. Посмотреть то, что написал Хан Соло 100000.times { print rand(30..120).chr }
  3. Программу, которая выводит сумму, которую хотите откладывать в месяц, https://paste2.org/0OIteUx5, посмотреть и понять, как она работает.
  4. Изменить программу в пункте (3) следующим образом:
    • программа должна спрашивать:
    "Сколько лет будем копить: ",
    "Какую сумму будем откладывать в месяц: "
    
    • вывод должен быть следующий:
     - Год 1 месяц 1, отложено: ...
     - Год 1 месяц 2, отложено: ...
     - Год 1 месяц 3, отложено: ...
     ...
    
     - Год 1 месяц 12, отложено: ...
     ...
    
     - Год 2 месяц 1, отложено: ...
     ... и т. д.
    

Урок 7

  1. Изменить программу, чтобы она писала комбинацию, которая выпала (см. выше ответ Кое-Кто).
  2. Доработать программу до комбинаций:
    666 - чтобы уменьшалось наполовину
    777 - на 70 долларов
    888 - на 80 долларов
    999 - на 90 долларов
    123 - на 123 доллара
  1. Попробовать поиграть.
  2. Придумать что-нибудь, чтобы программа не только выигрывала, но и проигрывала.

Урок 8

  1. Придумать, какую программу вы будете делать. Можно дорабатывать однорукого бандита. Если бандита, то сделать вывод в виде анимации. Для этого использовать команды print, \r, sleep.
  2. Если не успели сделать какие-то примеры из урока, пересмотрите видео, сделайте примеры.

Урок 9

  1. Ссылку www.ruby-doc.org/core-2.1.1/Array.html посмотреть повнимательней. Попробовать в irb сделать. Особенно такие вещи, как array.new. Обратить внимание на то, как он инициализируется, потому что бывают сложные случаи, например, с фигурными скобками.
  2. Если что-то было непонятно в видео, пересмотреть видео.
  3. Свой проект, который придумали себе после прошлого урока, делать.

Урок 10

  1. Доделать игру "Камень-ножницы-бумага" http://paste2.org/8KkN41O7
  2. Писать свою программу.

Урок 11

  1. Написать программу "Камень-ножницы-бумага" по памяти. Если не получится, смотрите видео 11 урока.
  2. Создать массив имен с помощью %w[...], вывести все имена с порядковым номером с помощью arr.each_with_index - для тех, кто не сделал.
  3. Англо-русский словарь - то, что на уроке делали. Простой вариант.
  4. Сложный англо-русский словарь - с несколькими вариантами перевода для каждого слова. Использовать хэши вида hh = {'cat' => ['кот', 'кошка'], ...}, где ключ - это строка, а значение - массив. Словарь будет выводить:
    • количество переводов слова;
    • сами переводы слова. Вывод:
    Количество переводов слова: 2
    Переводы:
    кот
    кошка
    

Урок 12

  1. Кто не сделал однорукого бандита - сделать.
  2. Кто не сделал ДЗ к уроку - сделать. В частности, "Камень-ножницы-бумагу".
  3. Программа Tic-Tac-Toe (крестики-нолики). Должна выводить на экран доску 3х3 в текстовом формате с номерами ячеек. И спрашивать:
    "Ваш ход по Х: "
    "Ваш ход по Y: "
    

Урок 13

  1. Тем, кто не успел сделать пример с хэшем в начале урока, разобрать, посмотреть видео. Кто примеры какие-то не успевал сделать - посмотреть и разобрать.
  2. Делать свой проект.

Урок 14

  1. Делать все задания, которые не смогли сделать за предыдущие уроки (с хэшами, с классами и т. д.).
  2. Делать свою программу.

Урок 15

  1. Изучить информацию по ссылке http://phrogz.net/programmingruby/tut_classes.html
  2. Если не поняли, то смотрите видео, делайте примеры.
  3. Добавить в приложение из урока класс Artist (Artist-Album-Song).

Урок 16

  1. Разбирать примеры из 15 урока.
  2. Разбирать примеры из 16 урока.
  3. http://phrogz.net/programmingruby/tut_classes.html (классы) читать и пробовать.
  4. http://tutorialspoint.com/ruby/ruby_modules.htm (модули) читать и пробовать.

Урок 17

  1. На основе кода, который был в уроке, доделать расширенное задание - рассчитать прибыль за 6 месяцев.
  2. Расширенное задание - написать программу, которая ищет нужный файл на диске C:\

Урок 18

  1. Сделать переборщик (самостоятельно), узнать пароль.
  2. Кто что-то не понял - см. видео.
  3. Попробуйте подобрать пароль к своему роутеру, если он ваш (ваш роутер находится по адресу http://192.168.1.1 или http://192.168.0.1).
  4. Поставьте Fiddler (google: fidler.proxy), введите запрос в http://ya.ru и посмотрите, как он работает.

Урок 19

Если не подходит логин и пароль, выводить сообщение access denied (как тут: http://rubyschool.us/router).


Урок 20

Добавить в то, что написали на уроке, зону /admin, где по паролю будет выдаваться список тех, кто записался (из users.txt). Чтобы вывести на экран users.txt, введите в гугле: sinatra text file site:stackoverflow.com


Урок 21

sinatra и twitter bootstrap - сделать так, чтобы можно было войти c помощью логина и пароля (чтобы логин был admin, пароль secret). https://github.com/bootstrap-ruby/sinatra-bootstrap.


Урок 22

  • Программа-минимум:

    • Добавить post-обработчик для /visit
    • Добавить все введенные данные в ./public/users.txt
    • Добавить страницу /contacts со следующими полями:
      • email
      • сообщение (посмотреть html-элемент textarea)

      все сохраненные контакты должны добавляться в ./public/contacts.txt.

  • Программа-максимум:

    • На странице /visit пользователь должен иметь возможность выбрать парикмахера из списка:
      • Walter White
      • Jessie Pinkman
      • Gus Fring

      Необходимо использовать html-контрол (тег), который называется select.

    • Программа должна сохранять введенные данные в тот же файл.
  • Домашнее задание супер-максимум: Сделать то, что было задано на 21 урок (вход по логину и по паролю с помощью sinatra-bootstrap) - для тех, кто не сделал.


Урок 23

Попробовать сделать то же, что на уроке, самостоятельно. Если что-то непонятно, подсматривать в репозиторий. Сохранить всё в файл.


Урок 24

  1. Cделать раздел /contacts с валидацией в BarberShop.
  2. Отправлять почту на ваш адрес электронной почты через gmail (или через mail.yandex.ru). http://stackoverflow.com/questions/2068148/contact-form-in-ruby-sinatra-and-haml

Урок 25

  1. Установить визуальную программу для работы с БД.
  2. Создать БД BarberShop
  3. Создать таблицы:
    Таблица 1. Users 
        Id - идентификатор, primary key, автоинкремент, тип Integer
        Name - varchar
        Phone - varchar
        DateStamp - varchar
        Barber - varchar
        Color - varchar
    
    Таблица 2. Contacts
        Id - идентификатор, primary key, автоинкремент, тип Integer
        Email - varchar
        Message - varchar
    
  4. Добавить несколько записей с помощью консоли sqlite3 в таблицы Users и Contacts. Если не получится, создать БД в блокноте и скопировать в sqlite3 вручную по аналогии с запросом CREATE TABLE "Cars" ("Id" INTEGER PRIMARY KEY AUTOINCREMENT, "Name" VARCHAR, "Price" INTEGER)

Урок 26

  1. Сделать страницу /showusers, которая выводит информацию из базы данных со списком пользователей. Использовать запрос: select*from Users order by id desc -- кто не знает, сделать и догадаться, что он делает.
  2. (на подумать) В методе configure сделать дополнительную таблицу Barbers для хранения списка парикмахеров. Загружать список парикмахеров в методе configure. Сделать так, чтобы парикмахеры вставлялись в таблицу, но 1 раз.
  3. (кто сделал 2). В представлении visit.erb изменить что-то в строках 38-45 и выводить список парикмахеров из БД.

Урок 27

  1. Если что-то не поняли, пересмотреть видео.
  2. Повторить то, что уже проходили, так как на следующем уроке будет новая тема.

Урок 28

  1. На странице /new спрашивать имя автора и сохранять в БД. Выводить на главной.
  2. Валидация комментария. Если введен пустой текст - выдавать ошибку.
  3. Посмотреть видео, попробовать все сделать самостоятельно.

Урок 29

  1. На странице /visit cделать сохранение данных в БД с помощью ActiveRecord.
  2. Программа-максимум. Сделать сущность Contact и на странице /contacts сохранять в БД данные с помощью ActiveRecord.

Урок 30

  1. Программа-минимум: добавить удалённый выпадающий список с парикмахерами в visit.erb, чтобы он нормально отображался и сохранялся.
  2. Программа-максимум: сделать блог, который мы делали ( https://github.com/ro31337/Leprosorium ) на ActiveRecord. Можно использовать тему, которую мы не проходили active record one-to-many.

Урок 31


Урок 32

  1. Попробовать разобраться с grid системой самостоятельно.
  2. Почитать справку, посмотреть примеры, ActiveRecord. Почитать книгу по ruby.

Урок 33

  1. Ввести в гугле запрос: enumerate localStorage site: stackoverflow.com
  2. Посмотреть как пройтись по каждому элементу хеша localStorage
  3. Написать javascript функцию (по аналогии), которая выводит количество item'ов в нашей корзине.

Урок 34

  1. Программа-минимум: на странице /cart вывести в виде таблицы список продуктов в корзине и их количество.
  2. Программа-максимум: на странице /cart сделать так, чтобы форма (которая будет на странице /cart) сабмитилась по адресу /order и чтобы в базу данных заносился заказ: с телефоном, именем, адресом доставки и списком купленных товаров (в виде текстового поля).

Урок 35

  1. Сделать модель Order с полями из формы в cart.erb (+timestamps). Не забыть про миграцию.
  2. Добавить post-обработчик /place_order, в котором получать данные из страницы и сохранять в БД.
  3. Программа-максимум: выводить на экран сообщение "Заказ принят".
  4. Выводить на экран страницу со всеми принятыми заказами.

Урок 36

  1. /admin - вывод всех заказов в обратном порядке (вверху самые свежие).
  2. Минорные изменения (title, изменить My Website на PizzaShop), удалить Cart (...))
  3. Программа-максимум: сделать pull-request в мой репозиторий с PizzaShop со всеми перечисленными выше изменениями (оформить в виде commit).
  4. Удалить лишние javascript функции.

Урок 37

  1. Сделать страницу /home/contacts с формой для контактов (обычная, как в синатре).
  2. Сделать так, чтобы на сервер передавались email, message из формы контактов (подсказка: rails generate controller...). Сделать простым способом без rest.

Урок 38

  1. FizzBuzz тест: Вывести список чисел от 1 до 100. Если число делится на 3, писать "Fizz", если число делится на 5, писать "Buzz", если число делится на 3 и на 5, то писать FizzBuzz, иначе выводить просто само число.
  2. Создать в нашем блоге страницы:
    • /terms - условия использования;
    • /about - о нашем блоге.
  3. Реализовать #articles#create.
  4. Программа-максимум: сделать редактирование статьи, сделать вывод списка всех статей.

Урок 39

  1. Переписать таблицу и маршруты (rake routes).
  2. Реализовать destroy.

Урок 40

  1. Сделать вывод комментариев на странице статьи (.each).
  2. Избавиться от ненужных маршрутов.
  3. Посмотреть старые версии Barbershop и сравнить с кодом на rails.

Урок 41

  1. Найти книгу "Rails 4 гибкая разработка веб-приложений".
  2. Читать со страницы 284 соглашение об именах.
  3. Прочитать про CRUD на стр. 298.

Урок 42

  1. Посмотреть как сделана авторизация в https://github.com/DefactoSoftware/Hours
  2. Посмотреть https://github.com/plataformatec/devise (или найти на русском языке на habrahabr.ru описание devise и почитать).
  3. Глянуть примеры https://github.com/plataformatec/devise/wiki/Example-Applications
  4. Программа-максимум: добавить в свой блог поддержку Bootstrap.

Урок 43

  1. Поискать в гугле и почитать на тему "что такое индексы в базе данных".
  2. Сделать так, чтобы комментарии оставлялись под именем залогиненного пользователя.

Урок 44

  1. Книга "Rails 4 гибкая разработка веб-приложений", стр. 367 - читать про хелперы.
  2. Причесать наш блог с помощью bootstrap.
  3. Сделать так чтобы комментарии оставлялись от имени текущего залогиненного пользователя (убрать поле author из представления) и выводить комментарии на странице.
  4. Залить его на github и прислать ссылку посмотреть.

Урок 45

  1. Поставить virtualbox https://www.virtualbox.org/ Поставить https://www.vagrantup.com/ Установить rails dev box согласно инструкциям https://github.com/rails/rails-dev-box
  2. Если не получилось - поставить linux Mint.
  3. Привязать сущность Article в блоге к пользователю. Сделать так, чтобы другие пользователи не могли редактировать статьи.

Урок 46

  1. Добавить в Article валидацию длины title в 140 символов и написать тесты.
  2. Добавить в Article валидацию длины text в 4000 символов и написать тесты.
  3. В Comment добавить валидацию длины body в 4000 символов и написать тесты.

Урок 47

  1. Посмотреть документацию/примеры по гему capybara.
  2. Все константы, которые не сделаны через I18n, сделать.
  3. Добавить второй тест в user_creates_article_spec.rb.
  4. Тестировать создание комментариев.
  5. Тестировать редактирование статей.

Урок 48

  1. http://rusrails.ru/action-mailer-basics - читать.
  2. (Если у вас есть свой домен) зарегистрироваться на postmarkapp, попробовать гем https://github.com/wildbit/postmark-gem и https://github.com/wildbit/postmark-rails

Урок 49

Сделать самостоятельно блог, в котором будет три сущности: post, link, image с комментариями, сделать на главной странице вывод всех этих сущностей.


Урок 50

  1. Попробовать то, что мы делали - сделать в ruby программе (погуглить ruby regex, regexp).
  2. Попробовать: а) тестировать строки на вхождения б) заменять
  3. Программа-максимум: посмотреть match groups - что это такое и как применять.