Беговая тренировка "лесенка"

Вчера была тяжёлая тренировка, и я её сделал. Возможно, делай я её утром, она не выглядела бы настолько тяжёлой. Но вечером, ближе к девяти, хочется уже «приуютиться» и не высовываться из дома. Особенно когда там по ощущениям -7 и темно.

Но вчера торг с собой был недолгим. Вчера было ограничение по времени — на 11 вечера был запланирован созвон, так что откладывать тренировку было нельзя. Надо было или бежать, или не бежать. До принятия второго варианта я ещё не созрел. Так что пришлось бежать.
2 км разминки с отрицанием, торгом, принятием. А потом лесенка: 1 км по 4:15, 1,5 км по 4:30, 2 км по 4:40 и в обратную сторону.

Окончательно расшевелился я после первого быстрого километра. Сначала мелькнула мысль: «быстро я уже сбегал, и пора бы сворачивать в сторону дома». Но то ли 300 метров восстановительной трусцы придали сил, то ли легкий дунайский бриз продул голову... Сложно сказать. Одно было заметно — как будто вспомнил, как надо бежать. И дальше уже бежалось лучше. С «терпячкой», добеганием, но лучше. Уже не было вот этих моральных терзаний о том, как устал и хочется скорее в тепло. Уже стало ТААК тепло, что все причины перестать ушли на второй план. Одним словом, разбегался.

Починил перьевую ручку

20250217_115033_5012cb.webp

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

20250217_115009_75458d.webp

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

И ручка записала. Конечно, я многого от нее не ожидал. Но всё равно приятно.

Что за ручка? Это клон Lamy Safari. После починки она стала прекрасно и легко писать. Не так тонко как при покупке. Но низкая цена ручки и дешевые чернила (тоже около 100 рублей) делают эту ручку просто идеальной.

И ещё раз о Strava

Как вы знаете, я решил отказаться от использования Strava. И вот спустя почти три месяца я прихожу к мысли, что идея была так себе. Я сразу предполагал, что от моего ухода никто кроме меня не пострадает особо. По началу эта мысль о "непричастности к большому сообществу" мне очень нравилась. Однако сейчас я понимаю, что идея была так себе. Просто представьте, что все вокруг вас едят мороженное. Даже если вы не хотели это мороженное изначально, то в какой-то момент закрадывается мысль, что и неплохо было бы...

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

Garmin HRM Pro Plus

Урвал классный пульсометр по очень низкой цене. Garmin HRM Pro Plus. Это была очень выгодная покупка. И теперь конечно же интересно побегать. Благо сегодня есть такая возможность. Холодный ветер, дождь и возможный гололед оставим за скобками. Задача на сегодня огонь:

1 км по 4,15, 2 км по 4,30, 2,5км по 4,40, 2 км по 4,30, 1 км по 4,15

Как раз для теста пульсометра 😀

В чем его фишка? Больше данных собирает. Если не смотреть на разные штуки, связанные с безопасностью, то из классного:

— вертикальные колебания при беге
— время контакта с землей
— баланс времени контакта левой/правой ноги
— длина и частота шага

Еще есть offline запись. Датчик сохраняет данные о тренировке без подключенных устройств. Подробный обзор можно почитать у Рэя, я вряд ли что-то больше добавлю: Garmin HRM-PRO Plus Heart Rate Strap In-Depth Review.

Про технический долг

Представьте, что вы строите дом. Можно быстро построить его из доступных материалов, игнорируя некоторые строительные нормы, чтобы скорее въехать. Или можно делать всё по правилам, но это займёт больше времени. В первом случае вы "берёте в долг" – экономите время сейчас, но потом придётся исправлять недочёты, причём обычно с гораздо большими затратами.

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

За 19 лет работы с различными проектами я выделил три верных признака того, что технический долг начинает тормозить бизнес:

Во-первых, разработка новых функций постоянно замедляется. То, что раньше занимало пару недель, растягивается на месяц или больше. Разработчики боятся трогать старый код, опасаясь сломать существующий функционал. А некоторые части системы становятся "священными" – к ним вообще никто не хочет прикасаться.

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

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

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

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

Я бы предложил начать с простого — с простых вопросов команде: сколько времени занимает добавление типовой фичи? Насколько уверенно вы чувствуете себя при внесении изменений? Какие части системы вызывают больше всего проблем?

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

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

Первое – выделите ресурсы на технические улучшения. Классическое правило: 20% времени команды должно уходить на технический долг. Да, это может казаться дорого, но альтернатива обойдётся дороже.

Второе – внедрите культуру качества. Каждый новый код должен быть лучше старого. Код ревью, автоматические тесты, современные инструменты разработки должны стать стандартом, а не роскошью.

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

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

Переход на Neovim: как изменить мышление и полюбить композицию команд

Последние пару недель нет времени ни писать, ни бегать. Сначала боролся с соплями, потом со знаниями. Из интересного, почти отказался от VS Code и перешёл в VIM. Тут надо сразу оговориться, я пишу vim, но подразумеваю nvim. То есть в том контексте, о котором я пишу разницы нет.

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

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

Вообще я долго пытался понять что неудобно в vim и почему он для меня не работает. И в какой-то момент пришла мысль о том, что я пытаюсь использовать его как использую все остальные GUI редакторы. А надо изменить подход. То есть мало отказаться от использования мышкой, надо еще изменить способ мышления. Идея не в том, чтобы мыслить не символами и хоткеями, а командами.

Композиция команд — это очень мощная концепция в Vim/Neovim. Например, команда может состоять из трех частей:

— Оператор (что делать)
— Модификатор (сколько раз или как)
— Движение (с чем делать)

Примеры:

d2w - delete 2 words
da{ - delete around {}
y$ - yank to end of line
ciw - change inner word
c3j - change 3 lines down

Вот к примеру основные операторы

  • d - delete (удалить)
  • y - yank (копировать)
  • c - change (изменить)
  • p - put (вставить)

и основные движения

  • w - слово
  • b - назад по словам
  • e - конец слова
  • $ - конец строки
  • 0 - начало строки
  • ^ - первый непробельный символ в строке

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

Более того, команды регистрозависимые. Например,

  • word - последовательность букв, цифр и символа подчёркивания
  • WORD - последовательность не пробельных символов

Поэтому

example_variable_name # три words, то есть три нажатия w
example_variable_name # один WORD
some-compound-word # три words
some-compound-word # один WORD

gg — прыжок к началу файла, а G — к концу. Команд так много, что сложно все запомнить. Но я стараюсь каждый раз, когда чувствую сложность и непонимание "как сделать так чтобы было удобно" идти гуглить и пытаться запомнить как же.

Вот последние находки для разделения одно окна на панели

<C-w>v или :vsp - вертикальное разделение
<C-w>s или :sp - горизонтальное

Для навигации между панелями:

<C-h> - в левое окно
<C-j> - в нижнее окно
<C-k> - в окно сверху
<C-l>- в правое

То есть идея понятна, те же hjkl + нажатый Ctrl.

А еще метки. Про них наверное отдельно надо писать. Если кратко, то ma ставит метку 'a'. mb — метку 'b'. Не важно где была поставлена эта метка в этом файле и сегодня ли. Но

- `a и `b позволяет переключаться между файлами или теми блоками где вы были очень быстро
- `` позволяет вернуться к предыдущей позиции
- '. возвращает к последним изменениям

В общем, пока я нажимал www, гуляя по словам, было прикольно, но как-то странно. Потому что преимущества с обычным редактором не были заметны. А вот метки как раз принесли очень интересные возможности.

PS: Как я писал в начале поста "я почти отказался от VS Code". Мне все еще нравится VS Code. Он прекрасен и привычен. Поэтому когда я устаю разбираться с vim, я просто переключаюсь на VS Code.

Про флис: история, производство и выбор

На днях услышал о том, что флисовая ткань создавалась для обивки авто и была представлена под названием "Синтетическая шиншилла". Полез в интернет проверять и не нашел этому подтверждения. Зато больше узнал о флисе.

Он был разработан в 1979 году компанией Malden Mills (сейчас известной как Polartec). Изначально компания искала способ создать альтернативу шерсти, которая была бы легче, теплее и проще в уходе. Разработка началась как часть сотрудничества с компанией Patagonia, которая искала новые материалы для своей спортивной одежды.

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

Флис различается по плотности:

— Микрофлис (100-200 г/м²). Это самый тонкий и легкий вариант. Его обычно используют как первый слой в утеплении. Например, в тонких спортивных куртках
— Классический флис (200-300 г/м²). Такая плотность обеспечивает оптимальный баланс тепла и веса. Поэтому у него универсальное использование.
— Флис с плотностью выше 300 г/м² считается тяжелым и применяется в зимних куртках. Для супер теплых курток плотность может и выше 600 г/м².

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

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

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

Делают флис в основном из переработанных пластиковых бутылок. Точнее, из того же материала – полиэтилентерефталата (ПЭТ). Пластик измельчают в крошку, расплавляют при температуре около 260°C, а потом продавливают через специальные пластины с множеством мельчайших отверстий. Так получают тончайшие синтетические нити. Эти нити вытягивают, охлаждают и укладывают в несколько слоев, формируя полотно.

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

И вот теперь я подхожу к самому главному. Узнав вот это всё, становится понятно, на что смотреть, выбирая флисовую одежду в магазине. Чем плотнее флис, тем теплее одежда (но и тяжелее, что логично). Микрофлис — легкий и дышащий, идеально подходит для активных занятий в теплую погоду. Он хорошо отводит влагу. Для осенней куртки плотность 200 г/м² — ок, а для зимней надо 300 г/м²+ (еще желательно с меткой "термофлис". Я конечно понимаю, что в середине января, разбираться с утеплением поздновато. С другой стороны, лучше поздно, чем никогда :)

Вкатываемся в тренировочный процесс

На календаре 8-е января. Пора выкатываться на тренировки. Мои тренировки не прекращались, хотя и была пара недель в облегченном режиме. Это была подготовка к поеданию салатиков 😀.

Как бы то ни было, до сего дня все тренировки были несложными. Ну по крайней мере не казались сложными. Зато сегодня предстоят отрезки. 200х200 х8. Звучит понятно, если не думать о примерном времени в 45 секунд, за которые эти 200 м надо преодолеть восемь раз 😀.

20250108_103158_4ed97f.webp

Upd: Отрезки состоялись. Это была определенно очень интересная тренировка. Во-первых, погода: с утра всё было в тумане. Последний месяц мне вообще кажется, что я живу где-то в районе туманного Альбиона. Туманы и цена на недвижку примерно одинаковые. Хотя и есть нюанс... Во-вторых, сама программа тренировки была очень разнообразной. Сомневался в своих силах на отрезках. Но оказалось, могу бежать двухсот метровки по 40 - 44 секунды. На последних паре отрезков устали не только ноги, но и руки. В моей программе тренировок есть отдельное упражнение — махи руками. Так вот, оно мне кажется очень полезным для вот таких вот скоростных работ.

Как бы то ни было, руки начали уставать на последних паре отрезков. Про ноги вообще молчу. Если в начале отрезков они отлично поднимались, то последние отрезки казалось, что ноги совсем не мои 😀. Из-за тумана беговая дорожка при быстрых работах ощущалась очень скользкой. Влажность была такая, что вода просто капала с волос.

Как оказалось, отрезки были не самой неподъемной частью. Далее по плану был 1км по 4. И вот тут я как раз не вывез. Ни пробежать по 4:00, ни пробежать 1 километр. Вышло где-то 700 метров по 4:35, а дальше мозг напрочь отказался заставлять тело. Немного отдохнув и повисев на турнике отправился домой.

Что хочу сказать? Это была без сомнения отличная тренировка, на которой надо было работать не только ногами, но и головой. Мне даже показалось, что я отвык от таких заданий за время моего отдыха и даже немного соскучился. Не всё получилось так как хотелось, но разнообразие задач и их сложность определенно зарядило на весь день.

Итоги 2024-го года

Этот год отмечен значительным прогрессом в беге, активными путешествиями, техническим развитием и важными личными достижениями. Если верить runalyze, то в этом году я набегал больше 1000 км. За этот год было 7 стартов. И столько же финишей, что безусловно радует:

Бокешский полумарафон 2024 — 21 км за 1:41:17
10 км в Эчке — 10 км за 44:23
Белградская десятка
Выдра трейл
Про забег в Бечейе
— Еще было два новисадских забега по 6 км, на одном из которых был личник — 5км за 21:12

Про бег можно почитать по тегу running.

Были поездки на забеги и просто в отпуск. Видел море, горы и другие города. Съездили в Стамбул, в Черногорию, исследовали север Сербии – Суботицу и Сомбор. В блоге есть тег traveling, там можно найти про все путешествия.

В техническом плане год тоже был интересным. Наконец-то решился перевести блог с WordPress на Rails. Да, после админки WordPress это сильно заметно, но зато всё работает так, как хочется. Распрощался со Strava и перешел на Runalyze – прекрасный сервис для анализа тренировок. Даже начал помогать с переводом на русский язык.

Для бегового клуба @EcoRunGeo запустили телеграм бота. Начинали с пары сотен строк кода. Вся бизнес логика умещалась в одном файле. Сейчас бот — это не только пара кнопок, видимая пользователям. Сделали админку, переехали с одного сервера на другой и отразили атаку ботов. Конечно же не обошлось без багов. Стараемся их исправлять как можно скорее, но некоторые ошибки заставляют поломать голову (привет всем быстрым бегунам с большими объемами, я помню о вас). Список задач в бэклоге драйвит и хочется их реализовать все и сразу. Но это уже планы на следующий год.

Планов на следующий год очень много. В этом году экспериментировал с форматами. Завел телеграм канал и понял, что лучше обычного блога ничего не придумали. Поэтому планирую продолжить писать и в телеграм и в блог. Возможно еще прикручу рассылку на email или использую для этого substack. Еще завел аккаунты для доната и теперь можно купить мне кофе или подписаться на Boosty.

В общем, год получился насыщенным. Были и сложности, и радости, но главное – движение вперед. Впереди новый сезон, новые старты и новые города.

Друзья, с наступающим вас 🎄 Спасибо, что были рядом весь этот год – на забегах, в путешествиях, в комментариях и личных сообщениях. Каждая встреча, каждый разговор делали этот год особенным. Пусть в новом году у каждого из вас будет больше поводов для улыбок, интересных маршрутов и классных достижений! До встречи в 2025-м, на новых стартах и в новых городах! ✨

20241231_090047_3901d5.webp

Android 15: Часы Garmin теряют сопряжение

На днях обновился до Android 15 и у меня отвалилась синхронизация с часами. Телефон не видит часы пока не создашь пару заново. Но после засыпания телефона пара снова отваливается и телефон снова не видит часы. На реддите пишут, что проблема с Bluetooth была еще с беты и ее до сих пор не пофиксили. Так будьте осторожны.

Android 15 - Pairing lost every single time the app is in the background

Кто-то случайно тыкал в настройки у него всё заработало, но это не точно. Я тоже так делал и у меня не заработало.

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

UPD: Обновление OS от первого января исправило проблему.