К содержимому

13 сентября 2026 · 256-й день года

С Днём программиста

Смотреть итоги
«Talk is cheap. Show me the code.»
Болтать легко. Покажите код.
Линус Торвальдс · рассылка ядра Linux, 25 августа 2000

4 275 contributions за год

110 репозиториев3 413 коммитов2,9 млн строк кода без выгрузок

октноядекянвфевмарапрмайиюниюлавгсенпнсрпт13 сентября · 0 contributions14 сентября · 0 contributions15 сентября · 0 contributions16 сентября · 0 contributions17 сентября · 0 contributions18 сентября · 0 contributions19 сентября · 0 contributions20 сентября · 0 contributions21 сентября · 0 contributions22 сентября · 0 contributions23 сентября · 0 contributions24 сентября · 0 contributions25 сентября · 0 contributions26 сентября · 0 contributions27 сентября · 0 contributions28 сентября · 0 contributions29 сентября · 0 contributions30 сентября · 0 contributions1 октября · 0 contributions2 октября · 0 contributions3 октября · 0 contributions4 октября · 0 contributions5 октября · 0 contributions6 октября · 0 contributions7 октября · 0 contributions8 октября · 0 contributions9 октября · 5 contributions10 октября · 17 contributions11 октября · 1 contributions12 октября · 5 contributions13 октября · 0 contributions14 октября · 0 contributions15 октября · 0 contributions16 октября · 4 contributions17 октября · 0 contributions18 октября · 0 contributions19 октября · 0 contributions20 октября · 0 contributions21 октября · 2 contributions22 октября · 0 contributions23 октября · 0 contributions24 октября · 2 contributions25 октября · 2 contributions26 октября · 1 contributions27 октября · 5 contributions28 октября · 14 contributions29 октября · 4 contributions30 октября · 3 contributions31 октября · 0 contributions1 ноября · 0 contributions2 ноября · 23 contributions3 ноября · 20 contributions4 ноября · 9 contributions5 ноября · 2 contributions6 ноября · 11 contributions7 ноября · 19 contributions8 ноября · 17 contributions9 ноября · 11 contributions10 ноября · 8 contributions11 ноября · 13 contributions12 ноября · 1 contributions13 ноября · 1 contributions14 ноября · 2 contributions15 ноября · 0 contributions16 ноября · 0 contributions17 ноября · 0 contributions18 ноября · 0 contributions19 ноября · 0 contributions20 ноября · 0 contributions21 ноября · 0 contributions22 ноября · 0 contributions23 ноября · 0 contributions24 ноября · 0 contributions25 ноября · 0 contributions26 ноября · 0 contributions27 ноября · 0 contributions28 ноября · 0 contributions29 ноября · 0 contributions30 ноября · 0 contributions1 декабря · 0 contributions2 декабря · 0 contributions3 декабря · 0 contributions4 декабря · 0 contributions5 декабря · 0 contributions6 декабря · 0 contributions7 декабря · 0 contributions8 декабря · 0 contributions9 декабря · 0 contributions10 декабря · 0 contributions11 декабря · 0 contributions12 декабря · 2 contributions13 декабря · 0 contributions14 декабря · 0 contributions15 декабря · 0 contributions16 декабря · 8 contributions17 декабря · 3 contributions18 декабря · 0 contributions19 декабря · 2 contributions20 декабря · 0 contributions21 декабря · 0 contributions22 декабря · 0 contributions23 декабря · 0 contributions24 декабря · 0 contributions25 декабря · 0 contributions26 декабря · 0 contributions27 декабря · 0 contributions28 декабря · 0 contributions29 декабря · 0 contributions30 декабря · 0 contributions31 декабря · 0 contributions1 января · 0 contributions2 января · 1 contributions3 января · 1 contributions4 января · 1 contributions5 января · 0 contributions6 января · 4 contributions7 января · 3 contributions8 января · 1 contributions9 января · 2 contributions10 января · 2 contributions11 января · 6 contributions12 января · 3 contributions13 января · 8 contributions14 января · 5 contributions15 января · 9 contributions16 января · 12 contributions17 января · 5 contributions18 января · 5 contributions19 января · 6 contributions20 января · 12 contributions21 января · 9 contributions22 января · 6 contributions23 января · 5 contributions24 января · 0 contributions25 января · 0 contributions26 января · 161 contributions27 января · 2 contributions28 января · 0 contributions29 января · 133 contributions30 января · 12 contributions31 января · 0 contributions1 февраля · 0 contributions2 февраля · 0 contributions3 февраля · 0 contributions4 февраля · 0 contributions5 февраля · 99 contributions6 февраля · 40 contributions7 февраля · 45 contributions8 февраля · 69 contributions9 февраля · 84 contributions10 февраля · 130 contributions11 февраля · 120 contributions12 февраля · 8 contributions13 февраля · 113 contributions14 февраля · 26 contributions15 февраля · 25 contributions16 февраля · 0 contributions17 февраля · 13 contributions18 февраля · 51 contributions19 февраля · 6 contributions20 февраля · 2 contributions21 февраля · 24 contributions22 февраля · 4 contributions23 февраля · 22 contributions24 февраля · 0 contributions25 февраля · 22 contributions26 февраля · 49 contributions27 февраля · 0 contributions28 февраля · 58 contributions1 марта · 7 contributions2 марта · 10 contributions3 марта · 6 contributions4 марта · 1 contributions5 марта · 0 contributions6 марта · 0 contributions7 марта · 16 contributions8 марта · 8 contributions9 марта · 0 contributions10 марта · 0 contributions11 марта · 23 contributions12 марта · 4 contributions13 марта · 0 contributions14 марта · 0 contributions15 марта · 0 contributions16 марта · 4 contributions17 марта · 1 contributions18 марта · 0 contributions19 марта · 0 contributions20 марта · 0 contributions21 марта · 0 contributions22 марта · 0 contributions23 марта · 3 contributions24 марта · 0 contributions25 марта · 0 contributions26 марта · 0 contributions27 марта · 0 contributions28 марта · 0 contributions29 марта · 0 contributions30 марта · 0 contributions31 марта · 0 contributions1 апреля · 5 contributions2 апреля · 19 contributions3 апреля · 0 contributions4 апреля · 0 contributions5 апреля · 0 contributions6 апреля · 0 contributions7 апреля · 0 contributions8 апреля · 2 contributions9 апреля · 4 contributions10 апреля · 0 contributions11 апреля · 0 contributions12 апреля · 6 contributions13 апреля · 9 contributions14 апреля · 36 contributions15 апреля · 32 contributions16 апреля · 20 contributions17 апреля · 3 contributions18 апреля · 0 contributions19 апреля · 2 contributions20 апреля · 2 contributions21 апреля · 4 contributions22 апреля · 6 contributions23 апреля · 1 contributions24 апреля · 0 contributions25 апреля · 0 contributions26 апреля · 0 contributions27 апреля · 1 contributions28 апреля · 0 contributions29 апреля · 0 contributions30 апреля · 0 contributions1 мая · 0 contributions2 мая · 0 contributions3 мая · 0 contributions4 мая · 1 contributions5 мая · 0 contributions6 мая · 0 contributions7 мая · 0 contributions8 мая · 0 contributions9 мая · 0 contributions10 мая · 0 contributions11 мая · 0 contributions12 мая · 0 contributions13 мая · 0 contributions14 мая · 0 contributions15 мая · 0 contributions16 мая · 0 contributions17 мая · 0 contributions18 мая · 2 contributions19 мая · 0 contributions20 мая · 13 contributions21 мая · 0 contributions22 мая · 19 contributions23 мая · 6 contributions24 мая · 0 contributions25 мая · 6 contributions26 мая · 59 contributions27 мая · 65 contributions28 мая · 32 contributions29 мая · 1 contributions30 мая · 1 contributions31 мая · 0 contributions1 июня · 0 contributions2 июня · 0 contributions3 июня · 0 contributions4 июня · 0 contributions5 июня · 0 contributions6 июня · 0 contributions7 июня · 2 contributions8 июня · 0 contributions9 июня · 9 contributions10 июня · 0 contributions11 июня · 15 contributions12 июня · 27 contributions13 июня · 6 contributions14 июня · 17 contributions15 июня · 16 contributions16 июня · 4 contributions17 июня · 1 contributions18 июня · 18 contributions19 июня · 65 contributions20 июня · 56 contributions21 июня · 8 contributions22 июня · 26 contributions23 июня · 29 contributions24 июня · 3 contributions25 июня · 0 contributions26 июня · 0 contributions27 июня · 0 contributions28 июня · 0 contributions29 июня · 9 contributions30 июня · 9 contributions1 июля · 5 contributions2 июля · 10 contributions3 июля · 51 contributions4 июля · 0 contributions5 июля · 27 contributions6 июля · 21 contributions7 июля · 6 contributions8 июля · 4 contributions9 июля · 0 contributions10 июля · 3 contributions11 июля · 0 contributions12 июля · 0 contributions13 июля · 0 contributions14 июля · 0 contributions15 июля · 104 contributions16 июля · 31 contributions17 июля · 28 contributions18 июля · 49 contributions19 июля · 37 contributions20 июля · 11 contributions21 июля · 0 contributions22 июля · 15 contributions23 июля · 19 contributions24 июля · 10 contributions25 июля · 0 contributions26 июля · 1 contributions27 июля · 3 contributions28 июля · 16 contributions29 июля · 87 contributions30 июля · 6 contributions31 июля · 0 contributions1 августа · 0 contributions2 августа · 0 contributions3 августа · 1 contributions4 августа · 14 contributions5 августа · 3 contributions6 августа · 4 contributions7 августа · 0 contributions8 августа · 42 contributions9 августа · 117 contributions10 августа · 65 contributions11 августа · 20 contributions12 августа · 1 contributions13 августа · 2 contributions14 августа · 34 contributions15 августа · 190 contributions16 августа · 82 contributions17 августа · 31 contributions18 августа · 48 contributions19 августа · 23 contributions20 августа · 27 contributions21 августа · 31 contributions22 августа · 39 contributions23 августа · 44 contributions24 августа · 26 contributions25 августа · 28 contributions26 августа · 121 contributions27 августа · 32 contributions28 августа · 6 contributions29 августа · 33 contributions30 августа · 0 contributions31 августа · 0 contributions1 сентября · 5 contributions2 сентября · 38 contributions3 сентября · 14 contributions4 сентября · 24 contributions5 сентября · 3 contributions6 сентября · 23 contributions7 сентября · 50 contributions8 сентября · 72 contributions9 сентября · 9 contributions10 сентября · 19 contributions11 сентября · 5 contributions12 сентября · 4 contributions
192дня из 365
22дня подряд
19015 августа — самый активный день
01–45–910–2728+

Языки

Доля коммитов

  • Python34,7 %
  • TypeScript28,5 %
  • JavaScript11,8 %
  • HTML9,7 %
  • Shell5,2 %
  • CSS3,3 %
  • PLpgSQL1,7 %
  • Jupyter1,6 %
  • Прочие3,4 %

Репозитории по весу

Площадь круга — коммиты за год

Продукты · 21,2 % коммитовКлиентские · 14,4 % коммитовКонтент · 8,8 % коммитовПродукты · 7,3 % коммитовЭксперименты · 4,7 % коммитовПродукты · 4,1 % коммитовЭксперименты · 3,8 % коммитовИнфраструктура · 3,8 % коммитовКлиентские · 3,1 % коммитовИнфраструктура · 2,7 % коммитовПродукты · 2,7 % коммитовКонтент · 2,4 % коммитовЭксперименты · 1,4 % коммитовЭксперименты · 1,3 % коммитовМелкие · 1,3 % коммитовКлиентские · 1,2 % коммитовЭксперименты · 1,1 % коммитовЭксперименты · 1,0 % коммитовЭксперименты · 0,9 % коммитовЭксперименты · 0,9 % коммитовЭксперименты · 0,9 % коммитовКонтент · 0,8 % коммитовЭксперименты · 0,8 % коммитовЭксперименты · 0,7 % коммитовКлиентские · 0,7 % коммитовЭксперименты · 0,6 % коммитовПродукты · 0,6 % коммитовКлиентские · 0,5 % коммитовЭксперименты · 0,5 % коммитовЭксперименты · 0,4 % коммитовЭксперименты · 0,4 % коммитовЭксперименты · 0,4 % коммитовКонтент · 0,4 % коммитовИнфраструктура · 0,4 % коммитовИнфраструктура · 0,4 % коммитовЭксперименты · 0,3 % коммитовЭксперименты · 0,3 % коммитовКонтент · 0,3 % коммитовЭксперименты · 0,2 % коммитовЭксперименты · 0,2 % коммитовИнфраструктура · 0,2 % коммитовЭксперименты · 0,2 % коммитовКлиентские · 0,2 % коммитовЭксперименты · 0,2 % коммитовЭксперименты · 0,1 % коммитовКонтент · 0,1 % коммитовИнфраструктура · 0,1 % коммитовИнфраструктура · 0,1 % коммитовКлиентские · 0,1 % коммитовКлиентские · 0,1 % коммитовКлиентские · 0,1 % коммитовЭксперименты · 0,1 % коммитовЭксперименты · 0,1 % коммитовЭксперименты · 0,1 % коммитовЭксперименты · 0,1 % коммитовЭксперименты · 0,1 % коммитовКонтент · 0,1 % коммитовКлиентские · 0,1 % коммитовКонтент · 0,1 % коммитов

Куда ушли коммиты

Доля коммитов по типам

  • Продукты35,8 %
  • Эксперименты21,8 %
  • Клиентские20,5 %
  • Контент12,9 %
  • Инфраструктура7,6 %
  • Мелкие1,3 %

По дням недели

Пик — среда, 19 %

понедельник · 13 % коммитов13%пнвторник · 15 % коммитов15%втсреда · 19 % коммитов19%срчетверг · 11 % коммитов11%чтпятница · 13 % коммитов13%птсуббота · 17 % коммитов17%сбвоскресенье · 13 % коммитов13%вс

На чём пишу

Технологии из манифестов репозиториев за год: зависимости, Dockerfile, CI и конфиги.

Фронтенд

ReactTailwind CSSNext.jsViteZodZustandTanStack QueryFramer MotionReact Routershadcn/uiRechartsReact Hook FormStreamlitSwiftUITelegram Mini AppsThree.jsHugoLuau

Бэкенд

Node.jsFastAPIUvicornhttpxPydanticSQLAlchemyPlaywright-парсингBeautifulSoupFastifyCeleryExpressTelethonaiogrampython-telegram-botDjangogrammYGoNestJSRustWagtail

Данные

PostgreSQLRedisExcel (openpyxl)NumPypandasJupyterSQLiteAlembicDrizzlePyMuPDFSupabasepgvectorApache SupersetPrismaClickHouseDuckDB

AI

Claude CodeCodexGemini APIOpenAI APIClaude APICursorDifyPyTorchTransformersWhisperpyannoteLangGraphn8n

Инфраструктура

Docker ComposeDockerGitHub ActionsCaddynginxGrafana / LokiPrometheusstructlogKeycloakKubernetes / HelmVercelAnsibleUptime Kuma

Качество

TypeScriptpytestESLintVitestRuffTesting LibraryПокрытие тестамиProperty-based тестыmypyPlaywright e2eTrivyPrettierStryker (мутации)hadolintJestaxe-corepre-commit

Хочешь себе так же?

Скопируйте промпт и отдайте агенту с доступом к терминалу — Claude Code или Codex. Он соберёт такой же год по вашему GitHub: только агрегаты, без названий репозиториев.

Промпт
Роль: ты аналитик данных и верстальщик. Собери «Год в коде» — итоги моего года в GitHub — и сдай одностраничным HTML, PDF и PNG.

ОКРУЖЕНИЕ
- gh CLI установлен и авторизован: проверь gh auth status, логин возьми из gh api user.
- Период: ровно 365 дней, последний день — вчера. Часовой пояс спроси у меня, если не знаешь.
- Всё только чтением через API, репозитории не клонируй.

ПРИВАТНОСТЬ — ГЛАВНОЕ ПРАВИЛО
- Почти все мои репозитории приватные. В итоговые файлы попадают только агрегаты.
- Никаких названий репозиториев, организаций, веток, файлов, текстов коммитов и имён клиентов — ни в HTML, ни в JSON, ни в PDF, ни в PNG.
- Названия живут только в локальном repo_map.local.json. Сразу добавь его в .gitignore.

ЭТАП 1. СБОР
1. Репозитории, которыми владеет мой аккаунт: GraphQL viewer.repositories(ownerAffiliations: OWNER). Организации не трогай, пока я не скажу.
2. По каждому — мои коммиты за период по всем веткам: refs → history(since, until). Запрашивай только oid, authoredDate, additions, deletions, author.user.login. Сообщения коммитов не запрашивай.
3. Дедуп: коммит в нескольких ветках — один раз; после rebase и cherry-pick — по отпечатку authoredDate + additions + deletions.
4. Календарь contributionsCollection.contributionCalendar за тот же период — это число сойдётся с профилем.
5. GitHub отдаёт время в UTC. Переведи в мой часовой пояс до подсчёта часов и дней.
6. Сначала прогони 10 репозиториев, замерь время и назови оценку полного прогона.

ЭТАП 2. ПОДСЧЁТ → stats.json
- totals: репозитории на аккаунте, contributions, коммиты, строки добавлено, PR смержено. Коммиты крупнее 50 000 строк — почти всегда выгрузки и зависимости: исключи их из строк и покажи мне, что исключено.
- days (по календарю contributions): активные дни, самая длинная серия, пиковый день.
- rhythm: коммиты по 24 часам и 7 дням недели.
- languages: доля языка в репозитории × мои коммиты в нём, top-8 + прочие. Байты целого репозитория искажают картину.
- repos: анонимные {category, commits}. Категории product / client / experiment / infra / content предложи по названиям в терминале, итог утверждаю я.
- stack: технологии из package.json, pyproject, requirements, Dockerfile, compose и CI — только из справочника публичных названий, внутренние пакеты не выводить.
Покажи итоговые цифры в терминале и остановись до моего «да».

ЭТАП 3. ВЁРСТКА
- Один самодостаточный HTML без внешних запросов: шрифты с кириллицей встрой base64 и проверь покрытие по cmap, графики — inline SVG, данные — в <script type="application/json">.
- Состав: крупные итоговые числа, тепловая карта 53 × 7, языки, репозитории кружками (площадь = коммиты), дни недели в процентах, стек по слоям.
- Сначала пришли картинку: облик утверждаю по изображению, а не по описанию.

ЭТАП 4. ВЫПУСК И ПРОВЕРКИ
- PDF через Playwright: ровно одна страница A4, ничего не обрезано — проверь pdfinfo.
- PNG из PDF в 250 dpi: 90 dpi на ретине выглядит мылом.
- Гейт приватности: ищи каждое название из repo_map.local.json во всех выходных файлах (в PDF — по pdftotext, в PNG — по текстовым чанкам). Одно совпадение — не сдавай.