Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Осенние будни DevOps: Debian 13 и Proxmox VE 9.0 в продакшене HOSTKEY

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.5K

Новая версия Debian 13 и релиз Proxmox VE 9.0 пришли почти одновременно, вызвав ажиотаж у клиентов. В статье рассказываем, как команда HOSTKEY адаптировала свои процессы, автоматизировала деплой и подготовила инфраструктуру под свежие релизы.

Читать далее

Как сделать идемпотентные API в Go: Idempotency-Key, дедуп в Redis/БД и защита от гонок

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров3.3K

Привет, Хабр!

Представьте: клиент отправил важный POST-запрос (например, создание заказа или списание денег), но из-за сетевого сбоя не получил ответ. Не зная, что на сервере операция уже выполнилась, клиент пробует повторить запрос. Если бэкенд не подготовлен к таким дублям, итог может быть печальным: мы создадим две одинаковые записи вместо одной или, хуже того, спишем деньги с пользователя два раза. Как этого избежать? Правильный ответ — реализовать идемпотентность в API.

Смотреть реализацию

По следам CPython. Часть 1. Настройка VS Code и первые шаги

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.9K

Привет, читатель! Меня зовут Александр Щербанюк, и я Python-разработчик. Это первая статья цикла, который посвящен разбору внутреннего устройства CPython.

Читать далее

Технологии, которые держат мир на связи. Как атакуют современный Wi-Fi

Время на прочтение28 мин
Количество просмотров4.1K

Когда речь заходит о беспроводных сетях, злоумышленники часто сосредотачивают усилия на поиске брешей в механизмах аутентификации и на атаках на них: подобным способом они пытаются проникнуть в корпоративную сеть. На прошлой неделе мы рассказали, как устроен процесс аутентификации и какие протоколы для этого применяются. В зависимости от выбранного протокола используются определенные методы шифрования и проверки данных.

Так, у широко распространенного протокола WPA2 есть ряд известных уязвимостей. Среди них — подбор пароля по захваченному рукопожатию (handshake), восстановление ключа при слабом пароле (перехват PMKID), атаки на WPS (в том числе перебор PIN‑кода). В корпоративных сетях также возможны атаки на механизмы аутентификации, например downgrade‑атаки при использовании устаревших методов вроде EAP‑GTC.

Ни один протокол не идеален, и даже WPA3 не стал исключением. Хотя он действительно более безопасен, чем предшественники, исследователи обнаружили в нем уязвимости под общим названием Dragonblood. Например, одна из них позволяет провести атаку на точку доступа в режиме WPA3-Transition Mode. В этом режиме точка доступа поддерживает одновременно WPA2 и WPA3, что позволяет злоумышленнику понизить уровень безопасности до уровня WPA2 и обойти защиту. Дополнительно существует инструмент DragonShift, который автоматизирует процесс такой атаки, еще больше упрощая задачу хакеру.

Чтобы нагляднее показать, как распределяются атаки на беспроводные сети (в том числе на WPA2 и WPA3), можно условно выделить несколько категорий.

Читать далее

Музыкальные программы на игровых приставках

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров8K

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

Однако, уже в 1990-х годах создание музыки стало доступно не только обладателям «настоящих» ПК, но и пользователям куда более простых и узкоспециализированных компьютерных устройств. Речь про игровые приставки, они же консоли. Для них тоже существовали музыкальные редакторы, и за годы их накопился целый исторический пласт. Покопаемся!

Читать далее

Семь кругов финтеха глазами разработчика: что ломается в платёжных интеграциях

Время на прочтение13 мин
Количество просмотров2.4K

Снаружи финтех выглядит безупречно: есть подробная документация, надёжные провайдеры, а платёжные интеграции будто можно внедрять «на автопилоте». Но стоит заглянуть внутрь, и вы попадаете в «семь кругов финтеха», где любая мелочь превращается в драму, отнимающую выходные и нервы всей команды.

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

Читать далее

Кто лучше объяснит, что такое машинное обучение: ChatGPT-4o или ChatGPT-5?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.9K

Все считают 5-ю версию лучше, выше, сильнее. Но есть ли разница для обычного пользователя, который не мониторит бенчмарки и микроапдейты моделей, а просто приходит поболтать с ИИ?

Мы поставили эксперимент: сравнили 4о и 5 с точки зрения обывателя, который хочет изучить ML и пришёл за пошаговым планом обучения.

Спойлер: в конце всё равно решили подключить живого специалиста.

Читать далее

Что спрашивают на собеседовании у QA и SDET: топ вопросов и ответов. Часть 1. Сети

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.9K

Собеседование —  один из самых важных и волнительных этапов для любого специалиста. Независимо от опыта, возраста или других индивидуальных особенностей, каждый из нас так или иначе переживает за результат, но всё же надеется успешно пройти все этапы интервью. Безусловно, самым серьёзным из них является технический блок. Именно здесь у интервьюера больше всего возможностей вас «помучить» :)

Особенно остро это ощущают специалисты из направления QA/SDET, ведь информации действительно очень много. Но не переживайте: SimbirSoft спешит на помощь!

Меня зовут Кирилл, я SDET-специалист в компании SimbirSoft. В этой статье я собрал список вопросов, на которые обязательно стоит обратить внимание при подготовке — как начинающим специалистам, так и закалённым «воинам» в области обеспечения качества — QA Manual, QA Automation и SDET — вне зависимости от грейда.

Читать далее

Выбираем векторную БД для AI-агентов и RAG: большой обзор баз данных и поиск смысла

Время на прочтение18 мин
Количество просмотров11K

В этой статье я сделал обзор основных векторных баз данных: Milvus, Qdrant, Weaviate, ChromaDB, pgvector, Redis, pgvectorscale, LanceDB, ClickHouse, Vespa, Marqo, ElasticSearch.

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

Читать далее

Я решал LeetCode 600 дней подряд и что из этого вышло

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров61K

Все знают о Leetcode — его можно любить, ненавидеть, презирать или даже бояться, но равнодушным точно не останется никто.

Эта статья — впечатления о моём 600-дневном марафоне на этой платформе, динамике моих скилов и ответе на главный вопрос «надо ли решать там задачи?».

Все было спокойно, пока мы с другом не заключили спор — сможем ли мы решить 100 задач до конца 2023 года? А это было 50 задач всего за 1 месяц — декабрь.

На одном из моковых собеседований мы услышали, что для прохождения алгоритмического этапа может хватить решения 50 задач на Литкоде. 

Челлендж в 100 задач оказался достаточно легким — Новый год мы встречали уже с круглым числом выполненных задач в профиле. Так быстро мы решили не останавливаться — Покоренная вершина стимулировала покорить новую — 200 задач к началу лета (за 5 месяцев).

В конце челленджа в 200 задач мой друг принял решение сойти с дистанции — переизбыток алгоритмов в крови, голове и остальных частях тела вызывал у него дискомфорт и галлюцинации, поэтому в его профиле красуется круглое «200», а я же к этому времени только «разогрелся» и вошел во вкус.

24 февраля 2024 в течении недели Leetocde предлагал неплохие и не очень сложные задачи на дейли челлендже, и у меня случайно получился стрик в районе 10 дней подряд.

Сбивать стрик было как‑то жалко — это же целых 10 дней. Так и началась долгая история в 600 дней...

Читать далее

Извечный вопрос: происхождение жизни на Земле

Время на прочтение25 мин
Количество просмотров13K

Мир вокруг нас сложен и удивителен. Все, от величественных гор до мельчайших частиц, подчиняется нерушимым законам природы, в оркестре которой важен каждый участник, но лишь математика, физика и химия могут претендовать на роль первой скрипки. Полагаясь на основы этих наук, можно объяснить практически все объекты, явления и эффекты, наблюдаемые где-либо. Но важным словом в этом вполне утвердительном выражении является «практически». Одной из самых сложных и важных загадок остается происхождение жизни на нашей планете. Самая распространенная теория заключается в спонтанном возникновении. Самой же нестандартной — инопланетяне, но е лучше оставить для Малдера и Скалли. Гипотеза, которая до сих пор претендует на звание верной, гласит, что жизнь в своем первородном виде попала на Землю извне в виде микроорганизмов, а затем начался процесс ее развитии и эволюции уже на планете. Ученые из Имперского колледжа Лондона (Великобритания) разработали математическую модель, которая заставляет усомниться в теории спонтанного возникновения жизни и поверить в панспермию. Как работает данная модель, и каковы ее результаты? Ответы на эти вопросы мы найдем в докладе ученых.

Читать далее

Atlas для Яндекса: как аналитики смотрят на карту, проверяют гипотезы и не тонут в данных

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.8K

Представьте, что у вас есть карта города, способная «рассказывать истории» про людей, дороги, дожди и события — прямо сейчас, вживую. С помощью платформы Atlas анализ города превращается в чтение интерактивной хроники, а не в просмотр сухой статистики.

Привет! Меня зовут Аня, я руковожу службой аналитических платформ в Яндексе. Сегодня я расскажу про один из наших инструментов — SaaS‑платформу Atlas. Ей пользуются аналитики из Яндекс Такси, Доставки, Лавки и других сервисов Яндекса. Atlas помогает визуализировать данные, быстро находить и проверять гипотезы, а ещё — оперативно делиться инсайтами. Под катом — подробности о том, как работает платформа и с какими кейсами она помогает справляться, а также как вы можете попробовать её в деле. 

Читать далее

Уровни изоляции транзакций: практическая механика и сравнение PostgreSQL, MySQL, Oracle, SQL Server и DB2

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров6.5K

Транзакции — не про «магическое ACID», а про конкретную механику согласованного доступа к данным под нагрузкой.

Эта статья объясняет как реально работают уровни изоляции и чем отличаются популярные СУБД на практике.

Мы разберём:

Читать далее

Ближайшие события

Как музыканты издеваются над программистами

Время на прочтение7 мин
Количество просмотров20K

Музыканты - ребята творческие. И называют они себя и свои произведения тоже творчески. Иногда так заковыристо, что программистам стримингов и музыкальных сервисов остается только посочувствовать.

Вот, казалось бы, что может быть проще: создать базу треков и исполнителей. Пишем имя артиста/группы, название альбома, список треков и даем возможность по ним искать. Но потом натыкаемся на исполнителя Prince, который изменил своё имя на знак, который не существует и начинаем печалиться, потому что непонятно, как его искать после переименования. Фанаты вроде как нашли выход и предложили использовать 4 спец.символа юникода Ƭ̵̬̊, что тоже похоже на костыль, а задавать старое имя как псевдоним, вроде как концептуально неправильно. Ну или попадаются металлюги Brouillard, у которых каждый альбом называется так же - Brouillard. А каждый трек внутри альбома имеет такое же название.

Но это еще цветочки, потому дальше тесты целостности библиотеки начинают падать, так как в ней попадаются треки длиной либо одну секунду, либо 639 часов. Ну или встречаются треки с нулевым номером, потому что это так называе "секретные" композиции, которые можно было найти включением первого трека и переключением плеера назад. Как вы понимаете, сегодня мы поговорим о музыкальных edge-случаях. Заходите, будет интересно.

Читать далее

Отличительные особенности RED OS Mode

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.7K

Вопрос запуска полноценного рабочего места на мобильном устройстве в последнее время становится все более актуальным – конечно не для всех пользователей, а для тех, кто работает в дороге, должен заполнять документы или обращаться к корпоративным системам, как говорится «в полевых условиях». В этой статье мы расскажем о том, чем RED OS Mode отличается от других подходов к решению этой задачи.

Читать далее

Как я нашел криптографический бэкдор в крупнейшем даркнет-рынке: разбираем кражу $12 миллионов через уязвимость ECDSA

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров11K

Криптографическая уязвимость Evolution Marketplace: Анализ кражи Исследование безопасности ECDSA подписей крупнейшего даркнет-рынка

Читать далее

ORM в Node.js — когда от него больше вреда чем пользы. Почему вам, не нужен дополнительный абстрактный слой

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.6K

Object-Relational Mapping (ORM) — технология, призванная «поженить» реляционную природу SQL-баз (PostgreSQL, MySQL, SQLite и т.п.) с объектной моделью языков программирования. Она настолько популярна, что её пытаются реализовать даже в необъектных языках — например, в Go или Erlang.

Если в Java без ORM действительно неудобно, то в экосистеме Node.js (и TypeScript в частности) ситуация принципиально иная. И ORM здесь — зачастую избыточная абстракция. В большинстве случаев рациональнее обойтись компактным SQL-билдером который сильно упрощает построение запросов, оставляя над ними полный контроль, и который совсем не занимается управлением объектами. Почему в Node.js ORM почти не даёт преимуществ...

Читать далее

Как мы перестали хранить Pydantic в JSON и в 7 раз сократили расход памяти в Redis

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.5K

У нас был большой продакшен-сервис с ~10M MAU, где Redis использовался как основное хранилище состояния пользователей. Все данные лежали в нём в виде JSON-сериализованных Pydantic-моделей. Это выглядело удобно, пока не стало больно.

На определённом этапе мы выросли до Redis Cluster из пяти нод – и он всё равно задыхался по памяти. JSON-объекты раздувались в разы относительно полезных данных, и мы платили за тонны пустоты — буквально деньгами и деградацией.

Я посчитал сколько весят реально полезные данные и получил цифру, от которой понял, что так жить больше нельзя.

Читать далее

«Манускрипт. Распознать нельзя забыть: как мы научили нейросеть читать рукописи XIX века»

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.9K

Manuscript OCR — открытая нейросеть для чтения рукописей XIX века

Мы обучили свою OCR-модель распознавать дореформенную кириллицу, нестандартные почерки и сложные сканы. Всё — на собственных данных, с нуля. В статье — как мы это сделали и ссылки на репозиторий с кодом.

Открыть рукопись

Звёзды у нас в голове. О роли астроцитов в работе нейронных сетей

Время на прочтение10 мин
Количество просмотров4K

Продолжая тему, затронутую в статье об искусственном интеллекте и здравом смысле, хочу затронуть два принципиальных, но зачастую упускаемых из виду отличия мозга от искусственной нейронной сети. Во-первых, нейронная сеть состоит исключительно из «нейронов», а мозг – из нейронов и глиальных клеток. Оставлю здесь ссылку на интересную обзорную статью о глии, которую написала на Хабре уважаемая Василиса Белокопытова @vasilisa_b. До недавнего времени считалось, что глиальные клетки играют в мозге сугубо вспомогательную роль и функционально подобны оболочке проводов, передающих сигнал. Однако свежие исследования, в том числе, с применением искусственных нейронных сетей, привлекают всё более серьёзное внимание к астроцитам. Это небольшие звёздчатые клетки в составе глии. Они взаимодействуют как с нейронами, так и с синапсами, и вопрос о том, могут ли они передавать нейронные импульсы, рассматривался на сайте N+1 ещё около двух лет назад. Подробнее об этом — под катом.

Читать далее