БРЕЙНВОШИНГ. Часть 2
Закончился первый день Брейнвошинга. Люди начали расходиться.
Откровенно говоря, я очень боялся остаться один на один с Москвой. Неприятное ощущение бедности оставляет в мозгах свой след надолго. Еще пару месяцев назад я работал в школе и зарабатывал 9500 за ставку учителя информатики и еще 2500 за ставку системного администратора (итого, около 300$) и все что мог позволить себе на эту зарплату — заплатить за съемное жилье и купить картошки и сосисок, чтобы дожить до следующего аванса.
Я все еще не мог поверить, что теперь у меня зарплата была 75 тысяч (около 2000$) и я могу себе хоть что-то позволить. Хотя, все деньги в тот момент все еще уходили на раздачу долгов и покупку продуктов.
Впервые появилась возможность нормально питаться и мы с женой отъедались как могли и позволяли себе попробовать то, чего раньше были лишены. Красная рыба, свежий салат, хорошее сливочное масло, бутылка настоящего мартини. О да! А что бы и нет? Никто не знал, когда закончится наша удача и придется вновь вернуться в родной Залупинск к сосискам, маргарину и картошке.
Но я отвлекся на свои беднятские учительские истории. Вернемся к сути истории.
Внезапно я обнаружил, что прочти вся аудитория уже разошлась и не осталось никого. Я пулей вылетел из комплекса Цифровой Октябрь в попытке прицепиться хоть к кому-то.
Единственный парень, который мне по какой-то причине приглянулся — ушел уже довольно далеко. Я поспешил за ним.
Я не знаю почему он мне показался так сильно отличающимся от остальных. В пальто, с серьезным и даже с немного угрюмым выражением лица, но по нему было видно, что человек приличный. Из тех, с которыми, как мне кажется, у меня могут сложиться отношения. Я поспешил за ним.
Ночь с незнакомцем
Было как-то не удобно откровенно бежать за незнакомым человеком, я просто торопился. Но тут он свернул за угол и я перешел на бег. Добежав до угла, я резко остановился, сделал вид, что просто медленно иду, завернул за угол и окрикнул его.
— Эй, дружище! Ты же с Брейнвошинга?
— Ммм. Да, а что?
— А где будешь ночевать?
— Тут есть гостиница в 20 минутах ходу. Номер тысячи 4. Думаю, сниму номер там.
— Блин, не дешево. Слушай, может поделим пополам и заселимся вдвоем? Какая разница? Все равно в Москве нужно пробыть только ночь.
— Ну-уууу. Годное предложение. Я не против.
— А еще тут прямо напротив есть какой-то хостел. Может быть мы туда заглянем? Вечером попьем пива, а утром не придется рано вставать и куда-то идти. Давай посмотрим?
— Ну, давай.
Хостел был прямо напротив Цифрового Октября. Мы поднялись на второй этаж. Стойка администратора.
— Чем помочь, мальчики? — обратилась администраторша, явно увлекающаяся этно культурой и индийскими практиками.
— Нам бы кости кинуть на ночь. Подешевле.
— Есть номера на 4 и 6 человек. По 400 рублей за место.
Мы пошли в комнаты, и обнаружили там устойчивый запах чужих носков. Нууу, так себе.
— А еще варианты есть?
— Есть еще номер для молодоженов. Одна широкая кровать. Свой душ. 1600 за сутки.
— О! Это наш вариант. Берем.
Так мы оказались в малюсенькой комнатке с кроватью и собственным душем. Комнату ничего не отличало от обычной советской гостиницы с бабушкиным евро-ремонтом. Зато за 1600. Зато напротив места событий. Мне до сих пор кажется, что сделка была удачная.
Прямо из окна был виден Храм Христа Спасителя.
Не помню как мы провели тот вечер. Кажется, пили пиво и смотрели какие-то сериалы. Обсуждали первый день брейнвошинга. Но, в целом, ничего особенного.
Вечером перед сном я пошел принять душ и к своему удивлению обнаружил, что в душевой стоит устойчивый запах вареных пельменей. Видимо под нами была кухня. Мы дружно поржали. Номер для молодоженов с видом на ХСС и запахом пельменей. Ахуенно!
Сейчас, вспоминая всю эту гротескную ситуацию, никак не могу понять, чего мы не сняли нормальную гостиницу? Почему Я не снял нормальный номер? Судя по всему у моего соседа из Челябинска зарплата была значительно ниже моей. Тысяч 40. И при всем при этом он был в полной решимости снять нормальный номер. С другой стороны, я все равно сэкономил ему деньги.
Липкое ощущение бедности сильно въелось в мозги и заставляло экономить на всем, хотя острой необходимости в этом уже не было. Никогда не ходите работать в школу учителем. Это сильно меняет сознание и не в лучшую сторону.
Утром вставать было тяжело. Усталость от впечатлений. Лишняя бутылка пива.
— Слушай, блин. Надо будет никому не рассказывать про эту историю. Ночевать с незнакомым мужиком в номере для молодоженов с видом на ХСС. Нуууу. Такое себе. Засмеют.
— Ага! Сомнительная ситуация. Можно всякого дорисовать. Зато теперь можешь считать себя настоящим московским рельсовиком.
Поржав над ситуацией мы отправились на 2-й день брейнвошинга.
Кстати, мой новый знакомый оказался из Челябинска. Тоже приехал в МСК по поводу выигрыша бесплатного брейнвошинга. Раньше, кажется работал в аппарате губернатора и занимался развитием IT инфраструктуры. Но, видимо, на гос службе много не заработаешь и он ушел в программисты.
Брейнвошинг. День второй
В этот день должен был выступать с докладом Иван Евтухович.
Надо сказать, что у Ивана явный талант к преподаванию. В чем он заключается? В том, что он действительно хотел объяснить как работают довольно сложные вещи.
Первая часть доклада была о том, что такое индексы в БД и как их заставить работать на тебя. В каких случая индексы вредят и не только не ускоряют работу БД, но и существенно замедляют ее.
Удивительно. Но оказалось, что все, что он объяснял для прокаченных бэкендщиков доступно даже мне. Мало того. Интересно и просто.
Главное правило, которое я узнал в тот момент — кладите всю базу данных в память. Если БД не вынуждена постоянно читать/записывать на жесткий диск, то работать она будет значительно быстрее. Конечно, нужно соблюдать баланс между работой в памяти и сбросом данных на диск. Иначе, при отключении света данные просто потеряются.
Возможно, это правило уже не так актуально, из-за массового использования SSD. Но через 2 года этот совет мне очень помог в момент больших проблем с производительностью на одном из нагруженных проектов.
Вообще, с рельсом я был знаком уже года 4. Да, я не использовал рельс с точки зрения крупных коммерческих проектов, но все базовые вещи я знал.
В тот день Иван рассказывал и про кеширование страниц и делал сравнение кеширования вьюшек на диск и с сохранением вьюшек в редисе или мемкеше. Суть в том, что на небольших проектах разницы между кешированием вьюшек на диск и кешированием их в память практически нет. И можно свободно кешировать куски вьюх на диск и не париться.
Сейчас уже могу ошибаться. Надеюсь я не несу откровенную чушь. Уже много лет не работал с этим.
Короче. Уже много лет я знал про кеширование вьюх и все еще не использовал его. Почему? Страх.
Страх
Вся моя жизнь разработчика — это постоянный страх и его преодоление. Каждый долбаный день я встречаю очередную хрень, которую я раньше не использовал и которая выглядит, как хрен знает что и требует мозговых усилий, чтобы понять что это вообще такое.
С кешированием примерно тоже самое. Да, было понятно что это. Да, было даже понятно как это использовать, но! Что лучше? Кеш в памяти или на диске? А как настроить редиску или мемкеш, чтобы оно заработало? А что если на продакшене все упадет? А ну его нахрен! Пока нет острой необходимости — пройду мимо. Надо будет — разберусь. Пока не надо.
Показав пару простых примеров и рассказав, что не надо этого бояться и можно начать с малого и потом улучшить, Иван как будто стер эту границу, которую я все это время боялся переступить. Это важно.
Провал в подготовке мероприятия
Послушав доклад об индексах БД, о том как дебажить SQL запросы через explain и как делать кеширование мы приготовились к практическим заданиям.
По задумке авторов каждому присутствующему должны были были выдать образ для виртуальной машины, чтобы можно было запустить в нем готовое тестовое рельсовое приложение и выполнить задания.
Мой старенький асус хоть и не был супер мощным, но я постоянно запускал на нем в Virtual Box убунту с графикой и спокойно работал над своими рельсовыми проектами.
Образ который нам выдали содержал какой-то линукс без графической оболочки. Скорее всего какой-то дебиан.
Половину практического занятия все потратили только на то, чтобы этот образ запустился. Кроме того, даже когда он . запустился у многих он тупил и тормозил так, что работать было практически невозможно. И вот мы бегали от стола к столу и спрашивали, а у тебя как? Заработало? Давай у тебя посмотрим?
Не знаю почему это . так получилось. Все должно было быть легко и просто, а времени было потеряно тонна и лично я многое упустил. А жаль.
С одной стороны — не мне жаловаться, я вообще оказался там случайно и бесплатно. А с другой стороны — самая знаменитая рельсовая команда России, о которой рядовые рельсовики из отдаленных Мухосрансков складывали легенды могла бы и предусмотреть такой расклад.
В общем эта неприятная история отложилась у меня в голове. Может быть это мне так не повезло и я спроецировал ситуацию на все мероприятие. Уже трудно сказать. Человеческая память играет иногда с нами злые шутки.
Знакомство с Иваном Евтуховичем
Люди любят создавать себе кумиров. Всегда должен быть кто-то на кого будут смотреть снизу-вверх и восхищаться.
Одним из таких людей был Иван. По моей информации за несколько лет до этого он работал в одном крупном проекте и так получилось, видимо, что в базах данных он разбирался лучше всех и часто помогал другим ребятам решать их проблемы. Поскольку рельсовый мир был тогда очень маленьким и кулуарным, то слава о парне который решает все проблемы, которые не могут решить другие ребята разнеслась довольно быстро.
У меня странное отношение к людям, которых многие считают кумирами. Я обычно не верю в мифологемы и не испытываю совершенно никакого пиетета перед людьми, которых остальные считают легендами или полу-богами. Ну, человек и человек. Такой же как я. Только, наверное, спит меньше и работает больше чем я.
В перерыве между лекцией и практическим занятием я как и все пошел пить кофе и лопать булочки. За одним из столиков был Иван и что-то с кем-то обсуждал. Я подошел поближе. Что-то слушал, что-то, наверное, пытался рассказать из своего опыта. Не помню точно.
В итоге Иван спросил
— а ты откуда?
— я из Питера. Небольшой стартап. Я так-то еще недавно в школе работал. Сейчас на рельсах делаю фронт.
— Погоди, а это у тебя такой прикольный ник на гитхабе — Тичер?
— Ага, я же школьный учитель. Как мне было еще свой профиль назвать?!
— Я тоже преподавал студентам. Тяжелое это дело. Бывает стараешься, стараешься, разъясняешь, а люди все равно не понимают. Нужно почти под каждую аудиторию находить свой подход.
— Ну, да, не простое. Ты прав.
Сейчас я уже не помню точно, о чем мы тогда перекинулись парой фраз. Возможно даже, что я все выдумал и ничего такого не было. Однако, так или иначе я узнал, что Иван Евтухович каким-то образом знает имя моего профиля на гитхабе. Скорее всего прочитал его в анкете, которую мы заполняли для участия в конкурсе. Приятно было жутко. САМ ЕВТУХОВИЧ! ОГО! Да теперь вернувшись в свой Мухосранск я могу автографы раздавать после такой встречи.
А на самом деле Иван оказался очень приятным и дружелюбным парнем. Один из тех людей которых их любопытство и желание делать свое дело хорошо привело в определенным успехам и известности. Надеюсь и к материальным благам. Мне он понравился и впоследствии было приятно встречать его снова и снова на разных мероприятиях.
Я могу ошибаться, но кажется на том мероприятии я впервые встретил Игоря Александрова. Мы никогда с ним не общались особо и не работали, но по прошествии лет могу сказать, что он тоже один из известных парней в рельсовой тусовке и, как минимум, здорово что брейнвошинг позволил мне познакомиться и с ним.
Возвращение
Второй день Брейнвошинга заканчивался. Меня уже ждал Сапсан до Питера. Я обменялся контактами с парнем с которым мы ночевали и в последствии оказалось, что мы будем работать вместе. Будем вместе решать задачи, фэйлиться, ругаться и ненавидеть друг друга, но в итоге подружимся. Но это уже совсем другая. А пока я мчался домой уставший, но довольный произошедшим.