При работе с Jetpack Compose разработчики часто не замечают, как элементы Material и Material 3 дизайн-систем вплетаются в их код. Один из таких элементов - это индикация клика, реализованная в Material как круги на воде (англ. ripple effect). В этой статье мы разберем, в чем недостатки дефолтной реализации риппл-эффекта в Compose и как сделать свою.
Читать далееПять лет назад я сделал некоммерческий проект с немного провокационным названием — «Школа брата Антония». Это был базовый курс по изучению программирования на языке Swift. Тогда я утверждал, что существует явное окно возможностей, которым стоит воспользоваться. Впоследствии я получил десятки писем с благодарностью — люди писали, что это действительно был хороший совет. Многие решились на изменения в жизни — и не прогадали. Бывшие электрики, продавцы, HR-специалисты, стоматологи (за врачей мне немного стыдно), хирург (тут я чувствую себя ещё хуже) смогли устроиться на высокооплачиваемую работу. Кландайк.
Но в 2025 году пришло время признать, что ландшафт серьёзно изменился. Вместо окна возможностей осталась форточка. В неё сложно, но всё ещё можно запрыгнуть.
Читать далееПо своему опыту преподавания информатики и программирования регулярно замечаю, что вдумчивые начинающие программисты, отличающиеся внимательным отношением к различным деталям применяемых в программировании терминов, не редко впадают в ступор, изучая переведённые на русский язык книги известных на Западе программистов: М. Лутц, Дж Гл. Брукшир, М. Саммерфильд, М. Прайс, J.P. Мюллер, J. Албахари и т.д. Например, чем отличается Statement, Operator, Instruction, и почему они так переводятся на русский язык?
В интернете на этот счёт много достаточно противоречивой информации, даже в англоговорящей среде, а в переводных книгах на русском языке это ещё усложняется, если не понимать нюансы. Поэтому подготовил небольшой материал для начинающих программистов с целью упрощения понимания этих вопросов. Фактологического материала в черновиках у меня много по терминам IT, но все не объять, поэтому постараюсь быть кратким. При этом, как справедливо отметил, один программист на форуме: «Все эти основы IT, термины скорее вопрос философский, плюньте и забудьте, практическому программированию это никак не мешает и не помогает».
Однако для тех начинающих программистов, кто хочет выстроить стройную систему знаний такой ответ явно не подходит. И почему знания должны быть искажёнными, некорректными, если он тратит время на обучение, лучше сразу выучить правильно, чем потом переобучаться. Это культура знаний. Помню, когда ещё был молодым адъюнктом, решил на актуальные для себя темы поговорить (пообсуждать) с учёным со стажем, он послушал меня, рассмеялся и сказал: «Давайте сначала мы договоримся о терминах, а потом пообсуждаем Ваши вопросы. Вы не тушуйтесь, это обычная ситуация, все через это проходят.» Применительно к IT, когда наш специалист в беседе с западными применяет словосочетание, например, if operator, вместо if statement – это режет слух. Но нравоучения вряд ли кому понравятся, поэтому перейдём к нашей теме.
Читать далееКогда я стала администратором чата, мне казалось, что это будет ответственно, но весело, как прогулка в лесу в воскресный день: удалять ненужное, поддерживать участников, отвечать на вопросы. Однако совсем скоро я столкнулась с тем, с чем не ожидала столкнуться — со своим собственным недовольством. Участники раздражали тем, что задавали одни и те же вопросы. Важная информация раздражала тем, что терялась в потоке. Мой FOMO не уменьшался, а рос. А моё Избранное в Телеграме разбухало от пересланных сообщений, которые я никогда не перечитаю.
Читать далееЧасть 2: Настройка GitHub Actions и GitLab CI – первый workflow и деплой
В первой статье мы разобрались с основами CI/CD: что это такое, зачем нужно и какие инструменты существуют. Теперь пришло время перейти от теории к практике – создадим наши первые рабочие CI/CD-конвейеры на GitHub Actions и GitLab CI.
Читать далееПривет, Хабр!
В этой статье — история запуска Telegram Mini App, куда за трое суток пришло 100.000 реальных пользователей.
Покажу, как мы масштабировали Node.js приложения на многоядерных серверах, увеличивали RPS в 10 раз, боролись с N+1 проблемой в MongoDB и снижали нагрузку на CPU. А ещё расскажу как мы быстро настроили мониторинг через Grafana, подключили Cloudflare и интегрировали Sentry. Поделюсь практическими инсайтами о том, на что стоит обращать внимание в первую очередь, и как эти инструменты помогли нам оперативно находить узкие места и устранять сбои в реальном времени. Всё, о чём будет в этой статье, основано на том, что действительно сработало. Кроме того, расскажу, какие моменты мы упустили до запуска.
Это разбор с цифрами, графиками и практическими выводами. Он может сэкономить вам время, нервы и деньги, если вы готовитесь к запуску Telegram Mini App или просто работаете с Node.js-приложениями, которые могут оказаться под серьёзной нагрузкой.
Это первая часть истории — про то, как мы готовились к запуску, что предусматривали и на что делали ставку.
Во второй части будет про то, что именно сломалось первым после релиза, как мы это чинили и какие решения приняли, чтобы приложение продолжало работать под нагрузкой.
Читать далееВ первой части статьи мы заложили фундамент.
В этой части статьи мы переходим от сценариев к архитектуре целых тестовых библиотек: подключаем lifecycle-хуки, вводим @Context и @Inject, создаём Step Library и автоматизируем запуск целых слоёв.
Читать далееВсем привет! Я Владислав Урих, работаю продуктовым аналитиком в Авито, сейчас занимаюсь построением алгоритмов мэтчинга в новом транзакционном продукте — Авито Подработка. В статье рассказываю, как мы построили алгоритм мэтчинга — инструмент подбора оптимальной выдачи для каждого конкретного покупателя.
Вы узнаете, почему алгоритмы поиска в категориях Авито работают по-разному, как собрать и использовать больше данных о пользователях без анкет, легко проверить гипотезу в офлайн-тестах и получить значимые продуктовые улучшения.
Текст будет полезен всем продуктовым аналитикам, ML-инженерам и продакт-менеджерам, которые работают с алгоритмическими продуктами.
Читать далееZerotrust по-пацански
Первый подход к описанию построения ZT в реальных условиях. В этой части определимся с понятиями и набросаем схему.
Читать далееМай принёс отличные новости для Flutter-разработчиков: обновления SDK, интересные статьи, пачка новых и полезных пакетов, а также видео на русском и английском языках.
Читать далееМозг похож на театр и вы в нём — режиссёр, который может управлять мыслительными процессами (в том, числе путём обмана) и не пускать на сцену сознания ненужные мысли.
Конспект книги с полезными рекомендациями управления своим мозгом.
Читать далееНа тему построения системы автоматизации тестирования в рамках конвейера CI/CD написано немало различных публикаций. В этой статье мы хотим рассказать о том, как строился процесс тестирования одного продукта в реальной организации, какие сложности и ошибки возникали и как они решались.
Читать далееВнедрение ИИ технологий – это неизбежность для коммерческих организаций, желающих остаться конкурентными на своем рынке, да, и просто желающих выжить. Общемировая динамика освоения ИИ за 2024 год по оценке McKinsey показывает 20% рост числа организаций, внедривших ИИ хотя бы в одну бизнес функцию.
Инновационный бум, масштабы и скорость трансформации технологического ландшафта приводят к появлению новых подходов и методологий в выстраивании цифрового фундамента бизнеса. Gartner's AI Technology Sandwich – это новый фреймворк, помогающий компаниям различного уровня управлять процессом построения AI-powered экосистем и систематизировать их сложную многослойную структуру.
Читать далееНикто давно не пытается выводить теорий о том как правильно писать код.
Старые теории и способы об этом думать в общественной дискуссии давно свелись к спору о синтаксическом сахаре да и теории те были попыткой выделения каких-то математических свойств кода. Потом как известно была доказана невозможность этого.
Сейчас всё изменилось - мы должны рассуждать о проекте как о том, что постоянно изменяется большими группами людей, какая-то часть и кода и людей может быть неправильной, никто из модифицирующих не знает проекта целиком, нужны новые идеи и способы рассуждения.
Читать далееДолгих дней и приятных ночей! Меня зовут Натали, я IT Project Manager со стажем 10+ лет. В данной статье хочу поднять вопрос негативного влияния добровольно‑принудительных командировок удаленщиков в офис как на сотрудников, так и на компанию вцелом. Особенно первый раз. Особенно для интровертов. Статья будет полезна руководителям, проджектам, HR и любому it‑специалисту (возможно вы узнаете себя, и убедитесь что вы такой не один). Поехали!
Представим, что вы — руководитель (тимлид, ПМ, Head of PMO, не столь важно). Работаете в крупной компании в Москве, следите за финансовыми метриками успешности проекта/компании. Под вашим руководством распределенная команда — многие работают в Москве на гибриде, кто‑то всегда из дома, кто‑то из других городов. В какой то момент вы раздумываете над вопросом — а как увеличить эффективность команды? Часто на этом этапе руководители приходят к мысли, что нужно, как это сейчас модно, «сплотить» команду — и все сразу станут более производительными, чаще будут писать друг другу, просить и оказывать помощь, охотнее говорить о проблемах и быстрее придумывать решения.
Читать далееЧасть 1: Основы CI/CD – что это и зачем нужно; обзор GitHub Actions и GitLab CI
В последние годы вы, вероятно, слышали слова "DevOps", "CI", "CD", возможно, даже "GitHub Actions" или "GitLab CI". Но что это всё значит на практике? Нужно ли быть сеньором DevOps-инженером, чтобы с этим разобраться?
Читать далееМожет, вы это и подзабыли со школы, но в середине XVIII века Бенджамин Франклин первым выяснил природу молнии и провёл тот самый опыт с воздушным змеем. Казалось бы, всё стало ясно — молнии опасны, от них нужно защищаться. Достаточно просто ставить громоотводы.
Но, как это часто бывает с очевидными решениями, никто особенно не торопился их внедрять. За сто лет после опыта Франклина молнии продолжали бить куда попало — в церковные шпили, в высокие здания, в корабельные мачты. Случались пожары, разрушения, гибли люди. Учёные предупреждали, но власти предпочитали делать вид, что проблемы не существует.
Особенно тяжело приходилось британскому флоту — самому мощному и многочисленному в середине XIX века. Попадания молний в корабельные мачты были делом обыденным. Исправить ситуацию взялся врач и популяризатор науки Уильям Сноу Харрис — человек, который большую часть своей жизни пытался доказать военно-морскому министерству необходимость громоотводов. За настойчивость он получил прозвище Mr. Thunder-and-Lightning — «мистер Гром-и-Молния».
Читать далееЛара Крофт (Tomb Raider, 1996), Джилл Валентайм (Resident Evil, 1997), Регина (Dino Crisis, 2000). Широко знакомые имена героинь серий, начавших своё шествие в 1990-х и по своей знаковости ничем не уступающих иным известным космодесантникам и футуристическим пехотинцам. В определённой мере стык 1980-х и 1990-х можно назвать не только переходным периодом от схематичных пикселей к более красиво выглядящим спрайтам и, пусть порой пока и довольно угловатых полигонов, но и постепенной трансформации чисто аркадных персоналий в более полноценные образы.
Другой составляющей данного периода можно назвать всё более частое появление представительниц прекрасного пола не в качестве второстепенных или фоновых NPC, или же внеочередных принцесс в беде, а в качестве главного субъекта в хитросплетениях того или иного сюжета. С началом 00-х данная тенденция станет носить всё более массовый характер и постепенно перейдёт в привычную обыденность.
Сегодня хотелось бы вспомнить о нескольких героинях и связанных с ними играх, некогда мелькавших на экранах, но, со временем, зачастую позабытых.
Читать далееВ этой заметке я расскажу, почему я больше не хочу иметь отношения к современному интернету и попыткам вырваться из него
Читать далее