RailsGirls 2012 Днепропетровск - post mortem

October 10, 2012 RailsGirls Ruby Ruby on Rails

6 октября 2012 года я участвовал в организации RailsGirls в Днепропетровске в роли тренера. В целом событие прошло невероятно успешно; каждая из пришедших 30-40 девушек написала и опубликовала свой собственный сайт на Heroku, приблизительно такой (от @Spi_ka), а другие сайты можно посмотреть тут.

Фоточки с события тут и тут.

Презентации: https://speakerdeck.com/u/rg_ukraine и http://dont-fear-internet.pp.ua/.

Начальный уровень участниц был от просто компьютерно-грамотных до верстальщиц, “инженеров сферы контроля качества” и даже программисток. Схватывали все очень хорошо.

Программирование состояло из:

Делюсь пережитыми проблемами.

Организационно

Надо обеспечить достаточное количество роутеров! Порядочный внешний канал - тоже, но не хватало именно подключений к роутеру. Вот этот вопрос на ServerFault объясняет, что проблема в интерференции, а Википедия цитирует цифру в 30 клиентов на точку доступа. Надо учесть, что кто-то будет подключать к вайфаю телефоны, и проверить, что все точки доступа используют разные каналы.

Нестабильно работающий вайфай вызывал, наверное, больше переживаний, чем сама работа.

Еще - хорошо было, что инсталлятор выложили в локальной сети, чтобы не забивать канал его скачиванием.

Программировать лучше начать раньше. Мы начали где-то часа в два (а орг. часть и доклады шли с девяти утра), и было видно, что девочки уже засиделись и заскучали. Возможно, имеет смысл перемежать программирование и доклады.

Технически

Некоторые проблемы применимы только к Windows. Windows был у 90% участниц, поэтому крайне обязательно прогонять курс на Windows и вообще ориентироваться.

Ruby и русский язык

Эти две вещи до сих пор не работают вместе. Например, Ruby не сможет работать с русским именем пользователя - гемы не будут устанавливаться.

Я подготовил сборку RailsInstaller-а, которая ставила домашней папкой C:\Sites (только для командной строки Ruby), и этим всех проблем с русскими пользователями удалось избежать. К следующим RailsGirls постараюсь опубликовать инсталлятор с еще кое-какими улучшениями.

Другая проблема - если в исходнике есть русские буквы, то без директивы encoding: Ruby 1.9 этот исходник не загрузит.

RailsInstaller

RailsInstaller должен заканчиваться на более положительной ноте; сейчас он просто выкидывает в командную строку.

Консоль - непонятная.

Все понимают, что в нее надо печатать команды, но на этом знания заканчиваются.

Не знают, что если нажать “вверх”, восстановится последняя команда.

Не знают, что если работает сервер, то печатать что-то в ту же консоль бессмысленно, его нужно остановить.

Учитывая жуткую командную строку Windows, я бы ставил всем Console2.

Были проблемы с тем, что девочки запускали обычную командную строку, а не ту, что установилась с RailsInstaller; соответственно получали неправильное окружение и неработающий Ruby.

Проблемы с запуском генераторов

Генераторы Rails очень чувствительны к пробелам; rails g model User name:string работает, rails g model User name: string создает два поля - name и string, причем никак по-человечески не объяснить, почему в этом месте нельзя ставить пробел. Аналогично rails g devise :install сгенерирует авторизацию для модели Install, а не проинициализирует Devise.

Если генератор отработал неправильно, его надо откатить: rails destroy model User

Если прогнали миграции, то их нужно откатить ДО отката генератора (ибо они удалятся)

Вообще если испортить базу, то нужно уметь ее чинить, хотя бы через db:migrate:reset

Ошибки

Не очевидно, что делать, когда выскакивает ошибка Rails; страница ошибки выиграла бы от более ярко выделенного файла и строчки, в которой она произошла.

Редактор

Людям надо принудительно ставить одинаковый редактор (Sublime Text 2 бесплатный и кроссплатформенный); исключения только для тех, у кого есть любимый редактор - у меня таких не оказалось. Предполагаю, что любимые текстовые редакторы бывают только у программистов.

В Sublime Text 2 надо сразу объяснить, как подключить папку с приложением к проекту, и показать Ctrl+P (быстрый поиск).

Формы

Программирование форм - с точки зрения новичка очень сложное занятие. например, описание select-поля с выборкой из коллекции. Предложение: показывать и использовать Formtastic.

CRUD

Демонстрация удобства Rails на примере скаффолдов понятна программистам, но, мне кажется, не очень понятна не-программистам. То есть, CRUD- скаффолд - не очень-то интересная штука. Хорошо бы придумать другую, более интересную демонстрацию, возможно, такую, в которую скаффолд входит как одна из частей.