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

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

Вы не вошли.

Объявление

Внимание! Если у вас в последнее время были проблемы с получением автоматических писем при регистрации или восстановлении пароля, пожалуйста, прочитайте пояснения

#176 2024-06-07 08:26:00

Анон

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

[левел-ап]
[айти][iOS]

Меню для выбора типа оповещения (в данном случае - постукивания по руке в часах) в заданной ли зоне пульс или нет - готово ✅
Демонстрация выбранного типа на часах, в тот самый момент, когда юзер выбирает на телефоне - готово ✅

Помимо этого:

  • Переделка внешнего вида приложения на часах - ✅
    1) выбирать зоны из заранее рассчитанных
    2) выбирать пролистывая их прикосновением к экрану или вращая колёсико на часах

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

    • Возможность отправлять установленную зону с часов на телефон, а не только с телефона на часы (для лучшей синхронизации) - ✅

    • Выбор самой последней по времени настройки при автоматической синхронизации, когда есть два варианта значения - ✅

И заодно я посадил в приложение баг  :panic:

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

Так что следующие шаги

  • Найти причину бага - 🚧

  • Починить баг (тут может потребоваться некоторый пересмотр дизайна самого приложения) - 🚧

[дыбр]

С зубами уже полегче, хотя всё ещё повышенная чувствительность в том месте, откуда их удалили, особенно когда быстро ходишь или бегаешь (но не когда фехтуешь!). Тем не менее я начал возвращаться к прежнему уровню активности, а то VO2 max упал вообще на единицу и болтался в районе 36. Сейчас уже 37.2, но я бы хотел, конечно, дойти до 40.
Прошедшую пару недель никак не отпускали лёгкие слабость и усталость весь день, аппетит стал хуже. Но сейчас вроде уже полегче. Стараюсь больше гулять и бегать, как раз на улице теперь долго светло, вовсю цветут розы, жасмин и жакаранды.

Заказал себе bullet journal (мой первый), очень красивый и приятный на ощупь дневник мидори на 10 лет (один и тот же день каждого года, один день - один разворот) и тетрадь с красивой обложкой и простыми страницами, просто для мыслей, от Clairefontaine. Ещё цветных гелевых ручек и картриджей для перьевой ручки - в ней как раз закончились чернила, и это я обнаружил внезапно. Перьевую ручку я захотел попробовать недавно, и мне она очень нравится: ощущения при письме, как выглядит написанное, да и сама по себе тоже.

Наконец купил черешни.

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

Отредактировано (2024-06-07 08:28:01)

#177 2024-06-11 22:05:23

Анон

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

[левел-ап]
[айти][iOS]

Анон пишет:
  • Починить баг (тут может потребоваться некоторый пересмотр дизайна самого приложения) - 🚧


Что ж, этот день настал. Нужен редизайн приложения.
Я показал мужу баг, когда понял, что мне нужен совет и взгляд со стороны, и он объяснил, что с архитектурой приложения есть проблемы.
Вообще, по-хорошему, я должен был как следует продумать это ещё до имплементации, но  :dontknow:

И редизайн мне даётся не очень легко. У меня вообще нет особого опыта или знаний в этом, несмотря даже на то, что я готовился к системному дизайну для интервью и вообще на весь опыт работы, потому что на работе обычно было: "Вот это наша система, да, это велосипед на костылях, но он работает худо-бедно, а нам сейчас приоритетнее быстрее запилить новые фичи и быстрее покрыть их автотестами". Ну и непосредственно ре(дизайном) я не занимался особо. Ну да, давай оправдывайся, это всё кто-то другой в твоих пробелах виноват лел
Когда я начал своё приложение, у меня была цель сделать MVP, и я не особо думал о том, что приложение надо бы придумать таким, чтобы можно было расширять, добавлять что-то новое без риска поломать всё. Потом на этот скелет я наращивал всё больше, и в итоге нарастил неправильно, и у меня получился головожопног  :panic:
В итоге, вместо того, иметь одну конкретную чёткую изолированную обязанность, классы у меня просто хранилища кода :facepalm: Ненужные зависимости там и тут, зачем-то переменные для хранения одной вещи дублируются в разных классах, имена не отражают их обязанности и вообще.

Хорошая вещь в том, что я наконец вникаю в дизайн приложений. Есть очень годная книга DesignPatterns: elements of reusable object-oriented software (Приёмы объектно-ориентированного проектирования, паттерны проектирования). И мне непросто понимать то, что там написано, даже с примерами мне не всегда понятно, какой паттерн лучше подходит для моей конкретной ситуации  =D Но я не сдаюсь, и читаю до тех пор, пока не станет хоть немного ясно. Конечно, обсуждения на SO и том же реддите весьма помогают лучше понять.
Но блин, иногда сложно, когда надо применить концепт, а я его забыл или не увидел в этом конкретном случае. Или не знаю. И сообщение об ошибке вроде и понятно, а почему эта ошибка возникла - уже не очень :(

Итак, основные задачи по редизайну сейчас:

  • Переименовать классы в соответствии с их обязанностями, использую общепринятый подход ✅

  • Поместить все настройки в специально созданный для них класс (класс типа Модели) и убрать ненужные переменные и зависимости 🚧

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

Отредактировано (2024-06-11 22:14:08)

#178 2024-06-22 00:15:16

Анон

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

[левел-ап]
[айти][iOS]

Рефакторинг в процессе, сейчас сделано:

  • Поместить все настройки в специально созданный для них класс (класс типа Модели) и убрать ненужные переменные и зависимости ✅

Я узнал (или вспомнил, точно не скажу) про дженерики. Создал дженерик тип для каждого типа настроек, у него есть значение, дата-время, функции для слияния с другим объектом такого же типа (кто был создан позже, тот и будет возвращён) и функция для обновления значения, которая обновляет ещё и дату.

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

  • Чтение и запись в UserDefaults, чтобы приложение сохраняло настройки пользователя, чтобы не надо было их каждый раз выбирать заново - ✅🚧

Сделал чтение настроек из UserDefaults (хранилище типа ключ-значение), сделал запись туда.
Так как у меня кастомные типы для настроек, то не получится хранить их просто так, надо преобразовать их в один из типов, что принимаются в UserDefaults, Data. Для этого надо закодировать/раскодировать в JSON. Для этого надо, чтобы мой класс модели данных подчинялся протоколам Encodable, Decodable (Codable).
А этот класс был ObservableObject с @Published обёртками вокруг полей. Это для того, чтобы использовать их напрямую как переменные во view (отображение данных в UI), чтобы их изменения отслеживались, и сразу же происходил ререндеринг.
Но @Published не подчиняется протоколу Codable  :blue: Так что теперь я не могу использовать поля класса напрямую во view. Там пришлось объявить локальные переменные. Потом я нашёл статью, где рассказывают, как можно сделать так, чтобы @Published всё же подчинялся потоколу... Но там есть нюансы и пара пируэтов с бубном. В итоге я закончил с практически одинаковым кодом в двух местах - init() в классе модели и в отображении (для консистентности сохраняемых в UserDefaults данных, потому что без явного инита в классе модели у некоторых полей были дефолтные значения при сохранении, происходящем в UI).  :NOOO:
Свежий взгляд со стороны показал, что в классе модели init() можно убрать, а при сохранении просто делать слияние, чтобы все значения всех полей синхронизировались.

Сейчас чтение и сохранение настроек работают, код не повторяется. Но надо бы сделать отдельный класс для инициализации настроек из UserDefaults, пожалуй. Не нравится, что у инстанса модели данных дефолтные значения (memberwise initialization, а без инита не получится сделать декодирование настроек из JSON в объект кастомного типа  :dontknow: )

[дыбр][iOS]

Смотрел WWDC24 (пока ещё не весь), понравились некоторые обновления на часах, наушниках, телефоне, макось Секвойя выглядит ничего так - возможность работать на виртуальном экране твоего телефона с ноутбука хороша. Математический редактор на планшете, в котором можно писать от руки  :heart:
Но как же убого, имхо, выглядит обновление для фоток на телефоне, Боже  :facepalm: Я понимаю, что меньше кликов, всё такое, но как же я не хочу всё на одной странице, чтобы альбомы находились сразу под фотками  :facepalm:

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

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

#179 2024-06-22 00:36:22

Анон

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

[левел-ап]
[айти][iOS]

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

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

#180 2024-06-23 05:05:52

Анон

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

[левел-ап]
[айти][iOS]

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

Так что начал работать над отдельным классом для загрузки значений из UserDefaults в поля инстанса класса модели данных и отображения их во вью. Потому что этот класс не должен подчиняться протоколу Codable и может быть ObservedObject.

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

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

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

Это интересно, объяснять фехтование с самых основ. Я успела рассказать про оружие (начали с рапиры, конечно), про важность разминки, провести короткую разминку, потом большая часть времени ушла на то, чтобы у новичка получилась более или менее правильная стойка, фехтовальный шаг вперёд и назад, выпад. Я старалась отслеживать малейшие детали и делать коррекции, объясняя, почему надо именно так. Успела научить делать три прямых выпада по команде, со всеми замечаниями и поправками. В принципе, вышло неплохо, у новичка начало получаться. Друг тренера сказал, что всё прошло хорошо, все необходимые коррекции были сделаны, и сделаны правильно, иногда он тоже давал объяснения.
Одна из основных вещей с некоторыми новичками - чтобы они не боялись и не стеснялись делать укол оружием. С этим новичком понадобилось четыре попытки и помощь мастера, чтобы он убедился, что точно-точно 1)мне не больно 2)я не обижаюсь 3)на мне несколько слоёв специальной защиты 4)клинок рапиры специально загнут, образуя узелок, и на нём ещё резиновая пупышка.

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

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

#181 2024-06-26 02:49:43

Анон

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

[левел-ап]
[айти][iOS]

Итак,

  • Чтение и запись в UserDefaults, чтобы приложение сохраняло настройки пользователя, чтобы не надо было их каждый раз выбирать заново - ✅

  • Отдельный класс для загрузки значений из UserDefaults в поля инстанса класса модели данных и отображения их во вью - ✅

Теперь настройки с часов без передаются и отображаются на телефоне. В новом классе (в этот раз название придумал весьма быстро) инициализирую класс модели со значениями из UserDefaults, присваиваю его @Published переменной и отслеживаю изменения во вью как у ObservedObject, без плясок с бубном. Ну почти, потому что у меня есть контрол для выбора цветов, и поле модели данных (настройка) для него имеет кастомный тип, не Color, который нужен для хранения значения в этом контроле, поэтому совсем обойтись без локальных переменных [пока] не вышло.

Осталось порефакторить ещё пару вещей:

  • Стартовать тренировку с телефона по нажатию кнопки (пока просто закомментировал код с ней) 🚧

  • Демонстрация оповещения на часах (постукивание по руке), когда юзер выбирает тип оповещения из списка настроек оповещений на телефоне (это я тоже закомментил, потому что криво сделал архитектуру) 🚧


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

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

#182 2024-06-27 09:08:21

Анон

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

[левел-ап]
[айти][iOS]

  • Стартовать тренировку с телефона по нажатию кнопки (пока просто закомментировал код с ней) - ✅

Добавил обратно кнопку, обработку её нажатия во вью телефона, отправку и приём в классах, отвечающих за передачу данных. Порефакторил вью для часов.
Потестил всячески.
И обнаружил баг  :dontknow:
И, кажется, ещё один  :think:

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

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

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

Сегодня маэстра на несколько минут отошла и оставила меня проводить разминку - шаги вперёд и назад и выпады. У нас появилось несколько новичков, так что она сделала разминку простой (ни репризы, ни прыжка назад, например). Я проводил разминку, одновременно сам выполняя свои команды, стараясь, чтобы все меня слышали, и маэстра, вернувшись, кажется, осталась довольна.

Весь урок практиковали педагогику с новичками (я и ещё одна девочка, которая начала заниматься вместе со мной). Сначала прямые уколы с выпадом и ещё одну простую вещь (disengagement, перевод) с совсем-совсем новичками, потом более сложный урок со старыми новичками - действия на оружие (actions on the blade). Как же много вещей надо держать в уме и обращать на них внимание, когда учишь. Смотришь за своими действиями, за действиями того, кого учишь, и координируешь их. Но мне всё больше нравится, хотя я бы и сама хотела поучиться чему-то более сложному у маэстры. Но, возможно, она хочет, чтобы мы лучше освоили то, что уже знаем, посмотрев на это с "другой стороны" и лучше поняв логику и механику.

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

#183 2024-06-28 19:05:14

Анон

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

[дыбр]

Недавно был дождь! Летний дождь!  :chearleader: Здесь такого практически не бывает, дожди начинаются поздней осенью и заканчиваются обычно ранней весной, а тут поди ж ты! Горячий воздух, нахмурившееся небо, запах мокрого асфальта  :heart:
Ещё из нового - я сходила и подстриглась. Начала наконец носить длинную бохо-юбку, из бежевого льна, длинную, с кружевными оборками, она так классно колышется при ходьбе.

Открыли для себя новый жанр в аниме - про еду и её приготовление (Cooking manga). Я не знаю, как так вышло, что только сейчас, при всей моей любви к еде  =D Посмотрели Delicious in Dungeons, теперь Campfire Cooking in Another World with My Absurd Skill - ГГ попал в другой мир, у него есть суперспособность - он может покупать продукты онлайн. И вот он путешествует и готовит. И кормит своих очень милых фамилиаров.
Такие вещи лучше не смотреть на голодный желудок  =D Так что вчера смотрели аниме, поедая тоноктсу рамен (быстрого приготовления, правда, но весьма достойный). 

И ещё про сериалы. Посмотрели недавно "Бодкин" и "Под мостом", оба очень понравились.
Бодкин - отличная чёрная комедия/детектив/триллер. Подкастеры и журналистка приехали в ирландскую глубинку расследовать таинственные исчезновения и оказались замешаны в события, начавшиеся много лет назад. Неторопливо, постепенно история разворачивается, и всё больше людей оказываются замешаны в ней. Трагедии, тайные родственные узы, надежды, их крушение и обретение. Проблемы и сожаления, что тянутся за главными героями. Показано живо, интересно и в чём-то трогательно. Ну и жизнь ирландской глуши (и монахини с йогой и волшебными грибами на острове).
Под мостом - тяжёлая история, основанная на реальных событиях. Школьная травля, взросление, поиск своей компании, жестокость и предательство, исчезновение и долгий поиск пропавшей девочки-подростка (увы, всё закончилось очень плохо), отчаяние семьи. Прошлое, что всё ещё влияет на настоящее, поиск ответов и правды. Можно ли отделить человека, его суть, от ужасных вещей, которые он сотворил? Разгадка будет показана лишь в самом конце, и для меня она стала, признаюсь, немного неожиданной.
В конце рассказывается, что стало дальше с теми, кто послужил прототипами персонажей.

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

#184 2024-07-16 02:45:54

Анон

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

[дыбр]

Съездили на 4 июля в Бостон, послушали чтение Декларации Независимости с того самого балкона, где она впервые была прочитана 249 лет назад. Я ожидал реконструктора в мундире, но в этом году был современный военный дядечка. Зато реконструкторы были на параде и стреляли из мушкетов! В первый раз я аж подскочил: так громко это было.
Потом просто погуляли по городу, купили канноли в Маленькой Италии (хрустящая трубочка с рикоттой или маскарпоне), и несколько раз прохожие нам что-то говорили: то а как далеко этот магазин, то что это лучшие канноли, что они пробовали. Наконец после прогулки взяли холодный кофе, попробовали наконец канноли, и они были совершенно чудесными.
Дошли наконец до кладбища на Коппс Хилл, в прошлый раз не хватило времени. Кладбище старое и прекрасное, на холме, с огромными деревьями. Мало где я ощущал такое умиротворение и спокойствие  :heart:
Единственной неприятной вещью была высокая влажность, давно уже отвык от такой. В Калифорнии бывает жарче, но воздух более сухой, на восточном же побережье, хоть и больше зелени летом, но ходить по улице днём душно.

Дальше через Нью-Йорк в Рим, три дня там, потом столько же в Неаполе  :heart2:
Побывали в Ватикане, и собор Святого Петра просто поразил своим величием и великолепием, ещё и застали орган и пение, и яркие лучи утреннего света из окон. Поднялись на купол - и я часто взывал к Всевышнему, потому что лестницы были крутые, узкие, бесконечные, наклонные, а влажность и температура высокие с самого утра (чуть ли не хуже, чем в Бостоне). Но виды того стоили!
Встретились за ужином со знакомым итальянцем, который приезжал к нам показывать фехтовальные мастер-классы, попробовали по рекомендации его друга-шефа божественную карбонару.
Были в Помпеях, в тот же день поехали в Сорренто :heart:
Сам Неаполь тоже очень впечатлил, я ещё не был в южном итальянском городе: хаотичные узкие улицы, сушащееся снаружи бельё, старинные прекрасные церкви, обшарпанные стены домов, ставни-жалюзи на всех окнах, маленькие ниши со свечками, иконами и статуями святых в стенах домов, мотоциклисты на веспах, беседующие и жестикулирующие на ходу, суровые бабушки на балконах и ресторанчики на каждом углу, остатки древнеримских построек на станциях метро.
И пицца, знаменитая неаполитанская пицца  :rainbow: 
Было много-много красоты и впечатлений, ощущений и восторгов, новой и уже знакомой вкусной еды. 

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

И да, как же хорошо дома!

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

#185 2024-07-25 00:31:55

Анон

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

[левел-ап]
[айти][iOS]

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

Обнаружил в приложении для часов поведение, которое мне не очень понравилось: юзер запускает приложение, и первый экран, что он видит - это скриншот с прошлого запуска. Например, юзер в прошлом запуске делал какое-то упражнение, ему приложение показало пульс и сообщение "Быстрее!" на фоне определённого цвета. Юзер закончил упражнение, вышел из приложения.
И вот юзер запускает его снова, а там этот экран с прошлого раза. Да, он быстро исчезает, но всё же.
Начал гуглить.
Узнал, что UIKit периодически делает скриншоты.
Нашёл метод, позволяющий не отоброжать ранее сделанные скриншоты, ignoreSnapshotOnNextApplicationLaunch().

As part of the state preservation process, UIKit captures your app’s user interface and stores it in an image file. When your app is relaunched, the system displays this snapshot image in place of your app’s default launch image to preserve the notion that your app was still running.

Я было обрадовался:

If you feel that the snapshot cannot correctly reflect your app’s user interface when your app is relaunched, call this method to let UIKit know that it should use your app’s default launch image instead of the snapshot.

А потом увидел, что это не для всех платформ, только для iOS 7.0+, iPadOS 7.0+, Mac Catalyst 13.1+, tvOS 9.0+, visionOS 1.0+
Словом, не для watchOS.

Ну что ж.

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

#186 2024-07-31 14:46:47

Анон

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

Залпом прочитал бб. Анон, ты очень крут! :heart:
Я околоайтишник, понимаю через слово,но очень интересно. Очень нравится читать как ты ставишь цели и двигаешься к ним, как ты находишь проблему и ищешь путь ее решения и решаешь)))
Я тоже занимаюсь историческим фехтованием. Бб зацепил взглядом именно из-за него)
Так прикольно видеть какие-то общие моменты в обучении) я, правда, в основном занимаюсь палашом (singlestick). Одновременно с рапирой не вывожу пока.
Расскажи, сколько раз в неделю ты занимаешься? Сейчас получается, ты больше с рапирой именно работаешь? (В начале ты писал, что у вас сменялось оружие). У вас проводятся турниры? Ты участвуешь?

АПД: пока писал, совершенно забыл. У тебя очень красивые фотографии! Вижу, к сожалению не все, но те, что вижу красота *____* самое обидное, не вижу рапиру

Отредактировано (2024-07-31 15:38:27)

#187 2024-08-01 08:24:39

Анон

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

Анон пишет:

Залпом прочитал бб. Анон, ты очень крут! :heart:

Awww, спасибо :3  :rainbow:

Анон пишет:

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

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

Анон пишет:

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

Здорово!  :heart: С таким оружием я ещё не сталкивался, посмотрел в интернете и не понял до конца, палаш ближе к сабле или мечу? И как выглядит твой?
Про общие моменты, которые ты увидел, тоже было бы интересно  :timid:

Анон пишет:

Расскажи, сколько раз в неделю ты занимаешься? Сейчас получается, ты больше с рапирой именно работаешь? (В начале ты писал, что у вас сменялось оружие). У вас проводятся турниры? Ты участвуешь?

Занимаюсь 3 раза в неделю: 1 день историческое, 1 день спортивное современное, 1 день как пойдёт, но в основном тоже современное. Иногда с другом фехтую по субботам, если получается.

На современном фехтовании больше всего, как относительно начинающий, работаю с рапирой (foil), но иногда со шпагой и саблей тоже.
На историческом фехтовании оружие меняется каждые месяц-другой, в этом были рапира (историческая, то есть тяжёлая шпага, емнип) и даггер. Может показаться поверхностным, но наш тренер говорит, что он учит в основном общим принципам, а потом показывает, как они применяются на разном оружии с его особенностями.
Моё любимое - smallsword, оно же лёгкая шпага, оно же шпага-дворянка (я обожаю 18 век  :heart:). Второе любимое - двуручный меч :3

Именно наш клуб турниры не проводит, потому что маленький, но некоторые люди ездят на турниры, где сразу много клубов. Я не езжу [пока] в основном из-за того, что не чувствую себя готовым, мне ещё учиться и учиться. Я бы сходил в будущем на турнир по лёгкой шпаге, а вот насчёт турнира по двуручнику не уверен. Как минимум, сначала узнал бы, есть ли весовые категории на конкретном. Потому что не хочу оказаться Давидом против Голиафа, когда правила прямо запрещают пращу и всё ей подобное  =D  Из рассказов тренера, я понял, что часто разрешена рукопашная, и что получить перелом или сотрясение - вопрос времени и количества посещённых турниров, я на такое не готов ради какого бы то ни было хобби, лол.
Но у нас иногда проводятся спарринги с поинтами и дальнейшем разбором и объяснениями, там иногда участвую. Ну и сам процесс интереснее того, чтобы как можно быстрее получить как можно больше очков.

Анон пишет:

АПД: пока писал, совершенно забыл. У тебя очень красивые фотографии! Вижу, к сожалению не все, но те, что вижу красота *____* самое обидное, не вижу рапиру

Спасибо, анончик! Фотографировать я тоже очень люблю  =)
Рапиру не выкладывал, мол, ну рапира как рапира, но как-нибудь покажу))

#188 2024-08-01 09:53:19

Анон

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

Анон пишет:

А ты чем занимаешься, если не секрет?

я по образованию программист, но так получилось, что по работе не программирую. Работаю с базой данных, пишу запросы и проверяю расчеты/алгоритмы наших программистов. Это если кратко и без подробностей))

Анон пишет:

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

Вот да, я иногда прямо люблю "копать")) В основном, правда, ошибки)

кат, а то я тут разошелся

#189 2024-08-02 04:29:03

Анон

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

Анон пишет:

Вообще синглестик это именно тренировочное оружие (дерево), подготовка к использованию палаша/спадрона (Spadroon). Это именно рубящая техника. К чему он ближе тут сложно, потому что очень многие виды оружия у тех же британцев назывались sword)) В моем понимании спадрон ближе к мечу, но я не эксперт, клинок у него обычно прямой. Например, у британцев в армии спадрон был долго, где-то до середины 19 века, а вот на смену ему пришли уже сабли. У меня спадрона нет он дорогой, есть у моих соклубников, постараюсь найти фото и показать))

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

Анон пишет:

но почему-то именно это на меня произвело впечатление. Вот такое "о люди на другой стороне шара делают похожее/тоже самое"))

Понимаю!

Анон пишет:

слушай ты крут! Я сейчас занимаюсь 4 раза в месяц, пока не могу чаще. В прошлом году смог выйти на 6 занятий в месяц и видно было как я начал расти, но по личным причинам выпал((

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

Анон пишет:

Вот фойлы у меня есть трехгранный и четырех.

А вот моя, четырёхгранная

Скрытый текст
Анон пишет:

в любимцах полностью солидарен))

:friends:

Анон пишет:

Мы устраиваем минитурниры в рамках клуба, иногда приглашаем соседей.

А ты участвуешь? Как впечатления, как по очкам?

Анон пишет:

о, в таком случае, конечно. рукопашная это тоже исторично, но в нашем клубе не разрешено))

Мы рукопашной посвящаем где-то минимум треть занятия - тренировка падения, захваты, броски, с подробными объяснениями, как правильно делать и почему. И как делать безопасно для себя и противника  =D Но на боях с судейством не используем, только на обычных спаррингах в конце занятия, если получится (противник подобрался слишком близко).
С двуручным мечом ещё используем технику half swording, когда ты берёшь клинок меча второй рукой в рукавице и используешь его как рычаг в рукопашной. Ну или для более сильной и быстрой колющей атаки. Так-то не во всех школах двуручник использует так, но мы практикуем Фиори, а там можно и рубить, и колоть.


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

#190 2024-08-03 22:49:39

Анон

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

[левел-ап]
[айти][iOS]

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

Начал гуглить. Нашёл классный эппловский же фреймворк для метрик. Уже размечтался, а потом посмотрел внимательнее... Ну да, ну да. watchOS для вас шутка, что ли? Снова что-то классное не поддерживается на часах  :blue:

Хорошо, пошёл искать другие фреймворки. Я не знаю, то ли я не умею гуглить, то ли просто лапчатый, но почти ничего не нашёл. Ну вот Sentry, потому что я раньше про него знал. Пошёл ныть к мужу, а он 1) порекомендовал классный фреймворк 2) загуглил при мне "альтернативы КлассномуФреймворку", и тут пролился дождь из фреймфорков для метрик. Ну ладно. Начал изучать и выбирать. А как выбрать, когда ты большинство видишь в первый раз, а имена тебе ничего не говорят?.. По идее, имеет смысл пробовать наиболее известные - о них и больше людей слышало, и фичи всякие у них есть, и коммьюнити и бесплатные версии

В итоге потратил где-то день, изучая и сравнивая: кастомные метрики, бесплатная версия, хорошая аналитика с настраиваемыми репортами, поддержка свифта. Иногда минут 5-10 потратишь, прежде чем найдёшь на сайте раздел для инженеров - какие языки поддерживаются и как вообще внедрить. Так-то понятно, в основном это для ПМ-ов, наверное, но всё же.
В итоге выбрал один, начал разбираться и прилаживать к своему приложению.

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

#191 2024-08-09 09:06:44

Анон

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

[левел-ап]
[айти][iOS]

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

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

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

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

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

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

В выходные наш клуб показывал демо на фестивале - сражения, маленькие сценки. Я был с лёгкой шпагой и с саблей, ещё была сценка, где тренер бросался на меня с кинжалом, а я ставила блоки, выкручивала ему руки и швыряла его разными способами на землю.
Было очень весело и здорово!  :love: А ещё вкусная еда и лимонад. И реконструкторы, древние римляне, встали рядом с нами! Показывали гладиаторские бои. Почти как у нас, только с гораздо меньшим количеством защиты - только шлемы, да поножи. А шлему прямо как на обложке книги про гладиаторов из серии "Что Есть Что", которая была у меня в детстве!

Сегодня фехтовали с Бейзадом на рапирах, я практиковала спокойствие и концентрировалась (большую часть времени) на защитах. Потренировала Expulsion (на нашла перевода) - одно из действий на оружии, actions on the blade (один вытягивает руку с оружием, а другой что-то с этим оружием делает свои клинком).
Всё ещё чувствую, что не восстановилась полностью, снова как будто не хватает объёма лёгких вдохнуть весь воздух, который хочется, как год назад, когда я начала регулярно бегать и ходить. Ещё и VO2max вообзе до исторического минимума упал.
Но ничего, возвращаюсь к прежнему уровню активности.

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

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

#192 2024-08-12 21:42:45

Анон

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

[левел-ап]
[айти][iOS]

Сейчас будет нытьё.

Понял, что запутался в юнит-тестах и в асинхронности, расстроился и в сердцах упал в: "Я тупой!" 
:facepalm:  Потом от самого себя же испытал кринж.

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

Иногда самостоятельное обучение даётся тяжело, потому что я не понимаю - вот тут я правильно поняла или нет? Вот подход, который я выбрала - насколько хорошо он подходит? Я вижу входы в лабиринт с земли, но не вижу сам лабиринт с воздуха, куда ведёт каждый вход. СО и посты в интернете иногда помогают, иногда нет. Обидно, что иногда тратишь больше времени, чем хотелось бы а потом понимаешь, как на самом деле всё было проще, чем сама себе навоображала  :pink: Ну что ж, this is the way, I guess. Очень хорошо, что иногда могу спросить мужа, но не хочу дёргать по пустякам, да и хочется самой сначала попробовать разобраться.

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

P.S. На привале съела моти с зелёным чаем и выпила зелёный чай

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

#193 2024-08-18 07:59:41

Анон

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

[левел-ап]
[айти][iOS]

Разобрался с асинхронностью, async/await, тасками и акторами - разобрал очень детально простой пример, прочитал доки несколько раз, применяя к примеру. Как же это здорово, когда непонятный концепт становится понятным, и ты теперь можешь свободно и со всем знанием его применять  :rainbow:

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

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

Тренер вчера дал мне индивидуальный урок по рапире, практиковали тактику, а в её рамках: ложный выпад (feint) и одно из действий на оружии, blade seizure.
Потом два поединка с сыном другого тренера() и другом тренера, азиатским дедушкой, пусть будет Дон. Не знаю, тренер он или нет (он в основном только с другим тренером и его сыном), но фехтует он хорошо, и я как-то видела, как в поединке он победил моего тренера, отчего у того забавно бомбануло, когда его финальная хитрая атака, в которую он вложил столько сил, провалилась. Но закричал и швырнул шлем на землю он, конечно, по-дружески.
Я остался доволен тренировкой и поединками, и тренер сказал, что мои защиты становятся всё лучше, уколоть меня удаётся всё реже, надо только поработать над парой плохих привычек. В обоих поединках я проиграл, но хорошо попрактиковал дистанцию и защиты.

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

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

[дыбр]

Итак, я начал учить итальянский на курсах. Когда знакомились и говорили, почему решили изучать язык, один пожилой джентльмен-азиат (у него, кажется, ещё был китайско-итальянский разговорник), сказал, что он поёт и хотел бы понимать, что он поёт. Преподаватель (кстати, мне понравились феминитивы в итальянском, например, professoressa) попросила его не стесняться и пропеть что-то. А дальше последовала песня. Громким, красивым, уверенным голосом. Может, даже чуть слишком громким для небольшого помещения, но было очень впечатляюще. Оказалось, что этот джентльмен - преподаватель вокала и виолончели.
Пока в итальянском всё понятно и легко  =)

Я так пока ещё и не рассказал всё, что хотел, о поездке в Италию, не выложил фотки, хотя очень хочется показать то, что впечатлило. И не только из Италии. Иногда думаю: вот это хочется показать, об этом рассказать, а потом решаю, что надо бы получше написать, а ещё об этом не написал, и в итоге не пишу и не показываю ничего. Лучше идеальное, но не сделанное :heh: Заметил, что некоторые вещи, которые доставляют удовольствие, типа книг и фильмов, тоже откладываю на потом и в итоге, конечно, так и не возвращаюсь к ним  :sadcat:

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


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

Отредактировано (2024-08-18 08:18:52)

#194 2024-08-18 08:18:16

Анон

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

[левел-ап]
[фото][путешествия]

А вот левел-апнусь прямо сейчас и покажу несколько фото из Италии

Вид на Ватикан из замка Святого Ангела
Просто купол церкви из переулка
Улица
Слои и текстуры Пантеона

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

#195 2024-08-18 10:31:30

Анон

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

Восхитительные фото!

#196 2024-08-18 20:03:49

Анон

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

Анон пишет:

Восхитительные фото!

Спасибо, анончик!  :heart: Когда-нибудь доберусь и до остальных


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

#197 2024-09-01 03:41:03

Анон

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

[дыбр]

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

Дали очень подробный и классный гайд, который объясняет основные принципы.
Забавная вещь: среди описания разных соревнований по стрельбе было Cowboy Action Competition, где участники одеваются ковбоями, берут себе никнеймы в стиле Дикого Запада. Оружие допускается только такого образца (старинные или современные реплики старинного), чтобы было выпущено до 1900 года.

Второй день был посвящён практике в тире, стреляли из 22 калибра.
Сначала немного нервничал, от первого выстрела слегка прифигел - звук (хоть я и был в защите), отдача, само ощущение. А потом привык, и постепенно втянулся.
Пробовал и пистолет, и револьвер, и пока не могу сказать точно, что нравится больше, хотя склоняюсь к револьверу. Что интересно в нём, помимо всего прочего, это ощущение тепла на твоих пальцах во время выстрела.
Стрелял по обычной мишени в виде круга, разделённого на области, и в нарисованные на одном листе пять мишеней в виде тарелок, попал в абсолютное большинство из них, хех.
Заработал мозоли: на левом большом пальце от револьвера - взвод курка каждый раз, на правом - от рычажка затвора пистолета, правый я ещё умудрился эти рычажком (или рычажком магазина) порезать в конце концов  =D  :facepalm:   
Попробовал стрелять в позе турецкого бати - неудобно [пока].
В общем и целом понравилось (как и всей остальной группе), я бы с удовольствием тренировался дальше.

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

#198 2024-09-03 00:26:02

Анон

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

[левел-ап][дыбр]

Наконец воспользовался итальянским языком!  :chearleader:
Пошли с подругой в Eataly (это большой супермаркет + ресторан + кафе), где продают итальянские продукты и всякие пиццы-пасты-закуски-сладости-кофе, и когда я получал свой заказ, сказал "Grazie!", на что парень за кассой ответил "Prego!" ("Спасибо - На здоровье/Пожалуйста!"). Вроде совсем ничего, а всё же так мило и приятно  :heart:

А ещё сегодня выходной в честь Дня Труда (Labor Day), о чём я внезапно вспомнил вчера, так что отдыхаю. Заказал недавно всяких классных книжек, буду читать и разглядывать.

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

#199 2024-09-03 01:33:48

Анон

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

Анон пишет:

Наконец воспользовался итальянским языком

Поздравляю, правда мило

#200 2024-09-04 20:51:05

Анон

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

Анон пишет:

Поздравляю, правда мило

Спасибо, анон))

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

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

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

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