/playbook

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

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

ACHTUNG! UWAGA! You Are Now Entering the Nerd Zone!

Путеводитель по Петербургу

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

За всё время путеводитель просмотрели чуть больше 4,5 тысяч уникальных пользователей. Обновлял я его в последний раз в 2021 году, на второй год пандемии. Затем началась война, и стало как-то не до красот и не до веселья. Многие бары и рестораны из списка успели закрыться или испортиться, но архитектуру — всю — ещё не успели уничтожить. Так что пусть ещё здесь повисит.

Sash Windows from the Menshikov Palace in St. Petersburg, Russia

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

Репа нужна, в том числе, для таких вот визуализаций. Я пишу диаграмму в виде Mermaid-кода, который затем транслирую в SVG для публикаций.

Body Fat

Каждое воскресенье (ну, почти) я делаю замеры тела, чтобы отслеживать, как меняются процент жира и масса тела в зависимости от диеты и тренировок. Все данные вношу в табличку в Ноушене.

Так это выглядит в Notion на маке

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

sum(prop("Chest"),prop("Abdomen"),prop("Thigh"))

На основе этой суммы вычисляется процент жира:

lets(
  sum, prop("Sum"),
  age, prop("Age"),
  density,
    1.10938
    - 0.0008267 * sum
    + 0.0000016 * pow(sum, 2)
    - 0.0002574 * age,
  if(
    sum > 0 and not empty(age),
    round(495 / density - 450, 1),
    empty()
  )
)

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

let(
  fat,
  if(empty(prop("JP BodyFat")), prop("Body Fat"), prop("JP BodyFat")),
  ifs(
    fat <= 7, "🔵 Lean",
    fat <= 19, "🟢 Ideal",
    fat <= 24, "🟡 High",
    "🔴 Obese"
  )
)

Ранее процент жира рассчитывался по другой формуле. Отсюда два столбца: по Джексону-Поллоку и старые данные — они нужны мне для истории измерений.

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

Calories

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

Так это выглядит в Notion на винде

Сначала рассчитываю LBM — сухую массу тела без жира:

round(
  prop("Weight") * (100 - prop("Body Fat")) / 100,
  1
)

На основе LBM рассчитываю базовый метаболизм (BMR) по формуле Кетча-МакАрдла. Округляю результат до целого числа:

round(370 + (21.6 * prop("LBM")))

И, наконец, рассчитываю TDEE для дней отдыха, умножая BMR на коэффициент активности и прибавляя калорийный профицит. Обратите внимание, что я считаю не чистый TDEE, а, скорее, Target Calories с учётом профицита, поскольку моя цель — набирать мышечную массу, а не просто поддерживать текущий вес.

lets(
	activity, 1.3,
	calorieSurplus, 350,
	round(prop("BMR") * activity + calorieSurplus)
)

После этого я могу рассчитать целевые значения КБЖУ на день. Задаю норму белка в зависимости от сухой массы тела и жира — от своего общего веса:

lets(
  proteinPerKg, 2.0,
  fatPerKg, 1.0,
  calPerGramProtein, 4,
  calPerGramFat, 9,
  calPerGramCarb, 4,
  protein, round(prop("LBM") * proteinPerKg),
  fat, round(prop("Weight") * fatPerKg),
  carbs, round(
	(prop("TDEE Rest") - (protein * calPerGramProtein + fat * calPerGramFat)) / calPerGramCarb
	),
  join([protein, fat, carbs], ":")
)

Для тренировочных дней формулы те же, но коэффициент активности выше: 1.5, профицит калорий равен 450; белков на килограмм тела я беру 2.2 г, а жиров — 0.8.

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

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