Нет ДЗ
Нет ДЗ
Нет ДЗ (на форуме было)
- Тем, у кого были сложности с выполнением урока: x, y, z - вывод (смотрите видео). Ссылка на видео будет. Вкратце: переменная х должна быть строкой, y - это число, z - дробное число (с точкой). Должны выводиться в одну строку:
x = ..., y = ..., z = ...
. Вывод в одну строку с помощью одной строки. Программа должна спрашивать по-русски:
Введите x
Введите y
Введите z
- То же самое, но с помощью интерполяции. Т. е.
#{}
. - Пройти по ссылке http://www.ruby-doc.org/core-2.1.1/String.html - попробовать то, что понятно.
- Пройти по ссылке http://www.ruby-doc.org/core-2.1.1/Integer.html - попробовать то, что понятно (с числами).
- Написать программу, которая будет выводить числа от 0 до 50 следующим образом:
i = 0, четное: true
i = 1, четное: false
i = 2, четное: true
...
i = 50, четное: true
Программа должна занимать одну строку (потому что блоки проходили только в фигурных скобках). Это задание сделать обязательно.
Пересмотреть видео. Убедиться в том, что выполнены все примеры. Сделать анимированную штуку из урока (1:24:20)
- Посмотреть то, что Роман написал https://paste2.org/kev51Hab
- Посмотреть то, что написал Хан Соло
100000.times { print rand(30..120).chr }
- Программу, которая выводит сумму, которую хотите откладывать в месяц, https://paste2.org/0OIteUx5, посмотреть и понять, как она работает.
- Изменить программу в пункте (3) следующим образом:
- программа должна спрашивать:
"Сколько лет будем копить: ", "Какую сумму будем откладывать в месяц: "
- вывод должен быть следующий:
- Год 1 месяц 1, отложено: ... - Год 1 месяц 2, отложено: ... - Год 1 месяц 3, отложено: ... ... - Год 1 месяц 12, отложено: ... ... - Год 2 месяц 1, отложено: ... ... и т. д.
- Изменить программу, чтобы она писала комбинацию, которая выпала (см. выше ответ Кое-Кто).
- Доработать программу до комбинаций:
666 - чтобы уменьшалось наполовину
777 - на 70 долларов
888 - на 80 долларов
999 - на 90 долларов
123 - на 123 доллара
- Попробовать поиграть.
- Придумать что-нибудь, чтобы программа не только выигрывала, но и проигрывала.
- Придумать, какую программу вы будете делать. Можно дорабатывать однорукого бандита. Если бандита, то сделать вывод в виде анимации. Для этого использовать команды
print
,\r
,sleep
. - Если не успели сделать какие-то примеры из урока, пересмотрите видео, сделайте примеры.
- Ссылку www.ruby-doc.org/core-2.1.1/Array.html посмотреть повнимательней. Попробовать в irb сделать. Особенно такие вещи, как
array.new
. Обратить внимание на то, как он инициализируется, потому что бывают сложные случаи, например, с фигурными скобками. - Если что-то было непонятно в видео, пересмотреть видео.
- Свой проект, который придумали себе после прошлого урока, делать.
- Доделать игру "Камень-ножницы-бумага" http://paste2.org/8KkN41O7
- Писать свою программу.
- Написать программу "Камень-ножницы-бумага" по памяти. Если не получится, смотрите видео 11 урока.
- Создать массив имен с помощью
%w[...]
, вывести все имена с порядковым номером с помощьюarr.each_with_index
- для тех, кто не сделал. - Англо-русский словарь - то, что на уроке делали. Простой вариант.
- Сложный англо-русский словарь - с несколькими вариантами перевода для каждого слова. Использовать хэши вида
hh = {'cat' => ['кот', 'кошка'], ...}
, где ключ - это строка, а значение - массив. Словарь будет выводить:- количество переводов слова;
- сами переводы слова. Вывод:
Количество переводов слова: 2 Переводы: кот кошка
- Кто не сделал однорукого бандита - сделать.
- Кто не сделал ДЗ к уроку - сделать. В частности, "Камень-ножницы-бумагу".
- Программа Tic-Tac-Toe (крестики-нолики). Должна выводить на экран доску 3х3 в текстовом формате с номерами ячеек. И спрашивать:
"Ваш ход по Х: " "Ваш ход по Y: "
- Тем, кто не успел сделать пример с хэшем в начале урока, разобрать, посмотреть видео. Кто примеры какие-то не успевал сделать - посмотреть и разобрать.
- Делать свой проект.
- Делать все задания, которые не смогли сделать за предыдущие уроки (с хэшами, с классами и т. д.).
- Делать свою программу.
- Изучить информацию по ссылке http://phrogz.net/programmingruby/tut_classes.html
- Если не поняли, то смотрите видео, делайте примеры.
- Добавить в приложение из урока класс Artist (Artist-Album-Song).
- Разбирать примеры из 15 урока.
- Разбирать примеры из 16 урока.
- http://phrogz.net/programmingruby/tut_classes.html (классы) читать и пробовать.
- http://tutorialspoint.com/ruby/ruby_modules.htm (модули) читать и пробовать.
- На основе кода, который был в уроке, доделать расширенное задание - рассчитать прибыль за 6 месяцев.
- Расширенное задание - написать программу, которая ищет нужный файл на диске C:\
- Сделать переборщик (самостоятельно), узнать пароль.
- Кто что-то не понял - см. видео.
- Попробуйте подобрать пароль к своему роутеру, если он ваш (ваш роутер находится по адресу http://192.168.1.1 или http://192.168.0.1).
- Поставьте Fiddler (google: fidler.proxy), введите запрос в http://ya.ru и посмотрите, как он работает.
Если не подходит логин и пароль, выводить сообщение access denied
(как тут: http://rubyschool.us/router).
Добавить в то, что написали на уроке, зону /admin
, где по паролю будет выдаваться список тех, кто записался (из users.txt). Чтобы вывести на экран users.txt
, введите в гугле: sinatra text file site:stackoverflow.com
sinatra и twitter bootstrap - сделать так, чтобы можно было войти c помощью логина и пароля (чтобы логин был admin, пароль secret). https://github.com/bootstrap-ruby/sinatra-bootstrap.
-
Программа-минимум:
- Добавить post-обработчик для
/visit
- Добавить все введенные данные в
./public/users.txt
- Добавить страницу
/contacts
со следующими полями:- сообщение (посмотреть html-элемент textarea)
все сохраненные контакты должны добавляться в
./public/contacts.txt
.
- Добавить post-обработчик для
-
Программа-максимум:
- На странице /visit пользователь должен иметь возможность выбрать парикмахера из списка:
- Walter White
- Jessie Pinkman
- Gus Fring
Необходимо использовать html-контрол (тег), который называется
select
. - Программа должна сохранять введенные данные в тот же файл.
- На странице /visit пользователь должен иметь возможность выбрать парикмахера из списка:
-
Домашнее задание супер-максимум: Сделать то, что было задано на 21 урок (вход по логину и по паролю с помощью sinatra-bootstrap) - для тех, кто не сделал.
Попробовать сделать то же, что на уроке, самостоятельно. Если что-то непонятно, подсматривать в репозиторий. Сохранить всё в файл.
- Cделать раздел
/contacts
с валидацией в BarberShop. - Отправлять почту на ваш адрес электронной почты через gmail (или через mail.yandex.ru). http://stackoverflow.com/questions/2068148/contact-form-in-ruby-sinatra-and-haml
- Установить визуальную программу для работы с БД.
- Создать БД BarberShop
- Создать таблицы:
Таблица 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
- Добавить несколько записей с помощью консоли sqlite3 в таблицы Users и Contacts. Если не получится, создать БД в блокноте и скопировать в sqlite3 вручную по аналогии с запросом
CREATE TABLE "Cars" ("Id" INTEGER PRIMARY KEY AUTOINCREMENT, "Name" VARCHAR, "Price" INTEGER)
- Сделать страницу
/showusers
, которая выводит информацию из базы данных со списком пользователей. Использовать запрос:select*from Users order by id desc --
кто не знает, сделать и догадаться, что он делает. - (на подумать) В методе configure сделать дополнительную таблицу Barbers для хранения списка парикмахеров. Загружать список парикмахеров в методе configure. Сделать так, чтобы парикмахеры вставлялись в таблицу, но 1 раз.
- (кто сделал 2). В представлении
visit.erb
изменить что-то в строках 38-45 и выводить список парикмахеров из БД.
- Если что-то не поняли, пересмотреть видео.
- Повторить то, что уже проходили, так как на следующем уроке будет новая тема.
- На странице
/new
спрашивать имя автора и сохранять в БД. Выводить на главной. - Валидация комментария. Если введен пустой текст - выдавать ошибку.
- Посмотреть видео, попробовать все сделать самостоятельно.
- На странице
/visit
cделать сохранение данных в БД с помощью ActiveRecord. - Программа-максимум. Сделать сущность Contact и на странице
/contacts
сохранять в БД данные с помощью ActiveRecord.
- Программа-минимум: добавить удалённый выпадающий список с парикмахерами в
visit.erb
, чтобы он нормально отображался и сохранялся. - Программа-максимум: сделать блог, который мы делали ( https://github.com/ro31337/Leprosorium ) на ActiveRecord. Можно использовать тему, которую мы не проходили
active record one-to-many
.
- Попробовать разобраться с grid системой самостоятельно.
- Почитать справку, посмотреть примеры, ActiveRecord. Почитать книгу по ruby.
- Ввести в гугле запрос:
enumerate localStorage site: stackoverflow.com
- Посмотреть как пройтись по каждому элементу хеша localStorage
- Написать javascript функцию (по аналогии), которая выводит количество item'ов в нашей корзине.
- Программа-минимум: на странице
/cart
вывести в виде таблицы список продуктов в корзине и их количество. - Программа-максимум: на странице
/cart
сделать так, чтобы форма (которая будет на странице/cart
) сабмитилась по адресу/order
и чтобы в базу данных заносился заказ: с телефоном, именем, адресом доставки и списком купленных товаров (в виде текстового поля).
- Сделать модель Order с полями из формы в
cart.erb
(+timestamps). Не забыть про миграцию. - Добавить post-обработчик
/place_order
, в котором получать данные из страницы и сохранять в БД. - Программа-максимум: выводить на экран сообщение
"Заказ принят"
. - Выводить на экран страницу со всеми принятыми заказами.
/admin
- вывод всех заказов в обратном порядке (вверху самые свежие).- Минорные изменения (title, изменить My Website на PizzaShop), удалить Cart (...))
- Программа-максимум: сделать pull-request в мой репозиторий с PizzaShop со всеми перечисленными выше изменениями (оформить в виде commit).
- Удалить лишние javascript функции.
- Сделать страницу
/home/contacts
с формой для контактов (обычная, как в синатре). - Сделать так, чтобы на сервер передавались email, message из формы контактов (подсказка:
rails generate controller...
). Сделать простым способом без rest.
- FizzBuzz тест: Вывести список чисел от 1 до 100. Если число делится на 3, писать "Fizz", если число делится на 5, писать "Buzz", если число делится на 3 и на 5, то писать FizzBuzz, иначе выводить просто само число.
- Создать в нашем блоге страницы:
/terms
- условия использования;/about
- о нашем блоге.
- Реализовать
#articles#create
. - Программа-максимум: сделать редактирование статьи, сделать вывод списка всех статей.
- Переписать таблицу и маршруты (rake routes).
- Реализовать
destroy
.
- Сделать вывод комментариев на странице статьи (
.each
). - Избавиться от ненужных маршрутов.
- Посмотреть старые версии Barbershop и сравнить с кодом на rails.
- Найти книгу "Rails 4 гибкая разработка веб-приложений".
- Читать со страницы 284 соглашение об именах.
- Прочитать про CRUD на стр. 298.
- Посмотреть как сделана авторизация в https://github.com/DefactoSoftware/Hours
- Посмотреть https://github.com/plataformatec/devise (или найти на русском языке на habrahabr.ru описание devise и почитать).
- Глянуть примеры https://github.com/plataformatec/devise/wiki/Example-Applications
- Программа-максимум: добавить в свой блог поддержку Bootstrap.
- Поискать в гугле и почитать на тему
"что такое индексы в базе данных"
. - Сделать так, чтобы комментарии оставлялись под именем залогиненного пользователя.
- Книга "Rails 4 гибкая разработка веб-приложений", стр. 367 - читать про хелперы.
- Причесать наш блог с помощью bootstrap.
- Сделать так чтобы комментарии оставлялись от имени текущего залогиненного пользователя (убрать поле author из представления) и выводить комментарии на странице.
- Залить его на github и прислать ссылку посмотреть.
- Поставить virtualbox https://www.virtualbox.org/ Поставить https://www.vagrantup.com/ Установить rails dev box согласно инструкциям https://github.com/rails/rails-dev-box
- Если не получилось - поставить linux Mint.
- Привязать сущность Article в блоге к пользователю. Сделать так, чтобы другие пользователи не могли редактировать статьи.
- Добавить в
Article
валидацию длиныtitle
в 140 символов и написать тесты. - Добавить в
Article
валидацию длиныtext
в 4000 символов и написать тесты. - В
Comment
добавить валидацию длиныbody
в 4000 символов и написать тесты.
- Посмотреть документацию/примеры по гему
capybara
. - Все константы, которые не сделаны через I18n, сделать.
- Добавить второй тест в
user_creates_article_spec.rb
. - Тестировать создание комментариев.
- Тестировать редактирование статей.
- http://rusrails.ru/action-mailer-basics - читать.
- (Если у вас есть свой домен) зарегистрироваться на postmarkapp, попробовать гем https://github.com/wildbit/postmark-gem и https://github.com/wildbit/postmark-rails
Сделать самостоятельно блог, в котором будет три сущности: post
, link
, image
с комментариями, сделать на главной странице вывод всех этих сущностей.
- Попробовать то, что мы делали - сделать в ruby программе (погуглить ruby regex, regexp).
- Попробовать: а) тестировать строки на вхождения б) заменять
- Программа-максимум: посмотреть match groups - что это такое и как применять.