WebSocket и SSE просто, для собеседований и не только

WebSocket vs SSE простым языком: двустороннее и однонаправленное соединение, как работает TCP и HTTP upgrade, и какие вопросы по этим темам чаще всего задают на собеседовании.

WebSocket vs SSE простым языком: двустороннее и однонаправленное соединение, как работает TCP и HTTP upgrade, и какие вопросы по этим темам чаще всего задают на собеседовании.

Вечером в пятницу коллега, назовем его Мститель, спросил, не сталкивался ли я с проблемой, что route возвращает 400... но «если сменить название на сильно другое», то всё ок. Я сперва не обратил внимание на слово «сильно». Может быть, где-то дублируется регистрация этого рута? Или мститель перепутал GET и POST. Или какой-то баг в общем на создание хэндлеров?

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

Каждый, кто проводит в терминале больше пяти минут, сталкивается с одним и тем же: одни и те же длинные команды приходится набирать снова и снова, а рутинные действия отнимают время и внимание. Сначала терпишь, потом — начинаешь оптимизировать.
Простейший алиас в .bashrc или .zshrc кажется небольшим открытием. Первый рабочий скрипт, сохранённый в ~/.local/bin, ощущается как прорыв. Это не просто про лень — это про эффективность, про оптимизацию работы.
Со временем такая «мелкая оптимизация» собирается в целый личный фреймворк или набор утилит для командной строки. Это уже не пара заплаток, а твоя собственная среда, отточенная под конкретные задачи. В этой статье я хочу показать свою коллекцию таких скриптов и алиасов — не как идеальный стандарт, а как пример живого подхода. Возможно, какие-то решения окажутся полезными и вам, а главное — побудят создать что-то своё, ещё более удобное.

Пару лет назад в CSS произошла тихая революция, вызвавшая тектонический сдвиг в разработке интерфейсов. Вкратце — нам разрешили «сверлить» настоящие дырки в блоках.
Создание блоков с вырезами всегда было трудоёмким, даже для вырезов простейшей формы. Фронтендеры годами тренировались мысленно рассекать блоки на части: прямоугольничек для контента, прямоугольничек для выреза и ещё парочка рядом с ним. И вдруг парадигма поменялась...
Простые вырезы теперь делаются в десять раз быстрее. Одной строчкой кода. Да, надо менять мышление и забывать про нарезку блоков. И как же это приятно!
В статье мы сверстаем карточку с круглым вырезом двумя способами: традиционно‑дедовским и современным. Затем сравним объём кода, простоту и гибкость получившихся реализаций. И порадуемся, что будущее уже наступило!
Жил-был я. И был у этого "я" небольшой пул виртуальных машин. Но пришло время, и появилось осознание, что у моего облачного провайдера (пусть будет С) не все условия мне нравятся. А, вот, у другого провайдера (путь будет провайдер В) условия для некоторых виртуалок повкуснее. И замыслил я неладное. Я решил разнести инфраструктуру между разными провайдерами. Но эту, так называемую, инфру необходимо скоммутировать между собой. Потому что гонять сервисный трафик через интернеты - дурная затея. И родился у меня план. Даже не так ПЛААААН!!! А следом, и эта статья. Предвосхищая вопросы почему не обычный VPN, отвечу: это во-первых, скучно, во-вторых, не подлежит публикации, в-третьих, в последнее время нестабильное ввиду блокировок. Disclaimer! Цель статьи - рассмотреть вариант осуществить связность конкретных элементов инфраструктуры, используя публичные каналы связи. Статья не ставит целью описать способ обхода блокировок и осуждает (хоть и не искренне) подобные статьи.

Приветствую всех читателей Habr. Время от времени я выкладываю в открытый доступ некоторые свои проекты по электронике. Сегодня я хочу представить устройство, которое делал с особым удовольствием - EFEKTA Open PM Monitor.
Это Zigbee-датчик мониторинга твердых частиц (PM1.0, PM2.5, PM10). В версии 2.0 в проект добавился сенсор ENS160 для измерения TVOC, eCO2 и AQI, а также небольшой дублирующий OLED-дисплей 128×64.
Но главная его «фишка» - аналоговый стрелочный индикатор.

Мы привыкли видеть Telegram как список чатов и каналов на своём устройстве. Но это лишь малая часть большой экосистемы, ограниченная подписками каждого пользователя. А как выглядит вся экосистема целиком? Эта статья — о том, как мы провели масштабное исследование контента Telegram и разработали интерактивную карту с 500 000 каналами.

Кому будет полезно: дизайнерам, готовящимся к whiteboard, особенно тем, кто сталкивается с этим форматом впервые.
Что внутри: личный опыт прохождения whiteboard в Т-Банке и инсайды от лида, который проводит десятки таких собеседований.
Главный вывод: whiteboard проверяет не решение, а ваше мышление, умение задавать вопросы и работать в диалоге.
Я Андрей - продуктовый дизайнер в Т-Банке, до этого был в Госуслугах.
Мой первый whiteboard был на собеседовании именно сюда.До этого у меня всегда были либо тестовое задание, либо разбор кейсов. Все проходило довольно привычно. Здесь же рекрутер сам предложил пообщаться, о смене работы я не думал.
Дальше была стандартная цепочка: скрининг, техсобеседование, портфолио. А потом HR сказал: "Договоримся о дате whiteboard". Для меня это было в новинку.
Конец квартала, праздники, переносы. До запланированной даты оставалось довольно много времени.
Я понял, что просто прийти и как-нибудь решить не получится. Начал читать все подряд: статьи, треды, чужие истории. Сначала в голове была каша — слишком много подходов и советов. Потом постепенно стало понятно, как вообще работает формат. И главное — стало ясно, что одной теории недостаточно. Нужно тренироваться.

Всем привет. В ходе этого материала вы узнаете:
1. Как сделать простой рендер на c# в MonoGame
2. Что использовать, чтобы вызвать python из c#
3. Почему пункт 2 - это плохая идея
4. Как MonoGame игру сбилдить в web/html с помощью его форка KNI
Пристёгивайтесь, будет весело!

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

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

В этой статье разберём процесс написания API автотестов на Python, используя современные best practices. Кроме того, мы настроим их запуск в CI/CD с помощью GitHub Actions и сформируем Allure-отчёт с историей запусков. Цель статьи — не только показать, как писать качественные API автотесты, но и научить запускать их в CI/CD, получая удобные отчёты о результатах.

Что будет, если больше 200 бэкенд‑разработчиков запускают по 2–3 новых проекта в неделю в более чем 400 микросервисов, написанных на пяти разных языках — C++, Go, Python, Java и PHP? Ответ хорошо знаком любому, кто сталкивался с быстрорастущей распределённой системой: хаос появляется быстрее, чем успеваешь его отлавливать. И в какой‑то момент становится очевидно, что нужна надёжная точка контроля, чтобы поддерживать архитектуру в рабочем состоянии.
В Яндекс Еде этой точкой стало архитектурное ревью — процесс, который постепенно вырос из локальной инициативы в полноценный инструмент управления сложной системой. В этой статье я расскажу, как эволюционировало архревью, какие инсайты появились по пути и как этот процесс выглядит сегодня.

Чем покупка букета на 8 Марта через Яндекс Еду отличается от покупки, собственно, еды? С точки зрения пользователя — ничем. Выбрал, оплатил, доставили. А вот с точки зрения разработчика бэкенда заказ уникальных букетов превращается в нетривиальную инженерную задачу синхронизации складских запасов. Задержка синхронизации хотя бы в 10 минут трансформируется в звонок и сборщиков заказов, сообщающих о том, что именно такого букета на складе больше нет.
Меня зовут Виталий Московкин, я занимаюсь ритейлом в Яндекс Еде. В статье я расскажу, как мы синхронизировали состояние складов с 18 миллионами уникальных товаров: сначала с помощью PostgreSQL, а затем с помощью YDB. Такое количество товаров превращается на бэкенде в 4 миллиарда записей о ценах и стоках, которые нельзя просто так кешировать. Но и замена монолитной СУБД на распределённую тоже задача не на десять минут. Подробности — под катом.

Недавно я получил статус Major Contributor в проекте PostgreSQL. Это довольно радостное для меня событие и интересное, поэтому коллеги попросили написать статью об этом. А чтобы я не сомневался — заботливо составили список достижений за меня. Получилось замечательно, но публиковать от своего имени статью вида «как я крут» я не хочу. Я совсем не против про это говорить, и из каждого утюга вещаю про разные технологии, сделанные моей командой или вот прям вообще мной. Но только в контексте «как использовать эти технологии», либо в узком кругу или личной беседе.
Я решил написать другую статью: что у меня не получилось. Писал довольно спешно, поэтому, возможно, местами будет понятно только специалистам. Не расстраивайтесь, если что‑то неясно и пришлось гуглить. А вот если всё понятно — возможно, стоит меньше смотреть в монитор и чаще трогать траву.
Инкрементальное улучшение любой популярной технологии зачастую имеет негативные последствия. И в большинстве случаев предлагаемых в PostgreSQL доработок — вред превышает пользу. Построить что‑то новое, ничего не сломав, бывает трудно и в чистом поле, а ядро PostgreSQL в этом смысле — лабиринт с граблями.

Всем привет! Меня зовут Сидоров Антон, я руководитель отдела технической архитектуры в департаменте сопровождения информационных технологий ПСБ. Моя команда занимается архитектурой инфраструктурных систем, и сегодня я хочу рассказать вам про наш первый опыт использования подхода «Архитектура как код»

Эта статья родилась из практической задачи — понять, как устроен Android в общем и целом, как он сохраняет и восстанавливает состояния приложения (помимо БД и файлов) при внезапном завершении процесса, как управляет процессами.
Я разберу ключевые системные компоненты (Zygote, SystemServer, AMS, Binder) и процесс восстановления состояния через Bundle.
Привет, Хабр! Я Михаил Богатиков, Android‑разработчик в ПСБ.
На одном из собеседований мне задали вопрос, про восстановление приложения после смерти, на который я не смог ответить. Мне стало интересно и я решил изучить этот вопрос и в результате появилась эта статья.

Как говорится, в споре рождается истина. И этот случай не стал исключением. Часто проектирую запросы, консультирую аналитиков, сама консультируюсь у разработчиков и заметила, что иногда мы по-разному понимаем некоторые аспекты REST. Когда я стала погружаться в тему, то материала набралось столько, что одной статьей не обойтись. Понимание мифов позволяет делать более осознанный выбор при проектировании.
С вами Дарья Борисова, системный аналитик из ПСБ, и я начинаю цикл статей «Мифы о REST».

Всем привет! На связи Positive Labs, R&D-подразделение Positive Technologies, занимающееся исследованиями и разработкой hardware и не только. В своих прошлых статьях [этой и этой] мы грузили уважаемых читателей техническими подробностями наших исследований. Сегодня же мы предлагаем вернутся в 2024 год и послушать историю создания интерактивного бейджа для фестиваля PHDays Fest 2. Устраивайтесь поудобнее и приготовьте ваши фейспалмы: пользоваться ими придется часто :)