Ловушка цифр и метрик

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

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

Как я к этому пришел? У нас в чате паркрана Миша раз в неделю скидывал топ-10 бегунов. И я вот в этот топ-10 никогда не влезал: то бегал мало, то следовал плану. Если бегаешь мало или нерегулярно, подобного рода мотивация может привести к травмам. Новичок, желающие войти в топ-10 должен набегать 50+ км в неделю. В тройке рекордсменов обычно серьезные бегуны, которые занимаются очень много лег и общий объем в неделю у них может доходить до 170 км. Очевидно, что с таким и соревноваться бесполезно и ровняться на него травмоопасно.

Вдобавок недавно паркрановцы ввели новый бейдж, называется "Раж".

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

И вот в прошлую субботу я получил такой значок. Казалось бы можно радоваться. Но моя следующая тренировка в субботу не предполагает улучшения результата. Мне не надо бежать быстрее 23, мне надо выполнять другую работу. А теперь представим, что такой бейдж дается человеку, который всего лишь бегает паркраны раз в неделю. Его стремление запросто может привести к травмам.

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

Исследование из Национального университета Ирландии в Голуэе обнаружило, что публичное признание и постоянное сравнение результатов может привести к:

— Навязчивому отношению к тренировкам
— Повышению общего уровня стресса
— Нездоровому восприятию физической активности

Исследование, опубликованное в январе 2024 года в журнале Frontiers in Public Health, проанализировало данные более 1400 пользователей фитнес-приложений. Учёные обнаружили, что постоянное сравнение с более успешными спортсменами может негативно влиять на благополучие пользователей, особенно тех, кто только начинает свой путь.

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

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

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

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

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

Runalyze: когда данные важнее социальных функций

Вот уже неделю живу без Стравы и чувствую себя отлично. Я заменил ее на runalyze.com. Давно слежу за развитием этого сервиса.

20241127_082423_f8692a.webp
Скриншот админки runalyze.com

Runalyze появился в 2012 году как проект двух немецких энтузиастов - Hannes Christiansen и Michael Pohl. Основной идеей сервиса было предоставление более глубокого анализа тренировок. То есть это не просто логгер активности — это настоящая аналитическая платформа, где каждый показатель имеет значение. Аналитики очень много. Кому-то она не нужна, кому-то полезна. Тут каждый решает сам. Но смотреть на таблички и графики безусловно интересно. Например, есть показатель тренировочной нагрузки (TRIMP), оценка беговой формы (VDOT), анализ эффективности тренировок с учетом высоты над уровнем моря и многое другое.

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

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

Я бы описал весь сервис одной фразой:

Вот как вы тренировались, вот что это значит для вашей формы.

Сервис сохранил свою изначальную философию — предоставлять максимально детальную аналитику для тех, кто действительно хочет понимать свой тренировочный процесс. При этом нет никакого навязывания платного тарифа. Да, он есть. Можно платить $30 или $65 в год. А можно пользоваться бесплатно. Возможностей бесплатного тарифа более чем хватает.

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

Отказ от использования Strava

Я неоднократно высказывался о Strava. Мне несимпатичен этот сервис. Да, он делает деньги и прекрасно существует независимо от меня и моих суждений о нём. Но, как пользователь, я несколько раз пытался найти в нём что-то полезно и приятное для себя. Я пробовал бесплатную подписку, пробовал платную. Но всё это какое-то бесполезное. В результате, просто использовал его потому что "все используют".

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

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

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

— Сторонние приложения больше не смогут показывать данные активности пользователя Strava другим пользователям
— Запрещено использовать данные из API Strava для искусственного интеллекта и машинного обучения
— Запрещено выполнять любую аналитику или обработку данных Strava

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

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

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

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

Однодневная поездка в Суботицу и Сомбор

Вчера ездили смотреть города на севере Сербии. Первой по плану была Суботица.

Субо́тица — город в северной Сербии, в автономном крае Воеводине. Является вторым по величине городом Воеводины после города Нови-Сада и пятым по величине городом Сербии (не включая Косово), а также самым северным городом Сербии. Население города по данным на 2022 год составляет 94 228 человека, население агломерации, городского поселения Суботица, составляет 123 952 человека.

Когда выезжали было очень туманное утро. Эдакий Silent Hill. По-своему прекрасен, но красоты смотреть сложно. Однако через час езды туман начал потихоньку рассеиваться. И, пусть и не всё, но мы успели посмотреть желаемое.

20241117_085915_5e6942.webp
Видимость 0, идём по приборам

Суботица заметно отличается от Нови Сада. Сказывается соседство с Венгрией. Если верить статистике, их около 30%. Очень много венгерского стиля. Такого яркого, аляповатого, со странными оттенками. Отличаются улицы: они шире. По крайней мере, в туристическом центре. Уверен, что если уйти чуть дальше в сторону спальных районов, картина может измениться. Но мы туда не дошли.

20241117_090036_affa20.webp
Ратуша в тумане

Дошли же мы до Ратуши.

Ратуша в Суботице – самое большое и, по мнению многих, самое красивое здание Суботицы. Он был построен за два года, с 1908 по 1910 год, но еще два года лучшие мастера того времени потратили на украшение его интерьеров. Здание имеет статус памятника культуры исключительного значения.

В полдень двери Ратуши открываются и туда можно зайти. Важно: зайти можно только с экскурсоводом. Там очень много дверей и легко заблудиться, поэтому сейчас туда водят только организованные экскурсии. Если своего экскурсовода нет, там всегда набирается группа, надо лишь подождать. По крайней мере у нас было именно так. Билет и экскурсия стоят 200 — 400 RSD. Стоимость зависит от продолжительности. В любом случае, это очень дешево и стоит того.

Уже после посещения Суботцы я узнал, что есть сайт для туристов The Official Tourism Website of Subotica где можно посмотреть фото и почитать про город.

Пока ждали открытия Ратуши, успели погулять по городу.

20241117_091448_0540c8.webp

20241117_091607_3eedab.webp

А к обеду солнце уже разогнало туман и мы поднялись на смотровую площадку на Ратуше.

20241117_091834_608b86.webp

20241117_091918_4f7855.webp

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

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

Со́мбор — город в Сербии, в автономном крае Воеводина. Численность населения составляет 41 814 чел. (2022). Сомбор является административным центром Западно-Бачского округа Сербии и общины Сомбор.

20241117_092459_7bdb92.webp

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

20241117_093227_e03d11.webp

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

Подборка ссылок #05

Из рассылки Ruby Weekly узнал о геме для пагинации Pagy. Судя по тестам, это прекрасная замена Kaminari. Pagy быстрее и потребляет меньше памяти.

Вышел Rails 8.0 🥳 и Ruby 3.3.6.

У "Марсиан" вышла классная статья 11 HTML best practices for login & sign-up forms.

Сразу две статьи про логический оператор присваивания &&=: JavaScript's &&= Operator: Understanding Logical AND Assignment и JavaScript's ??= Operator: Default Values Made Simple.

Вышел в свет Rspack 1.0, это сборщик модулей написанный на Rust. Судя по тестам он в несколько раз быстрее Webpack и чаще всего быстрее Vite (за исключением HMR режима).

10 км в Эчке

Вчера были фотки в телеграм канале, а сегодня немного больше подробностей.

20241027_104356_389e55.webp
Парк в Эчке

26-го октября я бежал в Эчке 10 км. Эчка (Ečka) село в Сербии, в Воеводине, недалеко от Зренянина. Если верить Википедии, там проживает всего 4513 жителей. Но село очень милое, плоское, с асфальтированными улицами и бескрайними полями.

20241027_101042_4e46e2.webp
По дороге в Эчку

По ощущениям размах забега превзошёл мои ожидания. Для начала, посмотрите на стартовый пакет. В нём нет футболки, но он какой-то душевный. Например, есть доска для медалей, календарик на 25-й год, ручку и ваучер на бургер. А также разные промо напитки и даже гель для стирки 😀

20241027_101853_a302ef.webp
Стартовый пакет Эчки

Это не был мой главный старт. Но я решил побежать, ради того, чтобы выбежать из 50-ти минут. Изначально, выбежать из 50-ти планировалось на белградской десятке. Но тогда немного приболел и бежал уже не так быстро как хотелось. Скорее так, чтобы добежать. Потом была новисадская пятерка. И следующий, наверное, главный забег — полумарафон в Боке. А так как план по 10-ке не закрыл, решил побежать в Эчке.

Установка была начать по 4:35, на втором километре ускориться до 4:30, а дальше смотреть по состоянию и по возможности наращивать. Я даже сделал себе шпаргалку на руке, чтобы не забыть.

20241027_102357_47e50c.webp
Шпаргалка

Не то чтобы "как только начинаешь бежать цифры сразу выветриваются из головы". Нет. Просто когда смотришь на часы, можно взглядом зацепить текущий пейс и целевой. Это немного отрезвляет. Особенно на 6-м и 7-м километрах, когда понял, что стало тяжело и ноги стали ватными. По ощущениям скорость постепенно начала падать, а время замедляться. И вот смотришь на часы, а там 4:40, а надо быстрее. Цифры-то вон, на руке написаны. Вообще очень сложно уговорить себя бежать так, как надо. В начале старта, полно сил и хочется рвануть на адреналине. Но сдерживаешь себя, чтобы не растерять силы. После экватора уговариваешь себя бежать, не то чтобы ускоряясь, а хотя бы с той же скоростью, что и раньше.

Если верить часам, то 10км я преодолел за 44:23. Это очень крутое время для меня. Еще несколько месяцев назад это же расстояние я пробегал за 55 минут. Сама трасса была чуть длиннее, 10.2км. Для истории оставлю маршрут и сплиты из Strava

20241027_103444_54aa29.webp

Что еще можно сказать? Я очень доволен и своим результатом, и тем, как всё было организовано. Приятная атмосфера. На протяжении всей трассы стояли люди, много детей, которые держали воду, или просто кричали и поддерживали и давай пять 😀 Иногда люди просто ставили столик у своего двора с едой и сидели ели, смотря на забег.

20241027_104006_0c72cd.webp
Медаль с крепостью на фоне той самой крепости

И вот забег закончен. Медалька получена. А впереди еще много работы в подготовке к полумарафону.

Подборка ссылок #04

Design tokens cheatsheet — статья о том что такое дизайн-токены и их структурировать. А вот еще одна инструкция по работе с токенами The ultimate Design Token setup

С тех пор как David Heinemeier Hansson перешел на линукс, он много рассказывает о том, как прекрасен VIM. В общем-то я с ним согласен. Вот его пост на эту тему Wonderful vi

SQLite кажется недооценен. Почитайте почему его стоит использовать Why you should probably be using SQLite. Кстати, в Ruby on Rails 8 планируется поддержка SQLite в продакшене.

На Reddit наткнулся на пост о том, как добавить поддержку Vue в NeoVim Finally, NeoVim + Native Vue LSP Perfection.

WebStorm сделали бесплатным для некоммерческих проектов.

Обновления в блоге

Последние пару неделю работаю над блогом. До этого я писал, что он работает на Nuxt.js + Wordpress. И до начала октября все было именно так. Nuxt.js на фронте, бэкенд (если можно так выразится) на Wordpress. И утверждал и продолжаю утверждать, что панель управления Wordpress одна из самых удобных.

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

Еще один момент — система плагинов и технически сложная кастомизация. Чтобы что-то сделать в админке, например, добавить кастомные поля к посту, нужно ставить плагин. Все это здорово, но кажется, что ты не владеешь продуктом. Если завтра плагин обновится и с ним будет проблема, это может поломать сайт. Так совпало, но спустя неделю после переезда у Wordpress и wpengine был спор о правах и отчислениях. Дошло до того, что команда Wordpress выпустила свой плагин Secure Custom Fields.

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

Так что с недавнего времени я переехал на Ruby on Rails. Это интересный опыт. С одной стороны, хотелось посмотреть версию 7.2 в работе. С другой, хотелось быстренько сделать проект так, как хочется внутри, без лишнего усложнения. Без проблем и экспериментов не обошлось.

Попробовал Active Storage, понял что мне не нравится это решение и откатил всё обратно. В итоге, решил, что картинки я буду заливать на CloudFire при создании поста, а удалять их буду вручную. Решение не совсем идеальное, но оно работает и на текущий момент меня устраивает.

Вообще старался сделать всё как можно проще. После админки Wordpress это сильно заметно 😀

Из функционала: подписка на RSS, оптимизация и конвертация картинок в webp на стороне рельс, а не на CloudFire, собственный сборщик статистики. Не люблю Google Analytics, а большинство других аналитик платные. Мне же интересно общее количество посещений, страны и устройства. Нет так уж много, согласитесь. Ранее я использовал SimpleAnalytics. Отличный сервис, но на этот раз решил реализовать свою версию. Ну и конечно же самый настоящий серверный рендеринг приготовленный на самом настоящем сервере. Без костылей и хаков 😀.

В планах есть еще идеи по улучшению и доработки. Например, email рассылка, конвертация :) => 😀, хранение черновика заметки в localStorage, кросс-постинг в телеграм канал и прочие нужные и ненужные штуки. В общем, всё то, что неизбежно ведет систему к усложнению.

Личный рекорд: 5км за 21:12

20241014_085315_b51d07.webp

Сегодня я пробежал пятерку за 21:12. Я когда-то смотрел на такую цифру и думал "ну чуть-чуть подготовиться и можно пробежать". Сейчас конечно совсем иначе на эту цифру смотрю. Подумать только, я пробежал километр за 4 минуты и 14 секунд. И так пять раз. Хотя как мы знаем (из прошлых постов) бежать пришлось не пять раз, а шесть раз. Потому что заявленная пятерка на самом деле шесть километров.

Но последний, шестой километр, это отдельный разговор. Если считать его, то общее время 26:13, а дистанция по часам 6,12 км. И вот он прям ощущался всем телом: ноги стали немного ватными, а в голове возникла мысль "А зачем?". И вот эта мысль очень коварная. На последних шестиста метрах меня обогнала девушка. Я заранее знал, что обгонит, она очень хорошо шла, потом перестроилась за меня, чтобы ветровой поток уменьшить и технично обошла в конце. И вот когда она обогнала, появилась мысль "а зачем?". И это вроде какие-то секунды пока ты пытаешься побороть желание притормозить, но это очень долгие секунды. Мало того, что ноги бежать должны, так еще и надо придумать как заставить себя ускориться. В итоге на последней сотне метров я подумал, что если не вжарить, то меня еще кто-то обгонит. И вжарил. Никто конечно не обогнал 😀

Сам очень доволен результатом, потому что всё было по плану!

PS: Спасибо за фото Анастасии Салтыковой

Как подключить кастомный домен на Cloudflare к Railsway

Перенес управление доменом на Cloudflare. И пришлось немного почитать документацию, как же настроить и соединить сайт на railway.app и домен на Cloudflare.

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

Сохраню для истории ссылку настройка корневого домена Cloudflare

Новисадская почти шестерка

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

Но в этом году, я опытнее. Хаха. Сразу готовлюсь к шести. Иногда готовлюсь, а иногда прокрастинирую. Вот даже сейчас, наблюдая как темнеет на улице, я гадаю какие же все таки у меня шансы выйти и пробежать 12 км, с какими то пугающими ускорениями. Шансы примерно 50/50. Если какой-нибудь пирожок не запрыгнет в меня в ближайший час, то шансы на бег сильно увеличатся. Но знаете, пирожки в это время суток очень прыгучие. Буду наблюдать за ситуацией.

Про технологии

Этот блог работает на WordPress. Точнее его часть — админка. А фронтенд на nuxtjs. Когда-то я много работал с WordPress. Был даже модератором русскоязычного сообщества, делал темы и сайт на заказ. И вот что хочу сказать: панель управления WordPress была и остается одной из лучших. Знаете слоган у Эппл “это просто работает”. Так вот то же самое можно сказать про админку вордпресса. Кликаешь пару кнопок и всё, можно писать.

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

Но сложными стали многие системы. Помню как лет десять назад раскладывал в директориях css и js и прогонял gulp-task, чтобы мои псевдокомпонентики склеивались в банды. Потом появился вебпак, react/vue и компоненты стали настоящими, не псевдо. Потом структура приложений и сервисов усложнялась и вот уже появляются различные архитектурные слои. Нельзя просто взять и, простите, наговнякать. Надо все разложить по полочкам, настроить вебпак, отрастить бороду. Усложнился и javascript. Вот менеджеры состояний, вот веб-сокеты, local first подход. В какой-то момент проектирование архитектуры пет-проектов стало такой, что пока все подготовишь, уже запал кончился. А список пакетов из npm, которые еще надо установить — нет. Не то, чтобы это прям плохо, это естественное развитие и взросление системы. Просто стало сложно следить и управлять всем этим.

Но я тут начал книжку про Ruby on Rails читать. И для закрепления знаний, конечно писать код. И знаете что? В мире есть место где можно говнякать. Что 10 лет назад, что сейчас. Хочешь свалить все стили в assets/stylesheets? Пожалуйста. Хочешь вмонстрить кусок скрипта прямо во вьюху? Не возбраняется. Тем более, что это местами очень даже удобно. И вот я раньше сильно плевался от подобного подхода. Но сейчас… Не то чтобы я стал сторонником, но если кусок скрипта нужен только на этой странице, то может быть проще вздохнуть и добавить его туда.

И вот пет-проект на рельсах, где можно немного отступить от привычных норм выглядит каким-то глотком свободы. Уверен, что развивая проект, со временем он тоже станет сложным и его придется делать архитектурно красивым и структурированным. Но вот сейчас, кажется, я до конца понимаю как вышло так, что Ruby on Rails стал таким популярным, почему каждый год все ждут когда же он помрёт. А DHH раз за разом выпускает новую версию и RoR всё ещё популярен.

Мне кажется потому, что это то самое место, где все ещё можно г… Гибко решать свои задачи. Ну вы поняли 😀

🎂🎉😀

Сегодня мне 40. Когда мне было 20, те самые сороколетние казались мне такими старыми. Вчера же двадцатилетняя девушка говорила мне “вы” “из уважения”. Забавно, но сейчас в 40, я не ощущаю себя на этот возраст. Ну может 30, ну 35. Ну максимум 38. Но 40! Цифра-то какая.

Меж тем, что мы имеем на этот момент:

— Построили дом, посадили дерево, растим и так далее
— Пожил в двух странах не как турист, а прицельно, надолго. В одной понравилось, в другой не очень.
— Бегаю. Так как не бегал ни в 30, ни в 20.
— Работаю работу и, в целом, доволен ей.
— Научился понимать что мне нравится, а что нет. Разобрался в том, что и как работает для меня и почему я что-то делаю, а что-то не делаю.

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

Подборка ссылок #03

Интересная идея о дизайне url
Web-based трекер финансов с поддержкой local-first и упором на privacy.
How We Designed a White-Label In-Car Infotainment System — классная статья и проектировании интерфейса для Android Auto.
The State of ES5 on the Web — статья о том, что пора уже перестать транспилировать код в ES5 и вместо этого использовать современные стандарты.

Опубликую сразу несколько ссылок про VIM. Во-первых, это на справочник Vim help files. Во-вторых, это книга Practical Vim: Edit Text at the Speed of Thought. И ссылка на AstroNvim, если вдруг решите сменить VS Code и попробовать что-то новенькое.

Путь к освоению VIM: от плагина до Practical VIM

Решил разобраться в VIM. Вообще я часто пользуюсь им, для быстрого редактирования файлов. Этакая разовая работа. Но полноценно переключиться на работу с VIM у меня не получается. По умолчанию использую VS Code + VIM плагин. Получается неплохой симбиоз: удобные хоткеи VS Code + удобная навигация внутри файла. Но одно дело удалять строчки и прыгать туда-сюда по файлы, а другое дело полноценно работать с большим проектом.

Обычно многие статьи заканчиваются командами h, j, k, l. А дальше читайте официальную документацию, там всё подробно описано. А выйти-то как? А как отступ добавить?

Так вот, отступ в режиме NORMAL задаётся через двойное нажатие >. И тут вот какая проблема: статьи-то на самом деле хорошие, просто команд и сценариев так много, что всего не перечислишь. А еще есть куча разнообразных форков со своими доработками. Например, я пользовался LunarVim. В целом, было неплохо, но некоторые вещи долгое время не исправлялись. И вот однажды я полез искать как же поправить один баг и с удивлением обнаружил, что проект не развивается.

Решил попробовать Astronvim. Проект оказался поинтереснее: быстрее, более структурированнее. И как-то так увлекся настройкой (что-то добавил, что-то переназначил), что в итоге сделал свой форк.

В какой-то момент, устав читать документацию и статьи, я купил себе книжку Practical VIM. Сначала читал демо, потом еще раз читал демо. Понял, что очень понравилось. Простой английский, легкое повествование. Текст читается прекрасно. К слову, у меня есть ещё одна книга про VIM “Изучаем vi и VIM”. Так вот в этой книге я продвинулся всего на четыре главы. В общем, “Practical VIM” понравилась больше.

И вот к примеру пара цитат из книги:

The combination of operators with motions forms a kind of grammar. The first rule is simple: an action is composed from an operator followed by a motion. Learning new motions and operators is like learning the vocabulary of Vim. If we follow the simple grammar rules, we can express more ideas as our vocabulary grows.
Neil, Drew. Practical Vim (pp. 24-25). Pragmatic Bookshelf. Kindle Edition.

и

when an operator command is invoked in duplicate, it acts upon the current line. So dd deletes the current line, while >> indents it.
Neil, Drew. Practical Vim (p. 25). Pragmatic Bookshelf. Kindle Edition.

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

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

Пробовал несколько раз Helix Editor, но там слишком много хотекеев переделано по-своему. Ребята хотели сделать понятнее, а получилось запутанее. Потому что сложно переучиться на другие команды и хотекеи.

Вывода у статьи не будет. Скорее это просто чекпоинт на тему “вот узучаю VIM”.

Белградская десятка

20241014_081056_87b887.webp

Ну что, сегодня 10км в Белграде. Вчера вот съездил, получил стартовый пакет. В этом году футболка кислотно-зелёного цвета. Прям под цвет кроссовок 🙂

К этому старту я готовился. Вот прям готовился-готовился. И надежды были пробежать по 4:50. Но последнюю неделю то спину ломит, то хвост отваливается. Поэтому пришлось скорректировать цель. Решил, что побегу не на скорость, а где-то в пол силы и 5:30 — 6 минут на километр уже будет хорошо. Впереди еще Новисадский забег в октябре и Бока в декабре.

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

20241014_081132_764bcc.webp

“Ребята, какие спортивные часы выбрать?”

Шёл 2024 год, а люди в интернетах до сих пор спрашивают какие спортивные часы выбрать. Обычно холивар идет про Garmin и Apple Watch. Иногда из толпы кто-то кричит Coros, Samsung, Huawei. Но обычно их заглушают поклонники Garmin и фанаты Apple.

На самом деле, любые часы подойдут. Правда есть одна оговорка: не нужно думать что есть какая-то определенная марка и модель, которая будет очень точной и закроет все потребности. Нет, это не так. Любые часы прекрасны как часы. Любые умные спортивные часы – это маркетинговый кусок говна, который вам удалось продать. Разница между ними в количестве свистелок.

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

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

Умные часы дарят ощущение контроля сна. Вот же, графики на часах показываются. Но знаете, по настоящему контролировать сон можно только отправляясь спать вовремя. Графики в часах не помогут высыпаться. А если вы спите по 7-8 часов, то какая разница, сколько там у вас там минут глубокого сна?

В каждых спортивных часах есть GPS. Но если пробежать по одному и тому же маршруту на стадионе, кругов так 10, то можно увидеть насколько это неровные круги. И вот обзорщики часов с умными лицами сравнивают точность gps модулей. Но ведь это же не так и важно. Там отклонения всего считанные метры.

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

PS: У меня Garmin, кстати 😀

4:48 /km

20241014_081244_682b34.webp

Сегодня на паркране случился личный рекорд. 7-го сентября бегу 10км в Белграде. А сегодня надо было пробежать пристрелочно, чтобы понять скорость и как долго я так смогу бежать по ощущениям. Вышло неплохо, пятерку по 4:48 за километр я еще не бегал. Если допустить, что 10ку я побегу не на все деньги, а чуть слабее, то я бы ставил на 5:20.

Но это лишь прогноз. Как там будет на самом деле узнаем через неделю.

Четырехдневная поездка в Стамбул

20241014_081432_4154cf.webp

“You pay, you go” сказал секьюрити на FastTrack. И этой фразой можно описать вообще весь Стамбул: метро, где для смены ветки, надо выйти, оплатить и снова зайти; кафе, где tax включают в стоимость, магазины, в которых можно торговаться… Всё-всё. При этом оплата не гарантирует качество. Оплата гарантирует уменьшение денег.

Но давайте обо всём по порядку. Для начала: что такое FastTrack. В аэропорту Sabiha Gokcen в Стамбуле в зоне таможенного досмотра огромная очередь. Судя по отзывам из Google Maps иногда людям не хватает двух часов, чтобы пройти досмотр. Решение этой проблемы гениальное. Вместо увеличения количества пунктов досмотра, добавили возможность пройти досмотр за деньги! Этот коридор был абсолютно пустым, никакой очереди. Приходишь, платишь около 1000 лир за одного человека (в евро это около 25) и легко проходишь. Цена не малая, но длина очереди на бесплатный досмотр просто пугает. Так что, мы решили не рисковать и заплатить. Кстати, на платном досмотре никого не заинтересовала бутылка с водой. Одним словом, удобно!

20241014_081502_e6bb60.webp

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

20241014_081523_63b511.webp
Небольшая улочка в районе Таксим

Перемещаться по городу можно на автобусах, трамваях и метро. Если в аэропорту купить Istambul Card, то ей очень удобно платить: прислонил у терминала на проходной в метро или в автобусе, деньги списались и всё. Пополнять карту можно на станциях метро. Очень удобный способ оплаты. Как и само метро, кстати, самый удобный, понятный и предсказуемый вид транспорта в Стамбуле.

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

20241014_081553_9f8692.webp

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

20241014_081611_f697b2.webp
Пролив Босфор

В эту короткую поездку мы видели немного. Из открытий — видели александрийских попугаев. Это было в парке Yıldız. Они там живут, как и голуби или воробьи в наших регионах.

Но общее впечатление от увиденного неоднозначное. Вроде красиво, интересно, чтобы посмотреть это один раз. Но ничего такого впечатляющего, за чем хотелось бы возвращаться снова и снова. Это не горы Банфа или парк Тиргартен.

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

Бег против инсулинорезистентности: как регулярные пробежки улучшают метаболизм

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

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

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

Диагностировать и назначать лечение конечно же нужно только через посещение врача. Я лишь хочу подсветить влияние бега на снижение уровня инсулина.

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

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

В-третьих, бег снижает уровень воспаления в организме. А воспаление, как мы помним, может усугублять инсулинорезистентность. Так что, надевая кроссовки, вы не только укрепляете мышцы, но и боретесь с невидимым врагом — воспалением.

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

Но помните, чудес не бывает. Одной пробежкой в неделю не обойтись. Тут важен комплексный подход: сон, питание, низкий уровень страсса. Исследования показывают, что для заметного улучшения чувствительности к инсулину нужно бегать минимум 3-4 раза в неделю по 30-40 минут. И да, интенсивность тоже важна — нужно чередовать спокойные пробежки с интервальными тренировками. И кто знает, может через пару месяцев регулярных пробежек ваш организм скажет вам спасибо не только в виде подтянутой фигуры, но и улучшенных показателей здоровья.