Вы не вошли.
[путешествия][overlanding]
День 2 - Невада и Самое Одинокое Шоссе.
дорога, горы и дожди
О Неваде у меня успело сложиться впечатление как о"driveover" state - его надо просто проехать на пути в более интересный штат. Обычно мы ездили по довольно оживлённой (по невадским меркам) дороге - две полосы в каждую сторону, обгоняющие обползающие друг друга фуры, билборды. Пустыня, не очень впечатляющие горы по бокам, мелкие круглые кусты.
В этот же раз мы поехали по Самому Одинокому Шоссе (US 50) -так называется его невадская часть, которая удалена от городов, проходит по нескольким крупным пустынным долинам, и можно ехать довольно долго, не видя других машин ни спереди, ни сзади, только горизонт. Равно как и заправок и каких-либо признаков присутствия людей.
И это поменяло моё впечатление о Неваде в лучшую сторону.
Где-то в обед мы увидели песчаную гору и свернули посмотреть. Барханы посреди гор - это что-то новое для нас. Почитали, как гора образовалась, увидели, что по горе ездят внедорожники, полюбовались на необычный вид и поехали дальше. Я нашла белемнит.
Дорога эта идёт мимо нескольких горных хребтов, некоторые даже пересекает, и это особое ощущение, когда горы начинаются где-то слева, возвышаются величественно и безразлично перед тобой и уходят куда-то вправо, так что ты не видишь ни начала, ни конца, только горы, нависающие или устремляющиеся вверх, каменистые, фактурные.
Наверное, это уже банально, сказать, что пейзажи неземные, фантастические, нереальные, но именно так они и ощущались. Огромная плоскость пустыни по обе стороны узкой пустой дороги и горы, но как будто ближе и выше. Возможно, повлияло то, что мы ехали вечером, когда собиралась гроза.
Было видно далеко вперёд, и дождевые облака и сами дожди казались как на ладони. И мы медленно, но верно ехали им навстречу, Пожалуй, правильным словом для этого вида будет "грандиозно".
Интересное ощущение, когда ты один на много миль вокруг, наедине с горами и нахмурившимися тёмными облаками, из которых тут и там свисают вуали дождя.
маленькие шахтёрские и старательские городки
Но на одиноком шоссе попадались и маленькие городки. Многие из них возникли, когда было обнаружено золото, серебро, появились шахты. По некоторым видно, что когда-то они переживали серьёзный расцвет, оставшийся, увы, позади.
Мы проехали три.
Один из них совсем маленький но аккуратный и с новыми зданиями - крохотная прачечная, крохотное же кафе с крафтовым кофе, ресторанчик в старинном салуне, тут же антикварный магазин.
Другой больше, с красивым зданием суда и даже со своей оперой.
В нём нас застала гроза. Вечер, свет солнца пробивается сквозь тучи, но уже падают первые капли. Людей на улице почти нет, слышно, как поскрипывают крепления флага у здания суда и как полотнище развевается на ветру.
К счастью, здание оперы - посреди пустыни, в маленьком городе в Неваде! - даже не выглядело заброшенным. Увы, это можно сказать не обо всех зданиях этой Main Street. От кого-то остался только покосившийся, но всё ещё красивый фасад, а буйная растительность зеленеет там, где-то когда-то слышались разговоры и смех.
На выезде из него, на невысоком горном перевале, нас настиг ливень, дворники едва справлялись. Но довольно быстро мы выехали из него и были вознаграждены открывшимся видом на горы, поросшие лесом. Можжевельник, что-то хвойное, практически без травы, но всё же деревья уже выше человеческого роста - лес.
Третий городок был самым большим, и в нём был свой маленький капитолий, приятный парк, монументальная школа из красного кирпича, много кафе и баров в старой части. В новой части много бизнесов типа компаний по аренде строительной техники и т.д. Проехав по жилым улицам, увидели около домов много внедорожников и кэмперов.
Мы встали на ночёвку в горах около него, и утром, к своему приятному сюрпризу, нашли там отличный кофе.
машины и казино
Ещё одно наблюдение этого дня - на этой дороге абсолютное большинство машин, что попадались нам навстречу, было разного рода кэмперами, с редкими вкраплениями обычных пикапов.
Самыми простыми были пикапы, что несли установленные над кузовом складные палатки.
Дальше были такие, как мы - пикапы, но с установленной на кузов оболочкой, создающей маленькую комнату и раскладной палаткой наверху.
Затем - микроавтобусы, вроде Мерседес Спринтер, оборудованные для кэмпинга.
Потом уже специальные RV - Recreational Vehicles, изначально выпущенные для таких целей. Начиная от совсем небольших, с маленьким спальным местом, столом-кухней и крохотным душем, заканчивая огромными домами на колёсах, где есть и стиральная машина с сушилкой, и удобная спальня с гардеробной и кухня с телевизором.
Почему-то мне кажется, что немало из них ехало в Йосемити.
Наверное, рассказ про Неваду будет неполным без упоминания казино. Это один из немногих штатов, где они легальны, и их можно встретить на многих заправках. Небольшой магазин с едой, и тут же - огромная затемнённая зала, откуда сверкают неоновыми огнями, заманивая, блестящие игровые автоматы. Там даже пахнет как-то по-особенному, смесь сигаретного дыма и чего-то, присущего только автоматам - я помню этот запах из детства, так пахли всякие автоматы-тиры и прочие штуки, где можно было опустить монетку и поиграть в игру.
ночёвка
Стоит сказать и про саму ночёвку в Неваде. Мы нашли укромное место на горной дороге, уже после темноты. Навигатор довёл до указанных координат, но вместо чего-то, похожего на место ночлега, мы видели лишь отвесные стены. Мы просто поехали дальше, надеясь, что по пути увидим и разберёмся. Мы не раз радовались, что на 4х4.
В итоге место нашлось, и даже на указанных координатах, только гораздо выше - дорога поднималась по горе, взад и вперёд. Есть в этом что-то - когда свет фар выхватывает из темноты кусочек за кусочком кустов, дороги, камней, а ты всматриваешься. На грунтовке машину иногда качает из стороныв сторону, плавно, словно ты идёшь на корабле по волнам.
Мы запарковались, в небольшом каньончике, между двумя стенами, что хорошо укрывали от разгулявшегося ветра. Приготовили ужин, заварили чай, посмотрели на звёзды. К счастью, грозовых облаков не было видно, так что мы надеялись, что ночью не пойдёт дождь. На стенах каньончика росли маленькие перекрученные деревья, и когда я поднимала голову с налобным фонариком, свет выхватывал их тьмы их силуэты, дрожащие, шатающиеся, словно наблюдающие.
Иы разложили палатку и легли спать.
Утро было солнечное, а каньончик оказался разноцветным и интересным. Он, видимо, состоит из вулканических пород - ноздреватые камни, текстура и форма застывшей лавы в его стенах.
Мы выпили утренний кофе, полюбовались немного пейзажами под утренним солнцем, собрались и поехали дальше.
Нас ждала Юта.
анон-левел-апер-путешественник
[левел-ап][айти]
Тем временем снова вернулся к своему пет-проекту для учёта студентов и классов.
Перед отъездом я остановился на новой фиче - когда юзер создаёт расписание для класса, у него должна быть возможность выбрать время из доступных на этот день и для длительности этого класса временных слотов. Пока юзер мог только вводить время вручную.
Я понятия не имел, как это сделать и как вообще подступиться.
Потом я вернулся из путешествия, отдохнув как следует, и в первый же день, как снова открыл проект, задизайнил эту фичу (BE).
Всё оказалось как-то проще, чем я думал
Сейчас заканчиваю имплементацию на FE - добавил фетч функцию, передал в дочерний компонент как callback, там запилил вью и добавил пару переменных состояния.
Сделать запрос к объектам Расписания на данный день.
Найти занятые слоты - для этого взять один объект, вытащить FK длительности класса, прибавить к времени начала - так получим время окончания класса.
Построить коллекцию из занятых слотов, где каждый элемент содержит время начала и время конца класса.
Найти свободные слоты:
- Слот-кандидат = окончание первого класса коллекции.
- Пройтись по коллекции в цикле:
- Посмотреть, вмещается ли продолжительность класса, который хочу поставить в этот день, между уже существующими классами.
- Пока время окончания класса + продолжительность нового класса меньше времени начала следующего класса, добавляем слот кандидат в массив-результат.
- Слот-кандидат += продолжительность нового класса.
- Можно также добавить шаг, скажем, 10 минут. То есть класс можно начать в 8, а можно в 8:30.
Что делать, если первый класс начинается не с начала дня, а в 15:00? Добавить dummy-классы длительностью 0 в начало и конец, скажем, 8:00 и 21:00!
Вернуть массив со свободными слотами.
Я даже немного воспрял духом - задачка, похожая на те, что из интервью по System Design, в реальной жизни!
Вот что значит хороший отдых и смена обстановки
анон-левел-апер
[путешествия][overlanding]
День 3 - Юта
Про Юту в этот раз мало что могу написать, кроме того, что мы проехали её за несколько часов, проснувшись в Неваде и заснув уже в Колорадо, и того, что она может быть совершенно нереальной, фантастической, причудливой, захватывающей дух, причём совершенно внезапно.
А теперь - слайды. Пока с телефона, потом выложу ещё с фотика.
В этом месте, признаться, у меня перехватило дыхание. Вдалеке собиралась гроза, но солнце ещё освещало скалы. Я хотел было пройти по узкой тропе до самого конца, чтобы насладиться видом как следует, но ветер был слишком свирепый, а пропасть по обе стороны узкой тропинки слишком глубокой, так что развернулся на полпути.
Иногда внезапно перед тобой открывается каньон, разноцветный, сформированный разнообразными эрозиями. В этих местах видели нескольких воронов, огромных и лоснящихся
анон-левел-апер-путешественник
[левел-ап][айти]
Вышел на финишную прямую своего пет-проекта.
Добавляю последнюю фичу для первой версии: возможность иметь классы, которые не периодические. Скажем, случайно раз в год.
И я переделываю модели для базы данных.
А с ними и API.
Потом буду и фронтенд.
Я чувствую себя котом с фотки, над которой как-то кекнул: бедняга раскорячился между двумя стенами, левые лапы на одной, правые - на другой. Держится.
Если бы я сразу сделал дизайн так, что есть не только классы, но и занятия - скажем, есть класс шпаги, а есть занятие по классу шпаги во вторник 2 октября 2025 года в 19:00, мне было бы проще.
Но "It is what it is", как часто говорит мой тренер.
Я добавил новую модель. Связал с моделью Посещения. Обновил модель класса.
Добавил тестовые записи для новой модели. Обновил и потестил API - добавил новый код, чтобы потом просто удалить старый.
Разбираюсь с Celery, чтобы он автоматически создавал расписание занятий для наступающей недели.
Иногда я чувствую, что меня просто охватывает энтузиазм и страсть, меня прёт, и я колочу по клавиатуре, создавая новые фичи, чиня баги. Иногда я ощущаю, что мозг перегружен, и надо понять, как впихнуть одну вещь, чтобы она не сломала ничего. Иногда это просто скучноватые задачи, которые надо сделать.
Это очень похоже на то, как колотишь по клавиатуре, когда создаёшь фики и ориджи.
И сейчас меня не отпускают обе вещи.
Ложусь вымотанным, но счастливым.
Путешествие вдохнуло тонну новых сил.
анон-левел-апер
[левел-ап][айти]
А потом же ещё мигрировать с записями для старых моделей на новые модели
анон-левел-апер
Спасибо, аноны