Вы не вошли.
[путешествия][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, чтобы он автоматически создавал расписание занятий для наступающей недели.
Иногда я чувствую, что меня просто охватывает энтузиазм и страсть, меня прёт, и я колочу по клавиатуре, создавая новые фичи, чиня баги. Иногда я ощущаю, что мозг перегружен, и надо понять, как впихнуть одну вещь, чтобы она не сломала ничего. Иногда это просто скучноватые задачи, которые надо сделать.
Это очень похоже на то, как колотишь по клавиатуре, когда создаёшь фики и ориджи.
И сейчас меня не отпускают обе вещи.
Ложусь вымотанным, но счастливым.
Путешествие вдохнуло тонну новых сил.
анон-левел-апер
[левел-ап][айти]
А потом же ещё мигрировать с записями для старых моделей на новые модели
анон-левел-апер


Спасибо, аноны 
[левел-ап][айти]
Продолжаю обновлять фронтенд после изменения моделей и API в бэкенде.
Всё так же ощущаю себя запутавшимся и не знаю, за что хвататься и как лучше делать.
Вчера и сегодня работал над чекином, когда студент приходит на занятие и отмечается. Ничего не работает
Сложно держать в голове и старое, и новое. И разбираться, почему не работает то, что работало раньше, когда формат данных тот же самый
То ли удалить старое поле, которое FK, и чинить сломавшееся - тут будет сразу видно, где и что сломалось. То ли продолжать запиливать новое и заменять им старое потихоньку. А потом безопасно удалить.
Памагити.
К тому же это один из самых старых компонентов приложения, и я тогда не знал некоторых хороших практик. Практически мой первый фанфик, только на React Native
И иногда у меня смесь бомбления, отчаяния и желания поплакать, потому что пока мне непонятно, что не так и почему не работает. А потом я колочу хоботом машу крыльями дальше.
анон-левел-апер
[нытьё][историческая реконструкция]
Я наконец придумала свой персоне имя и фамилию и чуть больше предыстории. Имя с фамилией долго подбирала, и они очень нравятся!
Написала это всё в нашу группу, координаторам.
Мне ответили.
Что чувак с такой фамлией есть в соседней группе!
И его жена, которая, походу, тоже реконс. Формально они в нашем полку, но из наполеоники. А у нас 18 век.
И в принципе, он даже в другой стране...
Но координатор написал, что может быть конфуз, если слишком много людей с такой фамилией.
Он даже приложил фотку этого чувака с его женой. Я не совсем понимаю, зачем, но ладно, если бы... если бы это была не наполеоника -_-
Там было ампирное платье, да простят меня любители ампирных платьев, если таковые имеются среди моих подписчиков
Я знаю, это может показаться странно и упорото, но именно на этот период в моде у меня жесточайшая аллергия и сквик.
СКВИЧИЩЕ.
И мне срочно хочется развидеть
Так что и про фамилию, и сквик подпортили с утра настроение.
Благодарный пингвин.жпг.
Я спросила, придумать ли мне другую фамилию тогда. Сежу жду.
А мне очень нравится эта.
И да, я помню, что я хотела рассказать про всю недавнюю поездку! Так что скоро будет про Колорадо.
анон-левел-апер-реконструтор
И мне срочно хочется развидеть
Обнял. Обидно, когда такая мелочь может выбивать из себя
Спасибо, анон. Тут редко, но метко, как говорится 
[левел-ап][айти]
Еееееей, я со всем разобрался, всё починил, и теперь фронтенд работает со всеми измененями бэка!
Теперь осталось убрать из бэка старый ненужный код.
[историческая реконструкция]
Мне ответил координатор, но в треде ещё люди спрашивали, надо ли и им тоже придумать детальную предысторию персоны (они в основном занимаются готовкой и меньше общаются со зрителями на выездах), и как лучше и что вообще.
Координатор прислал исторический источник про теме, отвечающий на их вопросы, добавил свои комментарии.
И ничего не ответил на мой вопрос про поиск другой фамилии для персоны! Ну ок, пока будет такая.
[фехтование]
Сломал свою рапиру - не клинок, но арки под гардой.
К счастью, она выдержала урок, а вот поединок - нет. Хотя продержалась до половины.
Разобрал и отправил сломанные части чуваку, который их делает, чтобы починил.
Хоть на пистолетную рукоять переходи -_-
[дыбр]
Осень подкралась как-то незаметно. Сначала просто прохладно, потом шикарный такой ливень, по которому можно шлёпать.
Сейчас снова солнце, но уже нежарко и UV индекс наконец низкий. Деревья пока зелёные в основном.
В "Панда Экспресс" (китайско-американская сетевая фастфудня) появилось наконец новое блюдо с креветками!
У них есть в постоянном меню креветки в медовой панировке с грецкими орехами, но они слишком сладкие.
Появлялись чудесные Пацифик Чили Креветки, а потом исчезли. Вот зачем, почему надо просто брать и убирать, они явно пользовались успехом
А сегодня заехали туда на ужин, я ещё бухтел, что пачиму, а вот пачиму у них так мало креветок, а вот бы приехать, а там новые креветки! И мы приехали, а там новые креветки!
И не только креветки, но и говядина в острой панировке со специями в том же блюде, остался доволен
анон-левел-апер
Вапщееее! Кто молодец? Анон молодец!
Именно так! И какой же кайф потом удалять уже ненужный код!
Именно так! И какой же кайф потом удалять уже ненужный код
Классс!
Поздравлямба!
[путешествия][overlanding]
День 4 - Колорадо
утро и день: разноцветный лес и виды
Мы проснулись в небольшом милом отеле в местечке Палисад.
Выбрали отель из-за сильного ветра и усталости - пока найдёшь место для стоянки, ещё и в такой ветер с поднятым кэмпером как-то не очень, да и раскладывать-складывать в сильный ветер сложно. Да и просто почему бы нет
Когда въезжали в Колорадо предыдущим вечером, я немного напрягся: деревья были зелёными
Но как же так? Мы же смотрели карту, в этом время уже должны быть красивые осенние цвета!
Но решил всё же не расстраиваться раньше времени.
После завтрака мы поехали в горы! И вот тут началось!
Чем выше - тем холоднее и красивее. Облака и туман - они отдыхали ночью, в утром медленно отступали, открывая голубое небо, жёлтые осины, горные озёра
И холод, чуть кусающий лицо и руки. Признаться, от такого я уже отвык, поэтом надел всё тёплое, что было - а было немного - худи и жилетка.
Мы ехали в каком-то постоянном восхищении, словно попали в сказку
Хотели доехать до обсерватории на горе - к ней вела грунтовка, тут мы немного повнедорожили, стравив давление в шинах.
Вид открывался просто захватывающий дух, словно из окна самолёта. И тишина. Господи, как я люблю горную тишину!
И наглые бурундуки.
вечер и ночёвка, животные
Затем поехали дальше, уже искать ночёвку. Спустились вниз - снова стало тепло, осенние цвета ушли. Видели на переезде длинный поезд с насыпанным углём - впервые вообще за много лет.
А потом начались снова горы. Горные перевалы. И ещё более захватывающие виды
Дорога была крутая, узкая, и я читал, что большим кэмперам (длиннее скольки-то футов), туда нельзя из-за узости и поворотов. Мы думали, что из-за этого легко найдём место. Ха-ха. Вроде бы лес, лес, но тут и там среди деревьев мелькнёт чей-то лагерь. Едем дальше. И дальше. Солнце ушло за облака, небо серое, лес золотой.
Видели целый лагерь с лошадьми и машинами для их перевозки.
Наконец вроде безлюдное место с относительно трудным заездом.
Муж пошёл глянуть, но вернулся быстро и сказал, что это место уже занято - там по ручью шлёпал огроменный рогатый лось.
Таких соседей нам не надо. Но чуть жалею, что не увидел его
К счастью, вскоре нашли хорошую стоянку, на холме, ручей остался где-то внизу. Проехали по большой луже на пути к ней. Место красивое, тишина, запах леса, голоса птиц, ручей журчит внизу. Но прохладно.
Начали готовить ужин - пюре и братвурсты.
И тут пришли они.
Очень любопытные олени, парочка. Увидев нас, они навострили огромные уши, и можно было сказать - они замерли в предвкушении. Что их угостят. Они были совершенно не пугливые и долго не хотели уходить.
Дикие животные, даже вроде бы безобидные - не лучшие соседи. Я видел как-то, как дикий индюк внезапно напал на мою подругу и поранил её! И везде можно увидеть рекомендации и плакаты - keep wildlife wild. И я согласен.
Так что пока муж уходил привязывать пакет с мусором на дерево подальше от лагеря, я сидел на откинутом кузове, следя, чтобы они снова не пришли и не начали хозяйничать, не разворошили всё.
В руках у меня был баллончик с медвежьим спреем.
Олени снова пришли, я закричал на них, а потом увидел, как ко мне бежит муж - тут они ретировались.
Потом мы убрали всё кухонное и начали готовиться к вечеру - подняли кэмпер, достали и включили модем. Стемнело и стало как-то стрёмно.
Мы на холме, с налобными фонариками, нас видно. Вокруг нас - лес, кусты, темнота.
Я был готов к тому, что в один момент мой фонарик выхватит из темноты медвежью морду.
К счастью, не выхватил.
Я с удовольствием залез в кэмпер и закрывающаяся дверца была таким приятным звуком
Муж немного погамал на ноутбуке, я потупил в инста, разобрал фоточки.
День выдался очень славный, а впереди ждало ещё много всего.
слайды!
Наблюдение - встретили очень много пенсионеров, пока останавливались тут и там, чтобы погулять. Это понятно, потому что будний день, наслаждаются тишиной природы.
Что не понравилось - почти нигде нет мусорных баков, даже в визитор центре. Я понимаю, медведи и всё такое, но всё же. В Калифорнии вот тоже есть медведи, но и мусорные баки есть - антимедвежьи.
анон-левел-апер-путешественник
Божечки, это все великолепно просто! И фото!!! 
Божечки, это все великолепно просто! И фото!!!
Спасибо 
[левел-ап][айти][нытьё]
Миграция со старых моделей на новые прошла успешно - я добавил null=True, blank=True и "безопасные" проперти в моделях, которые возвращают нужные данные так, чтобы не было исключений. Где надо - вызываю их.
В общем, переполз относительно неплохо, хотя чувствовал себя порой совсем запутавшимся и перегруженным.
Теперь у меня помимо расписания классов есть ещё и занятия - грубо говоря, инстанс расписания. Это продолжение функционала не повторяющихся классов - я создал дополнительную модель (пусть будет Занятие) со временем, датой, отметкой отменено ли и другими полями.
Например, у нас шпага по понедельникам в 8 вечера. Занятие создаётся для конкретной даты и конкретного времени. Его можно отменить, перенести или добавить ещё и во вторник в 9 утра. Занятия сейчас создаются с помощью Celery таски в начале каждой недели на основе их расписания. Но я работа над тем, чтобы можно было добавить занятие вручную. Разрубание матов катанами, скажем.
Итак, я переполз на новые модели, обновил функционал, а потом ВНЕЗАПНО понял - когда начал планировать следующие задачи - что теперь надо добавлять занятия вручную, а это значит, надо пилить ещё такой немаленький кусок во фронтенде.
И это бы ладно, но пилить надо в том числе с календарём, из которого выбираешь дату.
А в React Native с какого-то фига нет очень нужных базовых библиотек которые есть в благословенном свифте, и календарь с возможностью выбора - одна из них
И сейчас я буду бомбиться.
Какого фига этого нет! Того нет, этого нет, сделай сам, епта, очумелые ручки!
Сам я делать, конечно же, не буду.
Я буду выбирать из коммьюнити библиотек.
Чем же плохо?
А тем, что пойди сначала выбери, какая библиотека поддерживается регулярно, а не обновлялась последний раз 5 лет назад.
Какая библиотека имеет приличный вид и удобна в использовании.
И какая заработает без проблем и плясок.
Ну что ж.
А ещё я бы очень хотел закончить первую версию этого приложения и выложить в AppStore и GooglePlay уже в этом году.
Надеюсь, что функционал закончу в октябре.
Потом порефакторю
И надо бы под мобильные девайсы адаптировать (надо бы параллельно, но я дурак). И дизайн задизайнить.
Я хотел сначала сделать основной функционал, не увязая в деталях. Посмотрим, что из этого выйдет.
анон-левел-апер
[левел-ап][айти][нытьё]
UI для выбора даты и времени почти готов!
Но как я выбирал библиотеки для готового календаря и выбора времени - это отдельная история.
Я начал смотреть, что есть.
Нашёл шикарный react-native-datetimepicker/datetimepicker - твой первый выбор.
А я ВНЕЗАПНО осознал, что мне нужен ещё и для web. А в этой либе веб не поддерживается.
Штош. Ищем дальше.
Есть web-ridge/react-native-paper-dates. Он поддерживает веб!
Но там Material Design (стиль Android), на который у меня просто дичайшая аллергия. Ничего не могу с собой поделать, просто не переношу.
Есть farhoudshapouran/react-native-ui-datepicker, который поддерживает веб и кастомизируется. Но обновлялся он 7 месяцев назад, а в issues там спрашивают - эй, есть кто живой? У нас тут куча нужных пулл реквестов ждёт.
Мимо.
И наконец henninghall/react-native-date-picker - и последний коммит 4 месяца назад, и проверки кода зафейлились. Тоже мимо.
Опенсорс как обычно
И тут я узнал про React Native for Web
Это слой между React DOM и React Native. Ты просто проверяешь, что Platform.OS === 'web', потом ставишь @ts-ignore и используешь обычные html-тэги
<input
type="date"
value={переменная состояния для даты}
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
const date = e.target.value;
тут можно установить значение переменной состояния для даты;
console.log(`Date is: ${переменная состояния для даты}`);
}}
style={{
padding: 8,
....
}}
/>Это библиотека для Expo. Я использую его и в принципе очень доволен.
Вот так быстро я получил UI для удобного выбора даты и времени!
Для мобильных платформ возьму первую библиотеку. Можно запилить даже компонент-обёртку отдельный, который внутрни проверяет платформу, а в компоненте-родителе ты просто вызываешь его и передаёшь пропсы.
Осталось продумать и показать юзеру доступное время, которое ещё не занято.
И вот тут не знаю - оставить ли готовый выпадающий список или показать слоты, как у меня уже есть в расписании.
Или показать слоты и оставить выпадающий список, если юзер захочет выбрать не 8:00 или 8:30, а 8:15.
анон-левел-апер
[айти]
Аааааааа! Гитхаб показывает графики в цветах тыквы! :pumpkin:
анон-левел-апер
[дыбр][фехтование]
На прошлой неделе пропустил вообще все тренировки по фехтованию, и историчку, и современные.
На первую историчку не пошёл, потому что был как-то не в ресурсе и хотел провести вечер за парой других хобби.
Потом не пошёл ещё раз из-за того, что сначала обещали с мужем прийти к подруге помочь на Хэллоуин, но посередине дня ВНЕЗАПНО выяснилось, что подруга, вопреки договорённости, ожидает от нас не помощи с декорациями, а помощи с пуганием и раздаванием конфет огромной толпе детей
Я почувствовал подвох, когда она внезапно спросила, есть у нас костюмы и что она может выдать нам маски.
Так что я написал, мол, извини, у нас нет сил и желания что-то совсем - и это было чистой правдой.
Так что провели уютный вечер дома.
И на современное я не пошёл - потому что после обеда у меня жутко скрутило желудок, начало тошнить и охватила дикая слабость, так я мог только лежать и ждать, когда же пройдёт очередной приступ боли.
Не надо было жарить на кунжутном масле, на котором было написано Low Heat
Хоть я и делал так много раз уже, в этот что-то пошло не так.
Тут нужен мем с Малышом и Карлсоном.
- Что-то устал, сил нет...
- А ты сделай, как я - пропусти тренировки!
- Но ты же просто ленивая задница!
- Ты чё, пёс, это забота о себе!
Таким образом, на прошлой неделе я заботился о себе.
ленивай анон-левел-апер-заботящийся о себе
[левел-ап][айти]
Наконец закончил компонент для редактирования и удаления занятия
В какой-то момент понял, что, наверное, зря я завёл переменную состояния в виде мапы - она не сортируется, её надо переводить в массив. А переводить её в массив и обратно - ну такое. С другой стороны, по ней быстро искать.
А ещё у меня несколько переменных состояния, каждая служит своей цели. Одна - быстро проверить, не заняты ли дата со временем. Другая - вытащить всю инфу по айди занятия. Третья - получить все занятия на нужное число.
И обновлять их все при редактировании уже стало сложновато
С другой стороны, одна общая переменная состояния для всех была бы очень сложно и упоротой.
Пожалуй, тут я мог бы наконец поставить точку в функционале первой версии этого приложения. Сделать небольшой рефактор, причесать стили - особенно под iOS и Android. И опубликовать!
Но недавно подумал - а почему бы не показывать все занятия на отдельной странице, в виде календаря на неделю?
Что-то похожее на гугл календарь! И оттуда можно редактировать и удалять занятия.
Пожалуй, буду пилить ещё один компонент.
Или лучше в следующей версии уже, а пока завершать самую первую?..
анон-левел-апер
[дыбр]
Утром впервые съездил на французскую ярмарку в соседнем городке - знакомая с исторического фехтования звала народ, она продаёт там свои милые хендмейд вещицы.
Сама ярмарка оказалась меньше, чем я ожидал: три-четыре киоска с едой на улице, помещение с десятком киосков с украшениями, керамикой, картинами, хендмейдом - сумки, полотенца и так далее.
Купил у знакомой очень милые абсорбирующие полотенца для рук на кухню
Думал купить антикварную шкатулку - маленькую, с толстым гранёным стеклом сверху и по бокам, но что-то так и не решился, не настолько она мне понравилась.
Из еды купил конечно же свежий багет, французские сосисики - тулузские из свинины с вином, луком и травами и бистро-стайл, более тонкие, тоже со свининой и вином, но с другими специями (они в итоге понравились больше). Ещё паштет из куриной печени с белыми грибами и трюфелями и бриошь - сладкую булочку.
Никогда я ещё не видел столько людей в беретах в одном месте
анон-левел-апер