Холиварофорум

Не все, что говорят на Холиварке — правда!

Вы не вошли.

Объявление

Холиварка празднует День Чтеца!
Ознакомиться с праздничными чтениями можно в соответствующем разделе

#126 2023-10-04 22:44:23

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Как же меня бесят токены в гитхабе вместо паролей  :facepalm:
Ок, я разобрался, как сгенерить токены и какие дать права. Я разобрался, как создать один вид токена, чтобы писать в свой собственный репозиторий, работает.
Я разобрался, как создать другой вид токена, чтобы писать в чужой репозиторий, вот только это нифига не работает, и я получаю ошибку 403, что я не авторизован пушать в репу с этим токеном. Загуглил, нашёл наиболее вероятные причины, пошёл к себе проверять: не, у меня это настроено как надо. Какого же чёрта гит от меня ещё хочет?  :panic: 
Пожалуйста, можно нам не надо, как лучше, можно, чтобы нормально работало без неочевидных часовых плясок с бубнами?  :sadcat:
Пробомбился, стало немного легче.

анон-левел-апер

#127 2023-10-05 00:20:59

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Разобрался, сделал форк от репозитория, отправил свои изменения туда и сделал пулл реквест уже из форка  :chearleader:
Это я снова вкатываюсь в опенсорс, очень рад, что смог разобраться в коде и пофиксить одну маленькую проблему во фронтенде (js), теперь жду ревью от девелоперов проекта.
В принципе, я вижу, что другие реквесты могут долго висеть, потому что проект большой, а девелоперов мало, занимаются они этим в своё свободное время, но посмотрим.
Тем временем с интервью, что было на прошлой неделе, нет новостей, но я и так не ожидал, что пройду  =D
Тревожка зато вернулась, всю прошлую неделю было ниоч, но сейчас уже отпускает.


анон-левел-апер

#128 2023-10-05 23:10:05

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Нашёл интересную статью, We don't have Seniors anymore , там любопытно написано про два типа подхода к решению проблем и приобретению знаний.
Людей, которые ими пользуются, там называют Mappers and Packers, Картографы и Паковщики.

Первые создают ментальную карту мира/области знания со связями, причинами и так далее, а вторые просто запоминают (пакуют в голове) кусочки знания, меньше уделяя внимания пониманию.
Картограф может использовать свои знания, чтобы самому прийти к решению проблемы, в том числе и новой для них, а Паковщик будет полагаться на ответы, которые запомнил/заучил раньше, и если этот заученный ответ не решит проблему, то Паковщик окажется в тупике.

Ну и, конечно, ты не станешь по-настоящему хорошим специалистом, если будешь полагаться на заученные ранее разрозненные куски информации без понимания причинно-следственных связей.
В статье есть и о том, откуда растут ноги проблемы Паковщиков и ссылка на методику Фейнмана, как починить свой подход к решению проблем и приобретению знаний, мне показалось интересным: The Feynman Technique: Master the Art of Learning

анон-левел-апер

#129 2023-10-06 22:32:31

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

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

Показатель кардио фитнесс (VO2 max, сколько кислорода потребляет организм во время тренировки) сейчас перевалил за 40, где-то 40.1-40.3.
А в июле, когда я начинал, он был где-то 37. Прогресс  :chearleader:

анон-левел-апер

#130 2023-11-02 20:50:38

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Я не знаю, что происходит со временем. У него явно непостоянная плотность.
Два часа просто исчезли, а я ничего толком и не успел сделать. Я моргнул - а стрелки на часах скакнули  :facepalm:
Да что ж такое-то, а.

анон-левел-апер

#131 2023-11-05 21:11:30

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Что делает человек, у которого время куда-то исчезает? Правильно, он записывается на третье фехтование!  :chearleader:

То же самое классическое, то же оружие (шпага), два часа утром в субботу, фехтуем с другом преподавательницы классического фехтования, который помогает ей в классе.

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

Сначала разминка, включая стандартный набор: прямой укол, перевод (disengagement), скольжение (glide), ложный выпад (feint), защита. Всё для четырёх позиций/приглашений (первая, вторая, третья, четвёртая). Затем несколько поединков, иногда мы останавливаемся, и подробно разбираем ту или иную атаку, или серию действий, закончившихся уколом с чьей-либо стороны.

Конечно, я пока наношу куда меньше уколов, нежели получаю, но я уже чувствую прогресс, и этот джентельмен говорит, что он есть  :rainbow: И даже мой тренер по историческому фехтованию недавно похвалил, это приятно. Ну и обожаю сам процесс фехтования  :heart:

Правда, вчера я сходила на два фехтования, и поняла, что два класса в день как-то многовато. На историке (сейчас сабля) мне было уже трудно думать  =D Быть может, стоит чередовать по неделям или договориться фехтовать в один день с классическим, потому что на том всё относительно расслаблено, в основном упражнения, где ты ещё ждёшь своей очереди к преподу, помогаешь с новичками, а иногда есть теория. Там нет [пока] такого, что препод объясняет, а студенты потом делают управления друг с другом, как на историке. Ещё немного устала рука, но тот джентльмен сказал, что я 1) сжимаю шпагу слишком сильно всё время (все два часа, а это немало) 2) вкладываю слишком много энергии и силы в движения. Я попробовала фехтовать расслабленней, и руке стало сразу лучше. Но я, пожалуй, пропущу как минимум следующую нашу встречу, чтобы дать руке и мозгу чуть отдохнуть.

анон-левел-апер-фехтовальщик

#132 2023-11-06 15:04:44

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Анон пишет:

Я не знаю, что происходит со временем. У него явно непостоянная плотность.
Два часа просто исчезли, а я ничего толком и не успел сделать. Я моргнул - а стрелки на часах скакнули

жиза, анон!
Будем знакомы :) Зашёл к тебе, залип. Я тоже поглядываю на разработку, но одним глазком и чисто по долгу профессии пока.

#133 2023-11-06 18:39:24

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Анон пишет:

Будем знакомы :) Зашёл к тебе, залип. Я тоже поглядываю на разработку, но одним глазком и чисто по долгу профессии пока.

Привет, анон! Рад, что интересно  :friends: Сил, мотивации и удачи нам  :)

#134 2023-11-09 20:50:59

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Мои пулл-реквесты замёрджили в опенсорс проект!  :happycrazy:

Это было два небольших фикса, один для известного бага, на который уже был тикет, другой фикс - для бага, который я нашёл сам, пока фиксил первый  =D Это приятно, а я продолжаю работать над этим проектом, надеюсь отправить ещё один пулл-реквест сегодня, тоже фикс бага. Но баг более серьёзный и затрагивает уже и фронтенд, и бэкенд (первые два были на фронт).

Я пока прекратил литкодить, чтобы набраться практического опыта разработки, вот и заодно изучаю на практике новые фреймворки, Vue и Laravel, а заодно практикуюсь в php  =D

Я чувствую азарт, когда дебажу, и удовлетворение, когда получается найти причину бага и тем более пофиксить его. Иногда, конечно, мой мозг кипит, потому что вещи бывают очень новыми для меня и/или совершенно неочевидными, но тем приятнее в них разбираться.
Сначала мне было страшно: что я не пойму, не разберусь, слишком сложно. Но потихоньку, шаг за шагом, я приобрёл уже некоторую уверенность. Быть может, когда-нибудь смогу и фичу новую запилить сам.

Вчера стала жертвой маркетинга: увидела тетрадь и сразу схватила, потому что прельстило высказывание на обложке. Оно мне сразу же напомнило, как муж сказал мне "Дай волю своему любопытству", когда я как-то пожаловалась, что мне страшно браться за новые фреймворки и опенсорс-проекты, и у меня трудности с мотивацией, особенно когда учусь сама по себе: потому что боюсь не понять и застрять.
Впрочем, я давно хотела тетрадку, чтобы визуализировать понимание фронтенда и вообще новых штук, а тут ещё и такая мотивация

Скрытый текст

А ещё я заболел и уже пропустил один фехтовач  :sadcat: Температуры нет, только болит горло и голова, но всё равно ощущения так себе. Не ковид, и то хорошо.

анон-левел-апер

#135 2023-11-10 21:02:09

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Когда я уже был почти готов отсылать свой пулл-реквест и проводил последние своего кода, вдруг увидел, что всё-таки, походу,  что-то работает не так  :sadcat:

Скажем, есть содержащая сущность (альбом/корзина и тд), которая содержит в себе другие мелкие сущности. И у этих других сущностей есть разные статусы. В содержащую сущность можно добавлять более мелкие. И вот, когда я добавляю мелкую сущность с одним статусом, все изменения сразу становятся видны. А когда добавялю мелкую с другим статусом - ничего не меняется, пока не обновишь страницу.
И я пока не могу понять, почему. Видел, на какой API уходит запрос, который отправляется только для первого статуса, но нигде не могу найти, где же в коде запрос на этот API происходит. И, смотря в код, пока не могу найти разницу для мелких сущностей с разными статусами. Видимо, где-то глубоко или хитро спряталось.

Ну вот что ты будешь делать, а.
Работаем.

Но что хорошего, так это то, что я всё же чувствую азарт и любопытство  :)

[анон-левел-апер

#136 2023-11-10 22:57:45

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Никак не нахожу времени дописать про привычки, их формирование и следование им, но когда-нибудь обязательно! Заодно поделюсь опытом с привычками, которые требуют много умственной работы, типа вкатывания во что-то новое с самостоятельным изучением.

Относительно простые же привычки, типа прогулок, бега и писательства тем временем дают свои плоды. VO2 max уже примерно 40.8 (когда начинал, был 37).
С писательством тоже неплохо, даже вписывался в некий челлендж, блок ушёл, хотя пока и не пишу каждый день, но уже что-то.
И приучил себя каждый день читать, хотя бы полчаса. Но это тоже далось весьма легко, потому что всегда любил читать.

По-прежнему болею, пропустил ещё одно фехтование, и это дико обидно.

анон-левел-апер

Отредактировано (2023-11-10 22:59:47)

#137 2023-11-11 09:00:23

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Разобрался и починил  :happycrazy:

Почему после добавления мелкой сущности со специфическим статусом в большую сущность эта большая сущность не обновлялась сама?
Потому что метод, отвечающий за добавление мелких сущностей, возвращал в респонсе добавленную сущность, только если у неё был один определённый статус. А если другой, тот специфический, то не возвращал (там было нечто вроде фильтра).
Пронзил это, когда посмотрел на тело респонса для мелких сущностей с разным статусом. У сущности со специфическим тела респонса не было  :dontknow:

Запилил наконец пулл реквест, добавил подробное описание и отправил  :chearleader:
Надеюсь, замёржат в репу быстро и без вопросов  =D

Чувствую себя немного странно, температуры нет, только иногда начинает побаливать горло и голова, щипать в носу, временами тянет в сон. А потом внезапно исчезает, и всё ощущается ок.

анон-левел-апер

#138 2023-11-16 20:46:07

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Я выздоровел, и уже два раза сходил на фехтование!  :rainbow:

На историчке продолжаем саблю, на классическом всё та же шпага, только теперь low line: приглашение, защита в первой и второй позициях, цель, за парой исключений, пониже линии груди.
Сабля очень нравится, но из-за плотных перчаток (которые надо натянуть на тяжёлую куртку с пластиковыми щитками по всей руке) она ощущается иногда не очень хорошо. С другой стороны, это лучше, чем получить рубящий удар по слабо защищённой руке, особенно тяжёлой саблей :dontknow:

Подумал, что свой левел-ап описываю как-то порой хаотично, без структуры, которую хотел бы видеть сам. С другой стороны, структурирование требует больше ментальных ресурсов, чем хаотичное вываливание  =D Но мне кажется, что правильно работающая структура может всё же облегчить дело, так что попробую и посмотрю, хех

Из дыбрового: досмотрел последний сезон "Атаки Титанов"  :sadcat:

анон-левел-апер

#139 2023-11-20 00:34:55

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Пофехтовал на шпагах два часа с утра  :rainbow:  И какой же я счастливый! Это просто эйфория  :heart2:
У меня наконец получается как следует расслабить руку, делать движения не слишком широкими и вообще не вкладывать слишком много энергии, и я этому рада. Сегодня я ни разу не чувствовала боли или усталости в руке, пока фехтовала. 

Каждый раз новые челленджи, пробуешь одно, другое, третье, смотришь, как это работает. Джентльмен с которым я фехтую, друг преподавательницы по классическому фехтованию, иногда спрашивает меня, какие действия я сделала или он сделал, чтобы уколоть оппонента, и некоторые мы медленно повторяем, если я сделала их не так или если они для меня новы. В классе пока ещё не давали контратаки, но я интуитивно пользуюсь парой. Он объяснил их, но я догонюсь ещё теорией, давно пора.

Это было классно, мы много сражались, смеялись, я пару раз попробовала разоружение из исторички, но мой оппонент очень быстрый, и это не всегда работало  =D

Так что утро выдалось отличным: яркий солнечный день, деревья уже разноцветные, тишина, приятная прохлада и два часа обожаемого фехтования на свежем воздухе. Я счастлив  :heart: 

анон-левел-апер-фехтовальщик

#140 2023-11-26 23:32:26

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

[фехтование][левел-ап][дыбр]

Приезжаю на фехтование, тренер закачивает урок с детьми, двумя братьями лет где-то 13 и 10. Говорит мне, мол, анон, давай надевай маску, бери поролоновый меч и наваляй им сейчас! Говорит детям: ну, держитесь, she is really mean. Потом ещё другой чувак приехал, который тоже на историчку, присоединился к нам.

Началось веселье! Бегали друг за другом, иногда тренер объявлял, мол, а сейчас все против анона! Но хорошо быть быстрым и иметь преимущество в росте и длине рук  =D

Старший из братьев (они походу из Японии) в какой-то момент, увидев, что я направляюсь к нему, сделал вид, что вонзает свой поролоновый меч себе в живот, и тут же упал на пол  =D
Разминка вышла очень годная!

Дальше занимались саблей, и мне было трудновато с этим оружием сделать третью форму возобновлённой атаки, потому что там используются ложные выпады, а делать их с саблей мне пока сложнее, чем со шпагой: это не колющие, а рубящие удары. Особенно трудно заставит себя не предугадывать, что будет дальше, уже зная упражнение, а реагировать на реальное поведение оппонента, а тренер несколько раз специально не стал защищаться.

Но в итоге получилось более или менее, а потом у нас были поединки. И в первом я победил тренера! Счёт 10—9  :happycrazy: Потом победил другого чувака, но у меня преимущество: ему 55, он новичок в фехтовании и иногда жалуется на суставы.
А потом был второй раунд, и тренер победил меня  =) 10—7 Но он сказал, что у нас обоих уже заметен хороший прогресс, как в технике, так и в тактике.

Упражнение я мы обычно делаем с современной, лёгкой спортивной саблей, а сражаемся с тяжёлыми историческими. Поняли, что с ними делать ложные выпады выходит [пока] как-то не очень: слишком медленно. Изредка получается, но обычно нет. Надо заняться как следует мышцами рук. Кстати, впервые за долгое время после тренировки у меня заболели ноги. Отлично прошло, я считаю.

И каждый раз фехтование обеспечивает долгий заряд счастья  :heart: 

анон-левел-апер-фехтовальщик

#141 2023-11-29 06:02:16

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

[левел-ап]

[айти][опенсорс проект]
Случилось то, чего я опасался. Я застрял :(

Нашёл нечто, что портит опыт взаимодействия юзера с приложением. Посмотрел, разобрался, всё казалось просто. Починил. Начала тестировать так и сяк изменения, чтобы убедиться, что ничего не поломал - и пожалуйста. Теперь там в другом месте вылезло  странное поведение после моего фикса  :sadcat:

И я никак не могу разобраться, почему так происходит. На фронтенде всё в порядке (вроде бы). На бэкенде - нуууу, я подозреваю, что что-то не то происходит, когда данные пишутся/читаются из кэша. То есть в какой-то момент в кэше оказывается не то, что должно быть. Но где именно, я пока не могу понять. У меня и так много времени заняло разобраться, что это не фронтенд (скорее всего, кек). И кэш в веб-приложении для меня вообще новая вещь, я с ним раньше не работал особо.

Добавил логирование везде, восстанавливаю точную подробную последовательность действий, которые ведут к воспроизведению бага. Что интересно, у меня есть фикс и для этого, но я не могу объяснить, почему он работает. Это просто не подкреплённое пока пониманием наблюдение.

А ещё это неприятно для меня тем, что возникает ситуация, когда я трачу много времени, но нет почти никакого прогресса. И самое противное, что я НЕ ЗНАЮ, когда он будет. Потому что я не знаю эту конкретную область, я вот сейчас в ней разбираюсь и тычу палочкой. Хорошо в самообучении то, что тебя хотя бы не подгоняют и не требуют ну давай быстрей-быстрей-быстрей! Ещё быстрей! Ну найди и скопируй уже со стэк оверфлоу, разберись там поверхностно и побежали быстрее дальше!
И в итоге твоя голова забита обрывочными кусочками знаний, а ментальная карта  этой области знаний полна белых пятен.
Но в самообучении эти пятна заполняются порой медленно, а пути могут оказаться тупиковыми сколько же внезапно всякого мусора в некоторых статьях и блогах, вот ещё и поди разберись, это правдивая информация, дельный совет или фуфло

Тем временем мой прошлый пулл-реквест, который чинит другой баг, всё ещё не замёржен в репозиторий. Ну, подождём.

анон-левел-апер

#142 2023-11-29 10:06:29

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Анон пишет:

но я не могу объяснить, почему он работает. Это просто не подкреплённое пока пониманием наблюдение.

как в некоторой степени новичок в айтишке, я до сих пор с некоторым удивлением и при этом восхищением смотрю на случаи "Работает. Но почему?". Потрясающая сфера.

Анон пишет:

сколько же внезапно всякого мусора в некоторых статьях и блогах, вот ещё и поди разберись, это правдивая информация, дельный совет или фуфло

дааа, жизненно. Очень бесят мусорные статьи, а "ментальную карту" заполнить как-то надо...

Желаю поскорее разобраться!

#143 2023-11-30 08:58:10

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Анон пишет:

Желаю поскорее разобраться!

Спасибо, анон!  :friends: И я разобрался!  :happycrazy:

[левел-ап]
[айти][опенсорс проект]

Вечером того дня, когда написал жалобный пост, просидел до 9:40. Добавил везде логирование, написал из какого модуля и какая функция вызывается, что происходит.
Мне очень помогло посмотреть и сравнить, что происходит в логах, когда есть работающий фикс и когда его нет. Внимательно прошёл по логам и понял.

Дело было в том, что в одной функции после удаления одного маленького объекта инвалидировался кэш с большим объектом, содержащим эти маленькие объекты. Потом, в другой функции, при добавлении маленького объекта этот маленький объект помещался в кэш (пустой). В итоге в UI это выглядело так, что ты из коллекции десяти маленьких объектов удалил один, потом добавил, обновил страницу и вместо десяти объектов увидел этот один, недавно добавленный.

Решением было поменять функцию для добавления маленьких объектов так, чтобы не помещать объект в кэш при удалении, а вместо этого инвалидировать кэш после добавления объекта в базу данных. Таким образом, когда придёт запрос к большому объекту после добавления в него маленького, он увидит пустой кэш и пойдёт в базу данных, которая является единственным источником правды. И таким образом сохраняется консистентность данных.

Так я познакомился немного с кэшем и понял, что лучше его инвалидировать после добавления/изменения, нежели пытаться отразить состояние объекта в нём: база данных скажет о состоянии объекта точнее.

Создал тикеты в гите и отправил пул реквест со своими фиксами  :chearleader:


анон-левел-апер

#144 2023-12-03 20:57:14

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

[фехтование]

Фехтовали с другом преподавательницы спортивного фехтования (пожалуй, пора называть его уже по имени, его зовут Бейзад, он из Ирана, но приехал уже очень давно).
Я пока никак не могу побороть то, что я тороплюсь тут же атаковать, когда упражнение идёт не по плану, то есть препод внезапно парирует мой укол. Вместо того, чтобы тоже парировать, убедиться, что моё парирование успешно и сделать рипост, я почти сразу атакую, что делает это всё похожим на контратаку. Мой мозг знает, как надо бы, а тело делает по-своему -_-


Под конец шпага Бейзада сломалась об меня, когда он делал укол. Я сначала не поняла, что произошло, почему он спрашивает, в порядке ли я, а потом увидела на земле обломок. Она сломалась довольно далеко от острия (с резиновой пупышкой).
У оружия тоже есть свой век. Тот тип шпаг, которые используют в нашей школе, имеет обычно не сменный клинок. Бейзад сказал, что, возможно, она старше меня или даже него, он уже купил её подержанной. Мы начали рассматривать её, он показал мне выцарапанное имя прошлого (или одного из) владельца и клеймо - она была сделана в Италии, в Вероне.
Интересно, что она повидала на своём веку, родившись в старинном городке, оказавшись через океан от места рождения, сменив наверняка не одного владельца и сломавшись в калифорнийской сабурбии.

К счастью, у Бейзада была другая шпага, и мы продолжили. Под конец у меня уже не осталось энергии, и я почти не атаковала, сосредоточившись на защите, и вот тут уже мне наконец удалось парировать и делать рипост в нужном темпе, чему я очень рада :)

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

анон-левел-апер-фехтовальщик

#145 2023-12-05 22:06:02

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

[левел-ап]
[айти][опенсорс проект]

Оба пулл-реквеста, и который чинит баг для сущностей с разным статусом, и который чинит баг с кэшами, были одобрены и заехали в репозиторий  :happycrazy:

анон-левел-апер

#146 2023-12-16 10:26:31

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

[левел-ап]
[айти][опенсорс проект]

Итак, после того, как отправил прошлый пулл-реквест в одну из пятниц и отлично отдохнул и пофехтовал в выходные, я взял себе следующую задачу.

Это был известный в проекте баг, на который даже завели тикет. Скажем так, юзер заводит аккаунт и создаёт-удаляет сущности. В аккаунте есть счётчик сущностей. Баг состоит в том, что счётчик у некоторых юзеров показывает неправильное число.
Я пошёл на свой сервер, где задеплоил свой инстанс проекта и увидел некорректный счётчик, добавил пару сущностей - ура, баг воспроизводится, сейчас буду дебажить.
Разобрался, что происходит на фронте и бэке при добавлении сущности, это было просто.

А вот с удалением было куда сложнее. Я не сразу смог найти нужный роут в списке роутов с указанием метода и контроллера для каждого из них (контроллер отвечает за логику, которая будет применена, если на этот роут (апи) придёт запрос определённого типа - GET, POST, DELETE, etc.). Я искал в файле с ростами по полному роуту и не находил, а надо было искать сначала по суффиксу - и под суффиксом была группа с нужным мне роутом.
А я в итоге ушёл вообще не туда и какое-то время пребывал в тупике, пока не понял, что я пошёл по ложному следу и пытаюсь найти логику для удаления поста в простом редиректе на домашнюю страницу после удаления сущности, кек.

Но когда я понял, что я на ложном пути, я всё же смог найти нужный мне роут и контроллер: иногда очень помогает искать с противоположного конца логической цепочки предположений, а ещё как следует выспаться.

Пока искал и исследовал, я нашёл метод-помощник, чтобы синхронизировать счётчик количества сущностей в аккаунте с их реальным значением в базе данных, а также функцию-команду для командной строки (юзер или админ сервера запускает её в терминале, передав айди аккаунта), служащую той же цели. Это натолкнуло меня на мысль, что, возможно, эта задача сложнее, чем кажется, но я решил если не починить, то хотя бы разобраться и лучше узнать проект.

Нарисовал огромную схему, как происходит удаление и добавление, что откуда вызывается, добавил логирование. Смог подтвердить пару предположений (ложных, скажу я, забегая вперёд). Думал в тот момент, что смог пофиксить добавление (нет).

:dontknow:

Ок, число в счётчик в аккаунте приходит из определённого ключа из кэша, значение в ключ кладёт метод, который делает запрос к модели аккаунта в базе данных. Но почему когда я делаю запрос к бд ко всем сущностям, которые ассоциированы с этим аккаунтом и считаю их, я получаю правильное число, а когда я делаю запрос к бд к аккаунту и вытаскиваю число сущностей, то получаю неправильное число?..  :think:
Потому что я невнимателен и упрт. Потому что число сущностей у модели профиля - это один из атрибутов модели, имя столбца в таблице бд, оно изменяется в явном виде в коде бэкенда. И это одна вещь. А запрос к базе данных, где считается количество сущностей, ассоциированных с конкретным аккаунтом (связь вида один ко многим) - это совсем другое, это консистентные данные, и о консистентсноти заботится бд. А я, дурак, почему-то пребывал в заблуждении, что это один и тот же источник данных… Вообще как-то чисто случайно начал рассказывать мужу о том, что зашёл в тупик, что один запрос возвращает правильные данные, а другой - нет, и вот этот другой это атрибут модели, и вот код явно его меняет… И муж сказал, да, это значение столбца, которое надо поддерживать в консистентном виде, и тут я, озарённый, застыл с раскрытым ртом, а потом хлопнул себя по лбу.
И понял своё заблуждение.

Побежал к компу, начал смотреть с открывшейся перспективы. Увидел, что везде инкременты и декременты на своих местах.

Не вдаваясь слишком глубоко в детали, скажу, что этим же вечером я понял, что  не сразу понял, как работает добавление и удаление постов. Я слишком долго не принимал во внимание пайплайны, которые запускаются отдельной командой и обрабатывают очередь команд. В очереди как раз стоят удаления и добавления. И  специальная команда запускает обработку содержимого очереди на сервере. И пайплайны (по сути те же функции) выполняют основной код удаления-добавления, работают с бд, большинством кэшей и пр. :old: 

После ещё некоторого дебага с пайплайнами я понял, что на самом деле я не могу воспроизвести тот баг, что специальные методы и команды для синхронизации счётчика существуют не просто так, и что я потратил полторы недели впустую и не буду продолжать.

В тот день я был в странном и усталом состоянии, когда мне было тяжело и не хватало энергии думать многие мысли, и я злился на них, что они приходят в голову, а у меня тупо нет сил их думать. К счастью, это не относилось к программированию  - хоть я и был усталым и двигался туговато, но любопытство и желание разобраться уже наконец, как же добавления и удаления работают, не оставляло меня в покое. Я прочувствовал правдивость выражения «охота пуще неволи», лол.
Едва поняв, что я разобрался ещё в части функционала, что баг воспроизвести не могу и «у меня всё работает», я, радостный, что наконец ПОНЯЛ, закрыл ноутбук и отправился отдыхать, проводя остаток вечера за сериалом. И я даже не жалею о времени, которое потратил, так и не пофиксив баг.  :chearleader: 

А вечером следующего дня (то есть примерно сейчас) мы полетели немного развеяться в Остин.

анон-левел-апер

#147 2024-01-08 23:32:07

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

[путешествия][дыбр]

Принесу из прошлого года немного того, о чём хотел написать, но руки не доходили.
В Остин мы прилетели вечером пятницы, он ещё и в другом часовом поясе, +2 часа, так что было уже близко к полуночи.
Оставив вещи в отеле, пошли пройтись до какого-нибудь магазинчика. Мы остановились в самом центре, и стоило нам завернуть за угол, как мы увидели перекрытую улицу, а на улице множество пабов и клубов, светящихся неоновыми огнями, толпы весёлых и тусящих людей и, конечно же, мы услышали МУЗЫКУ! Это была главная тусовочная улица города музыкальной столицы Штатов в пятницу вечером! Давно, признаться, я не видел, чтобы так поздно на улице было так весело.
Купив холодного чая, мы вернулись в отель и заметили беруши на тумбочке с запиской - ну что поделать, такое место, поэтому предлагаем вам беруши. К счастью, заснуть удалось без них, но я проснулся посреди ночи от какого-то шума в коридоре. 4 утра, музыка всё ещё тихо слышна в отдалении, но я тут же снова заснул.
Ах, да: я видел газовые фонари на стене старого здания из красного кирпича!

народ тусуется, Остин не спит

На следующий день мы прогулялись пешком до музея искусств (весьма неплохого!), посмотрели на Капитолий штата, прошли по кампусу универа, потом, ради любопытства - пару миль по сабурбиям.
Остинские сабурбии не особо впечатлили: скучноваты, деревьев как-то мало, дома почти все с низкими потолками. Современные новые дома вроде чуть получше, впрочем.
В музее посмотрели предметы искусства и быта ацтеков, картины американских художников 19 века (в основном пейзажи) и современное искусство.
И, конечно же, 18 век! В числе прочего чудесные Ромни и Гейнсборо: портреты леди Гамильтон и молодого Принца Уэльского (позже Георга IV).
Полюбовался портретами, отразился в старинном зеркале, и отправились долгой дорогой на обед.

дворик перед музеем

Зато понравился центр города. Очень классные уличные музыканты, приятная набережная, похожая больше на тропинку в лесу, специально спроектированный мост и комьюнити летучих мышей в его идеальном микроклимате, ставшее маскотами города, хех.
На улице видели активистов Planned Parenthood, рассказывающих прохожим о миссии организации и предлагающих поддержать.
Мы прилетели на один день ради концерта, но за то короткое время, что было в нашем распоряжении, Остин успел произвести приятное впечатление. Солнечный день, расслабленный народ, музыка и вкусная еда. Кстати о еде - я ещё никогда не пробовал такого вкусного и нежного стейка! Заведение мы выбрали случайно, но, похоже, там трудно ошибиться.

Концерт был прекрасный, ощущения остались яркие и живые.
А там уж и спать было пора, чтобы очень ранним утром улететь домой, где нас встречал дождь.

солнечный зимний Остин
набережная и вид на центр города с моста
красивый и не скучный домик в сабурбии

анон-левел-апер-путешественник

#148 2024-01-15 10:59:16

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Этот анон хотел написать про опенсорс и про фехтование, но вместо этого улетел в новое путешествие, гуляет по Вене и счастлив, восторжен и восхищён  :heart2:

анон-левел-апер-путешественник

#149 2024-02-02 06:23:47

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Пришло время вернуться к безбложику, я наконец отдохнул как следует  :rainbow:

[левел-ап]
[айти][опенсорс проект]

Первая фича в опенсорс-проекте.

В конце прошлого года решил, что хватит только фиксить баги, пора уже и добавлять свои фичи. Выбрал одну, которую хотел бы иметь, будучи активным юзером. Начал смотреть, как там реализована похожая фича. Нашёл стороннюю библиотеку, начал разбираться с библиотекой.

И вот тут я забуксовал. Скажу сразу, что моя ошибка была в том, что я начал сразу искать примеры, как это уже кто-то сделал до меня.
WRONG.
Я промучался пару недель, постоянно отвлекаясь и прокрастинируя, чувствуя себя всё хуже (ещё и болел).
Но стоило мне отдохнувшим и счастливым вернуться из Вены, как я разобрался с фичей и сделал её (очень базовый вариант) за один день  =D  :facepalm:
А стоило просто как следует углубиться в её доки и почитать их повнимательнее  =D А не пытаться сразу же найти похожее и сделать по образцу  :old:

После этого я улучшил фичу, это контролы в UI: поменял их положение с помощью CSS, цвет и прозрачность. В процессе узнал, как применять CSS к вложенным элементам с учётом некоторых особенностей в специфическом фреймворке.
Теперь работаю над тем, чтобы поменять область их действия вокруг них (например, ты нажимаешь не строго на сам элемент, а можешь на несколько пикселей промахнуться и всё равно нажать), но не уверен, возможно ли это без избыточных плясок с бубном.
Отправил PR, написал в чате разработчиков с просьбой фидбека, но пока глухо. Если вообще проигнорят, то не так уж и страшно, я всё равно делаю в первую очередь ради опыта и знаний.
Пока работал над фичей, нашёл несколько багов, один пофиксил. Возможно, потом займусь следующей фичей, косвенно связанной с первой. Чем хорош опенсорс - багов хватает, а свободных рук - не всегда, так что неплохой шанс стать контрибутором.

анон-левел-апер

#150 2024-02-03 08:47:11

Анон

Re: Вращаем бинарные деревья[айти][левел-ап][фехтование][дыбр][yes com]

Порой немного странно думать о том, что напоминает об ушедших.

Книга по фехтованию, на первой странице имя мастера, который её написал, и год его рождения. Когда книга издавалась, он был жив и не знал, через сколько лет уйдёт. Мы разминулись на несколько лет, и я очень-очень жалею, что так и не узнала его лично. А к книге я обращаюсь регулярно.

Зарядка для ноутбука, которую погрыз когда-то котёнок, спасая хозяев от непонятной тонкой змеи. Котёнок вырос, пожил, заболел и ушёл, а зарядка, уже на другом конце света, до сих пор работает. На проводе видны следы зубов, и где-то тонкие проводки вылезли из него и разлохматились. Наверное, скоро и её век завершится, но она пока работает.

анон-левел-апер

Подвал форума

Основано на FluxBB, с модификациями Visman
Доработано специально для Холиварофорума