Идея этой статьи родилась во время задушевных разговоров на кухне и за утренним кофе с коллегами. Началось все с вопроса: «Чтобы ты бы сказал себе прошлому, чтобы релизы стали легче, а спринты прекраснее?» Конечно, в тот момент я ничего дельного не ответил, но, кажется, наконец-то сформулировал идеальную фразу: «Настоящий разработчик, Слав, это не тот, кто с сияющим макбуком и вкусным смузи. Разработчик — тот, кто делает то, что нужно сделать. И в легаси покопаться приходится, и memory leak дебажить, а он всё равно делает, потому что так надо».
Привет, Хабр! Меня зовут Вячеслав Чащухин, я — разработчик в МойОфис. Занимаюсь мобильной версией Squadus — цифрового рабочего пространства для совместной работы и деловых коммуникаций.
Обращаю ваше внимание на то, что эта статья — не инструкция по решению всех проблем. Скорее, чек-лист причин, которые, по моему мнению, чаще всего приводят к тем или иным проблемам. Поэтому в некоторых пунктах будут ссылки или упоминания возможных решений. Я объединил проблемы по группам. Если вы обнаружили в своем приложении подлагивания или не хотите их обнаружить в будущем, рекомендую пройтись по пунктам:)
Читать далееМоё приложение представляет собой каталог, который объединяет профили исследователей безопасности с различных платформ, таких как HackerOne, Bugcrowd, GitHub и других. Фронтенд подключается к Supabase, и я создал его с помощью инструментов Lovable и Cursor. Вся автоматизация, которая подает данные в базу данных, обрабатывается отдельно.
Изначально я планировал разрешить пользователям самостоятельно регистрироваться через Supabase Auth и запрашивать профили, которые они хотели бы агрегировать. Но в процессе реализации я понял: это создаёт риски, ведь нужно корректно управлять как аутентификацией (какой именно пользователь), так и авторизацией (что ему разрешено). Я отказался от саморегистрации… но упустил важную деталь. (Подробнее об этом чуть позже.)
Читать далееВ рамках статьи расскажем о расширении pg_trace, предназначенном для сбора трассировок запросов в PostgreSQL, соберем трассировку на реальном примере работы приложения, оценим влияние сбора трассировки на производительность и агрегируем данные трассировки.
Читать далееСегодня хочу поговорить с вами про такую животрепещущую тему, как интеграция новых процессов в команду. Неважно, идёт ли речь о канбане, скраме, каких-то ритуалах которые вы проводите с утра - как только вы приносите что-то новое, начинается сопротивление. Даже если оно пассивное, даже если люди говорят «да-да, окей» - это ещё не значит, что процесс будет принят и заработает как надо.
Важно: мы сейчас не обсуждаем, стоит ли вообще что-то вводить. Предположим, вы уже всё проверили: провели анализ, посмотрели на команду, сравнили с метриками и точно уверены что изменения нужны. Тогда начинается настоящая работа: как это донести до людей и внедрить так, чтобы не вызвать саботаж.
Читать далееВ RAG-решениях все чаще обращаются к графовым базам данных. В этой статье я опишу своё мнение относительно того, в каких ситуациях графовые базы данных действительно оправданы в RAG, а в каких стоит остаться на традиционном векторном подходе. Это может быть полезно для разработчиков и исследователей, которые ищут оптимальные инструменты для построения RAG-решений и хотят понять, когда графовые базы данных могут помочь в их задачах.
Читать далееСегодня я расскажу о баге, который позволял мне захватить любой аккаунт пользователя. Сначала это была проблема уровня P4, но я не стал сообщать о ней, а довёл до уровня P1 с помощью цепочки уязвимостей. Без лишних слов — начнём!
Я не имею права раскрывать информацию о цели, поэтому давайте назовём её example.com. Это был обычный сайт. Ничего особенного: можно создать аккаунт, войти, поменять пароль и так далее.
Как обычно, я создал два аккаунта. Сначала зарегистрировался и вошёл в аккаунт жертвы, после чего проверил все запросы и ответы через Burp Suite. Я обнаружил, что сайт использует какой-то CSRF-токен для защиты от CSRF-атак. В исходном коде страницы я заметил, что сайтом каждому пользователю присваивается userID. Это шестизначный идентификатор, поэтому его можно легко угадать.
Далее я перешёл в настройки аккаунта, изменил часть своей информации (я всё ещё нахожусь в аккаунте жертвы) и зафиксировал этот запрос.
Читать далееВ 70 световых годах от Земли астрономы обнаружили удивительный мир — планету, чья орбита направлена противоположно движению второй звезды в системе. Главное светило там чуть массивнее Солнца, его компаньон — белый карлик. Планета, зажатая в узком пространстве между двумя светилами, не только существует в сложной гравитационной среде, у нее еще и ретроградная орбита. Все это делает ν Октанта настоящей загадкой для науки. Давайте попробуем разобраться.
Читать далееСинтетические данные – это искусственно сгенерированные наборы, имитирующие структуру и статистические закономерности реальных данных. В последние годы вокруг этой технологии возник значительный ажиотаж. Еще недавно аналитики прогнозировали, что уже к 2024 году до 60% данных, используемых для разработки ИИ, будут синтетическими. Однако на практике полностью перейти на «искусственные» данные пока не удалось. Экспертные отчеты отмечают, что возможности синтетических данных сейчас несколько переоценены и что они вряд ли смогут в ближайшем будущем полностью заменить реальные данные. В разных отраслях синтетические данные используются скорее точечно, а не повсеместно. Ниже мы рассмотрим ключевые причины, почему применение таких данных остается редким – от технических ограничений и бизнес-факторов до правовых барьеров.
Читать далееВсем привет, меня зовут Дмитрий Лоренц, я iOS-разработчик в IT-компании GRI. Наш основной клиент — Sunlight, для него мы разрабатываем нескольких мобильных приложений по полному циклу и поддерживаем сайт.
В этой статье я расскажу про нашу новую архитектуру для iOS-приложения и поделюсь некоторыми советами, как упростить себе жизнь и сделать код более лаконичным и читаемым.
Развертывание Bitwarden с AWS RDS и Terraform — безопасное и масштабируемое решение
Особое внимание уделено валидации переменных в Terraform , которая помогает избежать ошибок при настройке облачной инфраструктуры.
Собрали вдохновляющие истории от IT-специалистов, чтобы узнать, как им удается совмещать спорт с напряженной рабочей рутиной и не терять мотивацию (и как и когда они эту мотивацию нашли).
Читать далееПривет, Хабр!
Вы запускаете многопроцессную задачу, кидаете данные в multiprocessing.Queue(), а потом вдруг замечаете... что всё тормозит. Муторно. Медленно. Местами прям отвратительно. Вы смотрите в монитор, на top, на htop, на код — и не понимаете: ну ведь должно же летать! А не летит.
Читать далееКоманда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль.
Доклад публикуется тремя частями. В первой части было рассказано об основных подходах к созданию цепочек фильтров, а также разработан простейший фильтр. Во второй части мы рассказали об Authentication объектах и продемонстрировали, как разработать специализированный фильтр для обеспечения доступа программы-робота к основному приложению. В третьей части мы поговорим об абстракции AuthenticationProvider и приведем пример ее использования.
Читать далееКоманды по разработке ПО, работающие самостоятельно, используют более широкий набор инструментов, чем когда-либо прежде. В обычной команде по разработке ПО может быть двадцать или даже тридцать инструментов.
В этой статье мы обсудим набор инструментов для тестировщика, о том, как выбрать между проприетарным и открытым исходным кодом, а также разберем краткое упражнение по выбору инструмента.
Читать далееНастройка алертинга для своевременного оповещения о возможных проблемах с системой Pilot. Используется инструмент AlerManager, который будет отправлять оповещения на основе метрик Pilot-Server из Prometheus.
Читать далееЭта история прежде всего для родителей первоклашек, которые летом должны много прочитать. Программирования тоже немного будет, но главное — хотелось просто поделиться инструментом, надеюсь, полезным.
Первоклашке за лето нам нужно прочитать 39 произведений. Объём довольно приличный, поэтому подумалось, что нужно применить планирование, мониторинг и прочие технологии управления.
Читать далееДля одного из наших клиентов разбирали рынок WMS систем и хотим поделиться с вами.
Рынок складских систем в России больше не играет в догонялки – он задаёт темп. Импортозамещение перестало быть политическим лозунгом, превратившись в работающую бизнес-модель: отечественные WMS-решения не просто заполнили вакуум после ухода западных вендоров, но и создали новые стандарты эффективности. В 2024 году объём рынка превысил 7 млрд рублей, демонстрируя рост 25-30% год к году – и это только начало.
Читать далее