Пора, наверное, рассказать про RICH Domain Model. Как делать и зачем оно надо 🙂
❤9🔥3👀2🤔1
OpenAI временно перестали продавать подписки за $200 долларов. Не хватает у ребят пока мощности))
2💩2
🐸 Rybbit — open-source аналитика вместо Google Analytics
Если GA4 раздражает интерфейсом, а Plausible кажется слишком аскетичным — посмотрите на Rybbit. За полтора года проект набрал ~13k звёзд на GitHub и выглядит как редкий случай, когда «опенсорсная замена» реально приятнее оригинала.
Что умеет:
- Базовые метрики: сессии, уникальные пользователи, просмотры, bounce rate, длительность сессии
- Session replay — записи сессий прямо в дашборде
- Воронки, user journeys, retention, кастомные цели
- Кастомные события с JSON-свойствами
- Фильтры по 15+ измерениям
- География в трёх уровнях (страна → регион → город) с картами
- Трекинг ошибок и real-time дашборд
- Организации и неограниченное число сайтов
ℹ️ Почему это интересно:
Работает без cookies — то есть без баннеров согласия и плясок вокруг GDPR. Под капотом ClickHouse, так что на больших объёмах не задохнётся. Разворачивается на своём VPS через docker compose за пару минут, либо берёте облако, если возиться не хочется.
Лицензия AGPL-3.0, стек — TypeScript. Web Vitals, правда, только в платном облаке.
🔗 GitHub: https://github.com/rybbit-io/rybbit
👀 Живое демо: https://demo.rybbit.com/81
Если GA4 раздражает интерфейсом, а Plausible кажется слишком аскетичным — посмотрите на Rybbit. За полтора года проект набрал ~13k звёзд на GitHub и выглядит как редкий случай, когда «опенсорсная замена» реально приятнее оригинала.
Что умеет:
- Базовые метрики: сессии, уникальные пользователи, просмотры, bounce rate, длительность сессии
- Session replay — записи сессий прямо в дашборде
- Воронки, user journeys, retention, кастомные цели
- Кастомные события с JSON-свойствами
- Фильтры по 15+ измерениям
- География в трёх уровнях (страна → регион → город) с картами
- Трекинг ошибок и real-time дашборд
- Организации и неограниченное число сайтов
ℹ️ Почему это интересно:
Работает без cookies — то есть без баннеров согласия и плясок вокруг GDPR. Под капотом ClickHouse, так что на больших объёмах не задохнётся. Разворачивается на своём VPS через docker compose за пару минут, либо берёте облако, если возиться не хочется.
Лицензия AGPL-3.0, стек — TypeScript. Web Vitals, правда, только в платном облаке.
🔗 GitHub: https://github.com/rybbit-io/rybbit
👀 Живое демо: https://demo.rybbit.com/81
GitHub
GitHub - rybbit-io/rybbit: 🐸 Rybbit - open-source and privacy-friendly alternative to Google Analytics that is 10x more intuitive.
🐸 Rybbit - open-source and privacy-friendly alternative to Google Analytics that is 10x more intuitive. - rybbit-io/rybbit
Что мы ожидаем от Unit Lead (ИТ-лидер 3-5 команд)
Главная задача Unit Lead — повышать способность команд решать приоритетные задачи бизнеса: быстрее адаптироваться, завершать больше ценной работы и сохранять качество и надёжность продукта.
Для меня это пять зон ответственности.
1️⃣ Развивать продуктовых инженеров и команды
Помогать людям расти профессионально и понимать бизнес эквайринга. Создавать условия для обмена знаниями и взаимозаменяемости, сохраняя глубокую экспертизу. Поддерживать доверие, сплочённость и самостоятельность команд.
2️⃣ Отвечать за результативность разработки
Обеспечивать прозрачные и достоверные метрики производительности, доступной ёмкости команд, скорости поставки и качества. Добиваться устойчивого улучшения без перегрузки людей. Развивать Agile, Scrum, LeSS и CI/CD в своих командах и продвигать полезные изменения на уровне банка.
3️⃣ Встраивать техническое развитие в продукт
Вместе с менеджерами продукта объяснять технический долг через бизнес-эффекты: снижение рисков и затрат, повышение надёжности, ускорение будущих изменений. Добиваться приоритизации этой работы в едином продуктовом бэклоге, наравне с продуктовыми задачами. Обеспечивать соблюдение согласованных DoR и DoD.
4️⃣ Разрешать межкомандные зависимости и конфликты
Представлять команды в обсуждениях архитектуры, границ ответственности и НМА. Добиваться решений и исполнения договорённостей с другими командами и руководителями, включая CTO. Устранять системные препятствия и помогать командам взаимодействовать напрямую, сохраняя их самостоятельность.
5️⃣ Отвечать за соблюдение SLA продукта
Обеспечивать измерение уровня сервиса, надёжность и готовность продукта к эксплуатации. Организовывать реагирование на инциденты и восстановление сервиса. Добиваться устранения причин нарушений, в том числе в зависимых системах, и включения необходимых изменений в продуктовый бэклог.
ℹ️ Результат работы Unit Lead — команды, которые становятся сильнее и самостоятельнее, устойчиво приносят пользу бизнесу и поддерживают надёжный продукт.
Главная задача Unit Lead — повышать способность команд решать приоритетные задачи бизнеса: быстрее адаптироваться, завершать больше ценной работы и сохранять качество и надёжность продукта.
Для меня это пять зон ответственности.
Помогать людям расти профессионально и понимать бизнес эквайринга. Создавать условия для обмена знаниями и взаимозаменяемости, сохраняя глубокую экспертизу. Поддерживать доверие, сплочённость и самостоятельность команд.
Обеспечивать прозрачные и достоверные метрики производительности, доступной ёмкости команд, скорости поставки и качества. Добиваться устойчивого улучшения без перегрузки людей. Развивать Agile, Scrum, LeSS и CI/CD в своих командах и продвигать полезные изменения на уровне банка.
Вместе с менеджерами продукта объяснять технический долг через бизнес-эффекты: снижение рисков и затрат, повышение надёжности, ускорение будущих изменений. Добиваться приоритизации этой работы в едином продуктовом бэклоге, наравне с продуктовыми задачами. Обеспечивать соблюдение согласованных DoR и DoD.
Представлять команды в обсуждениях архитектуры, границ ответственности и НМА. Добиваться решений и исполнения договорённостей с другими командами и руководителями, включая CTO. Устранять системные препятствия и помогать командам взаимодействовать напрямую, сохраняя их самостоятельность.
Обеспечивать измерение уровня сервиса, надёжность и готовность продукта к эксплуатации. Организовывать реагирование на инциденты и восстановление сервиса. Добиваться устранения причин нарушений, в том числе в зависимых системах, и включения необходимых изменений в продуктовый бэклог.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1
Кто уже пробовал Jev, о котором говорит весь мир?
Jev: вместо ещё одного чат-бота — «умный if»
Не всем приложениям нужен ответ нейросети на три абзаца. Иногда достаточно определить: куда направить обращение, насколько оно срочное и нужен ли человек.
TypeSafe представила Jev — модель, которая вместо свободного текста возвращает категорию из заданного списка, вероятность события или оценку по шкале.
Пример сценария:
«С меня дважды списали деньги» → категория «платежи» → код отправляет обращение в нужный отдел.
Модель интерпретирует текст. Бизнес-правила и действия остаются в коде. Никаких объяснений на полстраницы, которые приложение всё равно не использует.
Но правильный формат ≠ правильное решение. Jev может выбрать неверную категорию, поэтому проверки и передача спорных случаев человеку по-прежнему нужны.
Интерес здесь не в «убийце LLM», а в разделении работы: код проверяет условия, Jev классифицирует, генеративная модель пишет.
Jev: вместо ещё одного чат-бота — «умный if»
Не всем приложениям нужен ответ нейросети на три абзаца. Иногда достаточно определить: куда направить обращение, насколько оно срочное и нужен ли человек.
TypeSafe представила Jev — модель, которая вместо свободного текста возвращает категорию из заданного списка, вероятность события или оценку по шкале.
Пример сценария:
«С меня дважды списали деньги» → категория «платежи» → код отправляет обращение в нужный отдел.
Модель интерпретирует текст. Бизнес-правила и действия остаются в коде. Никаких объяснений на полстраницы, которые приложение всё равно не использует.
Но правильный формат ≠ правильное решение. Jev может выбрать неверную категорию, поэтому проверки и передача спорных случаев человеку по-прежнему нужны.
Интерес здесь не в «убийце LLM», а в разделении работы: код проверяет условия, Jev классифицирует, генеративная модель пишет.
🤷♂4
Поделитесь своим сайтом локальной разработки с кем угодно с помощью нового сервиса try от claudflare
https://try.cloudflare.com/
Но вообще, это не новый сервис, раньше был ngrok 🚀
Для демонстраций перед заказчиками самое то!!!
https://try.cloudflare.com/
Но вообще, это не новый сервис, раньше был ngrok 🚀
Для демонстраций перед заказчиками самое то!!!
Cloudflare
Cloudflare Quick Tunnels
Put localhost on the Internet with a free, encrypted Cloudflare Quick Tunnel. No account, DNS, or open ports required.
❤3
Компании сейчас делиться на два типа:
- мы внедряем AI (а это приводит к тому, что все становится медленно), и поэтому увольняем людей
- мы увольняем людей, потому что у нас нет денег, а для остальных AI в помощь 🚀
Вы в какой компании?
- мы внедряем AI (а это приводит к тому, что все становится медленно), и поэтому увольняем людей
- мы увольняем людей, потому что у нас нет денег, а для остальных AI в помощь 🚀
Вы в какой компании?
В Python могут появиться ?. и ?? 🐍
Нас, похоже, ждёт меньше однотипных проверок на
Появились два предложения для Python 3.16. Оба пока в статусе Draft — новый синтаксис ещё не принят.
1. ?. — доступ к атрибуту с проверкой на None
Сейчас:
Предлагают:
Если
Можно собрать и цепочку:
Если
В том же PEP предлагают
Остальные ошибки не скрываются: если объект не
🔗 PEP 823
2. ?? — значение по умолчанию, если слева None
Сейчас:
Предлагают:
Если слева
Вот главное отличие от or:
Бонус: ??=
Присвоить значение, только если текущее равно
🔗 PEP 824
Как вам такой синтаксис? Давно пора или привычные
Нас, похоже, ждёт меньше однотипных проверок на
None.Появились два предложения для Python 3.16. Оба пока в статусе Draft — новый синтаксис ещё не принят.
1. ?. — доступ к атрибуту с проверкой на None
Сейчас:
name = None
if user is not None:
name = user.name
Предлагают:
name = user?.name
Если
user равен None, результат — None. Иначе получим user.name.Можно собрать и цепочку:
city = user?.address?.city
Если
user или address равны None, цепочка остановится и вернёт None.В том же PEP предлагают
?[] для доступа по индексу или ключу.Остальные ошибки не скрываются: если объект не
None, отсутствие атрибута или ключа по-прежнему вызовет исключение.🔗 PEP 823
2. ?? — значение по умолчанию, если слева None
Сейчас:
timeout = config_timeout
if timeout is None:
timeout = 30
Предлагают:
timeout = config_timeout ?? 30
Если слева
None, получим 30. Если там 0 — он сохранится.Вот главное отличие от or:
0 or 30 # 30
0 ?? 30 # 0
None ?? 30 # 30
False и пустая строка тоже сохраняются. Подмена происходит только для None.Бонус: ??=
Присвоить значение, только если текущее равно
None:timeout ??= 30
🔗 PEP 824
Как вам такой синтаксис? Давно пора или привычные
if ... is None понятнее? 🙂👍5
📋 Maccy: бесплатная история буфера обмена для Mac
Скопировали полезную ссылку, потом команду из терминала — и теперь снова ищете ссылку по вкладкам? Для таких случаев есть Maccy.
Это небольшая утилита для macOS, которая сохраняет историю скопированного. Ссылки, фрагменты кода, текст и картинки можно найти и использовать повторно.
Как это работает
Нажимаете ⇧⌘C — открывается история. Начинаете печатать, чтобы найти нужную запись, выбираете её и жмёте Enter. Она снова в буфере обмена: остаётся вставить через ⌘V.
Что пригодится в работе:
• Вернуть команду, которую копировали час назад, даже если после неё скопировали ещё десять вещей.
• Собрать несколько ссылок и фрагментов кода, а затем вставить их по очереди.
• Закрепить часто используемый текст — например, шаблон ответа.
• Вставить текст без чужих шрифтов и оформления.
Maccy работает с клавиатуры, хранит историю на компьютере и имеет открытый исходный код. Для текущей версии нужна macOS 14 Sonoma или новее.
И да, скачать её можно бесплатно. На GitHub доступна бесплатная версия, а в App Store приложение платное — это способ поддержать разработку.
Бесплатная загрузка: https://github.com/p0deje/Maccy/releases/latest
О программе: https://maccy.app/
Полезная мелочь для тех, у кого ⌘C и ⌘V — самые рабочие клавиши 🙂
А вы пользуетесь историей буфера обмена или каждый раз идёте копировать заново?
Скопировали полезную ссылку, потом команду из терминала — и теперь снова ищете ссылку по вкладкам? Для таких случаев есть Maccy.
Это небольшая утилита для macOS, которая сохраняет историю скопированного. Ссылки, фрагменты кода, текст и картинки можно найти и использовать повторно.
Как это работает
Нажимаете ⇧⌘C — открывается история. Начинаете печатать, чтобы найти нужную запись, выбираете её и жмёте Enter. Она снова в буфере обмена: остаётся вставить через ⌘V.
Что пригодится в работе:
• Вернуть команду, которую копировали час назад, даже если после неё скопировали ещё десять вещей.
• Собрать несколько ссылок и фрагментов кода, а затем вставить их по очереди.
• Закрепить часто используемый текст — например, шаблон ответа.
• Вставить текст без чужих шрифтов и оформления.
Maccy работает с клавиатуры, хранит историю на компьютере и имеет открытый исходный код. Для текущей версии нужна macOS 14 Sonoma или новее.
И да, скачать её можно бесплатно. На GitHub доступна бесплатная версия, а в App Store приложение платное — это способ поддержать разработку.
Бесплатная загрузка: https://github.com/p0deje/Maccy/releases/latest
О программе: https://maccy.app/
Полезная мелочь для тех, у кого ⌘C и ⌘V — самые рабочие клавиши 🙂
А вы пользуетесь историей буфера обмена или каждый раз идёте копировать заново?
GitHub
Release 2.7.1 · p0deje/Maccy
Updated app icon for Liquid Glass (#1474) (credits to @genucoder).
Increased the minimum popup height to 3 history items.
Added Portuguese translation.
Added Khmer translation.
Fixed paste without ...
Increased the minimum popup height to 3 history items.
Added Portuguese translation.
Added Khmer translation.
Fixed paste without ...
3
Ходят слухи, что при устройстве на Rust разработчика вместе с макбуком выдают чулочки. Кто тут работает раст разработчиком, расскажите, так ли это?
😁5
По моей непроверенной информации МИРО начали отказывать в продлении лицензии российским компаниям.
Миро с 1 ноября отказали в продление лицензий.
Условиями пользования сервиса предусмотрено 30 дней после окончания срока подписки для экспорта контента. После истечения этого периода Miro вправе удалить данный контент в соответствии со своим стандартным графиком хранения данных.
Таким образом, в день истечения подписки в ноябре у вас исчезнет возможность редактирования досок, но вы все еще сможете экспортировать доски.
Если у вас МИРО, да еще и корпоративный, самое время задуматься о миграции.
Миро с 1 ноября отказали в продление лицензий.
Условиями пользования сервиса предусмотрено 30 дней после окончания срока подписки для экспорта контента. После истечения этого периода Miro вправе удалить данный контент в соответствии со своим стандартным графиком хранения данных.
Таким образом, в день истечения подписки в ноябре у вас исчезнет возможность редактирования досок, но вы все еще сможете экспортировать доски.
Если у вас МИРО, да еще и корпоративный, самое время задуматься о миграции.
🕊1
Похоже, у AI-разработки начинает появляться свой
Microsoft выложила APM — Agent Package Manager.
Если совсем просто: это npm / pip / Cargo, только для AI-агентов.
Сейчас конфигурация agentic-проекта обычно выглядит примерно так:
— где-то лежит
APM предлагает довольно очевидную, но важную абстракцию:
В одном manifest можно описать зависимости агента:
• skills • plugins • instructions • agents • prompts / hooks • MCP servers • другие APM-пакеты
А дальше:
И окружение агента собирается из декларативного описания.
Причём APM уже ориентируется не на один конкретный AI-клиент.
Заявлена работа с:
GitHub Copilot, Claude Code, Cursor, Codex, Gemini, Windsurf, Kiro, OpenCode и Grok Build.
Отдельно интересна работа с MCP:
То есть постепенно появляется ещё один слой инфраструктуры:
не просто “дать LLM промпт”, а управлять зависимостями и runtime-контекстом агента как полноценным software artifact.
И вот это, на мой взгляд, самое важное.
Мы уже прошли путь:
Следующий логичный этап:
dependency management для agentic software.
Чтобы можно было сказать:
вот версия нашего агента, вот его skills, вот MCP, вот policies и зависимости — разверни мне точно такое же окружение.
То есть агентная конфигурация постепенно перестаёт быть набором файлов, которые разработчики копируют между проектами, и начинает становиться воспроизводимой частью проекта.
Для командной разработки это потенциально очень большой сдвиг.
Интересно будет посмотреть, станет ли
🚀 Но направление кажется практически неизбежным:
у AI-агентов появляется свой package management.
https://github.com/microsoft/apm
package.json.Microsoft выложила APM — Agent Package Manager.
Если совсем просто: это npm / pip / Cargo, только для AI-агентов.
Сейчас конфигурация agentic-проекта обычно выглядит примерно так:
— где-то лежит
AGENTS.md; — отдельно skills; — отдельно prompts; — MCP-серверы настраиваются руками; — у Claude Code одна структура; — у Cursor другая; — у Codex третья; — а потом всё это нужно каким-то образом воспроизвести у другого разработчика или в CI.APM предлагает довольно очевидную, но важную абстракцию:
apm.ymlВ одном manifest можно описать зависимости агента:
• skills • plugins • instructions • agents • prompts / hooks • MCP servers • другие APM-пакеты
А дальше:
apm installИ окружение агента собирается из декларативного описания.
Причём APM уже ориентируется не на один конкретный AI-клиент.
Заявлена работа с:
GitHub Copilot, Claude Code, Cursor, Codex, Gemini, Windsurf, Kiro, OpenCode и Grok Build.
Отдельно интересна работа с MCP:
apm install --mcp io.github.github/github-mcp-server --transport httpТо есть постепенно появляется ещё один слой инфраструктуры:
не просто “дать LLM промпт”, а управлять зависимостями и runtime-контекстом агента как полноценным software artifact.
И вот это, на мой взгляд, самое важное.
Мы уже прошли путь:
prompt → system prompt → tools → MCP → skills → agentsСледующий логичный этап:
dependency management для agentic software.
Чтобы можно было сказать:
вот версия нашего агента, вот его skills, вот MCP, вот policies и зависимости — разверни мне точно такое же окружение.
То есть агентная конфигурация постепенно перестаёт быть набором файлов, которые разработчики копируют между проектами, и начинает становиться воспроизводимой частью проекта.
Для командной разработки это потенциально очень большой сдвиг.
Интересно будет посмотреть, станет ли
apm.yml чем-то вроде одного из стандартных manifest-файлов AI-native проектов или рынок в итоге придёт к другому формату.🚀 Но направление кажется практически неизбежным:
у AI-агентов появляется свой package management.
https://github.com/microsoft/apm
GitHub
GitHub - microsoft/apm: Agent Package Manager
Agent Package Manager. Contribute to microsoft/apm development by creating an account on GitHub.
👍10