Обновить

Разработка

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

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

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

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

Читать далее

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

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

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

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

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

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

Время на прочтение10 мин
Охват и читатели16K

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

Читать далее

Гайд по ориентации Wi-Fi антенн для роутеров и при чем тут пончики

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели26K

Привет Хабр! Меня зовут Алексей и я занимаюсь беспроводными технологиями. На написание этой статьи меня сподвиг комментарий уважаемого @NightFlight который обратил внимание, что многие пользователи ориентируют антенны у роутеров по типу ориентации «заячьи уши» \/ так, как это делали для комнатных телевизионных антенн. В этой статье вспомню немного теории, расскажу о разных типах антенн, поляризации, и о том как лучше ориентировать антенны у бытовых роутеров в зависимости от их количества и как ориентация может повлиять на beamforming.

Правильная ориентация антенн Wi-Fi роутера может существенно улучшить качество беспроводного соединения, увеличить скорость передачи данных и расширить зону покрытия сети. Согласно моим тестам, оптимизация расположения антенн способна повысить скорость соединения на 50-300%, а в некоторых случаях улучшить уровень сигнала на 2-4 дБ, что критически важно для устройств, находящихся на границе зоны покрытия. При неправильной ориентации, особенно при несовпадении поляризации передающей и приемной антенн, потери сигнала могут достигать 20 дБ, что фактически делает соединение невозможным.

Читать далее

MegaSD: новый адаптер для атаки DaMAgeCard, или Как подключить NVMe-диск к Nintendo Switch 2

Время на прочтение9 мин
Охват и читатели15K

С выходом интерфейса SD Express всё больше производителей начинают использовать его в своих устройствах. Nintendo Switch 2 — не исключение. Этот интерфейс позволяет запускать игры прямо с карты памяти за счёт значительно возросшей пропускной способности — спасибо PCIe. Но интересен он не только геймерам.

В этой статье я расскажу, как мы разработали новый адаптер для атаки DaMAgeCard, благодаря которому можно подключить NVMe-диск к новой приставке от Nintendo.

Установить NVMe-диск!

15 лучших оконных менеджеров для Linux в 2025 году

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

Оконный менеджер — одна из тех вещей в Linux, о которой не задумываешься, пока не попробуешь сменить. Кажется, окна просто открываются и закрываются, а потом ставишь тайлинговый WM и понимаешь, что можно работать быстрее и почти не трогать мышь, или выбираешь плавающий — и ноутбук сразу оживает. Расскажем о 15 самых интересных и востребованных решениях на 2025 год.

Читать далее

От стороннего платёжного решения к собственному SDK: история RuStore Pay SDK

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

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

На старте мы использовали внешнее решение, чтобы быстро запустить процесс монетизации. Но со временем, когда стор вырос и количество интеграций увеличилось, стало очевидно: для гибкости, скорости и контроля нам нужно собственное решение. Так в RuStore появилась идея создать Pay SDK — платёжного решения, которое мы спроектировали с нуля под реальные задачи российских разработчиков и наших пользователей.

Меня зовут Алексей Мольков, я менеджер продукта в RuStore. В этом посте расскажу, как мы пришли к решению написать свой SDK, какие вызовы прошли по пути и какие преимущества уже видят команды, которые его используют.

Читать далее

Делаем интерфейс дружелюбнее. Коллекция простых HTML/CSS лайфхаков

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

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

Красивый и интуитивно понятный интерфейс — это моя личная страсть. Я тратил дни, чтобы докрутить свои проекты до нужного мне уровня. В итоге я начал систематически собирать приёмы HTML и CSS, которые мгновенно улучшают восприятие пользователя.

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

Давайте посмотрим, что я вам подготовил.

Читать далее

Стилизация, часть 1: почему игры стали однообразными

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели10K

Среди заядлых игроков все чаще встречается такое страшное явление как «игровая импотенция». Вероятно, вам знакомо это чувство — в библиотеке Steam 800 игр, а играть не во что... Кажется, будто все игры сделаны по одному шаблону. 

Если вы все чаще задаетесь вопросом «Почему все новые игры похожи на предыдущие?», вы не одиноки. А если это ощущение вам незнакомо, наверняка вы слышали нечто подобное от других геймеров. Причин возникновения игровой импотенции много, и одной из них мы сегодня коснемся. Разберемся, почему игры стали однообразными и что же такое стильная игра. А если доживете до конца, то узнаете и том, как сделать стилевую игру, и, возможно, поможете тому самому другу, которому не во что играть при библиотеке Steam в 800 игр.

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

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

Читать далее

Новый релиз OpenBSD 7.8 с поддержкой Pi 5 и многопоточным TCP

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели10K

На днях вышла OpenBSD 7.8, продолжая традицию регулярных обновлений каждые полгода. С 1995 команда держит фокус на безопасности, переносимости и простоте кода. Размер базового ISO-образа — около 597 МБ. Скачать его можно с зеркал — например, ftp.openbsd.org. В отличие от более громоздких дистрибутивов, OpenBSD предпочитает минимализм: система собирается из исходников, а пакеты портов обновляются параллельно.

За тридцать лет в стандартной установке нашлось всего лишь две уязвимости, что делает OpenBSD эталоном для других ОС. Если предыдущая версия 7.7 вышла в апреле, то этот релиз накопил изменения, ориентированные на современное железо и сетевые нагрузки. Разработчики подчеркивают, что улучшения касаются почти всех компонентов, от ядра до утилит, без лишней мишуры. В целом, обновление подойдет администраторам, работающим с виртуализацией или embedded-устройствами, где стабильность важнее новизны. Что ж, давайте посмотрим, что нам тут приготовили.

Читать далее

Я вернулся в 2000-й и поймал ILOVEYOU

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

Хочу перенестись в нулевые, чтобы рассказать и показать, как работал ILOVEYOU. Для этого запускаю машину времени и рассказываю:

Что бы случилось с моим компом в нулевые.
Как вирус взломал 45 миллионов компьютеров?
Почему Windows 2000 оказалась особенно уязвимой?
Как автор избежал наказания?

Читать и отправиться в 2000-й

Демобаза 2.0 для PostgreSQL

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели15K

Можно ли смоделировать хаос пуассоновских потоков бронирований и конечный автомат состояний рейса (от «по расписанию» до «приземлился») целиком внутри PostgreSQL? Мы решили, что для создания идеальной учебной базы данных — можно. Вместо старых статичных таблиц мы построили генератор, имитирующий жизнь глобальной авиакомпании. Рассказываем, зачем это было нужно и почему старая база на 2,5 ГБ перестала справляться с задачами.

Лечу это я, лечу

Разблокируем бесплатный WiFi на рейсах British Airways

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели19K

Недавно я летел из Гонконга в Хитроу рейсом British Airways. Тот же самый маршрут я проделал в 2023 году, и помню, как в 14-часовом путешествии понадеялся на развлечения в самолёте. Однако на этот раз по дороге в Лондон у компании появилось интересное предложение: бесплатный WiFi для «мессенджеров» участникам «The British Airways Club».

Я был практически уверен, что не состою ни в каком подобном клубе (да и летел я эконом-классом), но оказалось, то это всего лишь название программы для часто пользующихся услугами компании. Довольно удобно было то, что можно зарегистрироваться в программе через портал авторизации, находясь прямо в воздухе; и хотя он требует адрес электронной почты, его не нужно верифицировать (то есть можно завершить регистрацию без доступа к Интернету).

После входа портал предложил мне «Начать сессию», и это действительно позволило мне общаться текстом. Я попробовал Whatsapp, Signal, Wechat и Discord. Первые три работали (но без поддержки изображений); Discord, как и ожидалось, не заработал. Совсем неплохо для бесплатного WiFi!

Откуда он знает?

Это первый вопрос, который возник у меня после проверки работы мессенджеров. На дворе 2025 год, всё должно шифроваться при передаче. Почему же система знает, что я использую Whatsapp или Discord? Поначалу я решил, что соединение как-то ограничивает ширину канала/передачу данных отдельных TCP-соединений, поэтому при отправке одного-двух сообщений они проходят, но что-то большее отклоняется.

Чтобы проверить эту гипотезу, я попробовал открыть на телефоне классический example.com. К сожалению, он не загрузился; значит, всё это устроено немного сложнее…

Читать далее

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

Хабр умирает, и это не кликбейт

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели78K

Блуждая по Хабру, я всё чаще слышу один и тот же рефрен: «Хабр уже не тот». Статьи не набирают, интерес аудитории угас, а в кулуарах DevRel'ы жалуются, что «продвигаться стало невозможно». Но так ли это на самом деле? Или это классическая «раньше трава была зеленее»?

Читать далее

Как мы в Авито сделали свою LLM — A-vibe

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели19K

Всем привет! Меня зовут Анастасия Рысьмятова, я руковожу юнитом LLM в Авито.
В этой статье я расскажу, как мы с командой создали и адаптировали нашу большую языковую модель A-vibe: зачем решили развивать собственную LLM, как построили токенизатор, собрали датасеты, провели SFT и RL и что получили в итоге. Поделюсь основными экспериментами и покажу наши результаты.

Читать далее

Банковский спектакль KYC и AML

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели16K

Многие люди смутно представляют, что у финансовых институтов есть обязанность соблюдать Know Your Customer (KYC) и иметь программы AML (anti-moneylaundering), но что это означает на самом деле? Рад, что вы спросили.

С ними всё… сложно и запутанно, из-за чего у многих (внутри и вне этой отрасли) сложилось ошибочное впечатление об их уровнях широты и строгости. Кроме того, они достигают своих целей не самым очевидным образом, во многих отношениях нарушая наши ожидания о том, как работают законы в целом.

Обсуждать выбор политик без комментариев невозможно, поэтому для начала я должен дать некоторые объяснения. Когда-то я работал в Stripe, и, разумеется, проходил обязательное обучение комплаенсу. В статье я буду говорить только от своего лица и откровенно расскажу, какой не может быть культура отделов комплаенса и по каким причинам.

Читать далее

Мультиплексор, дешифратор… где великий комбинатор?

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

Когда я создавал первые электрические цепи в 3D-симуляторе, то часто думал: как же происходит переход из «живого мира» бесконечных вариантов значений в «компьютерный мир» нулей, единиц и вообще всего, для чего набор значений и их изменчивость строго ограничены? В этой статье я продолжу осваивать курс по схемотехнике, и, судя по темам лекций, ответ мне откроется. Вперед, к комбинационной логике!

Читать далее

Полное руководство по HTTP-кэшированию. Часть 2

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели12K

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

В основе кэширования лежит сокращение лишней работы. Каждый раз, когда браузер, CDN или прокси обращается к серверу за ресурсом, который не изменился, впустую тратятся время и трафик. Когда сервер заново формирует или повторно отдает идентичный контент, это лишь добавляет нагрузки и увеличивает затраты. А при пиковом трафике — например, в "черную пятницу", во время вирусной публикации или DDoS-атаки — такие ошибки стремительно накапливаются и приводят к сбоям всей системы.

Читать далее

Где туристы из будущего?

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

28 июня 2009 года легендарный астрофизик Стивен Хокинг провёл вечеринку для путешественников во времени с шампанским и шариками. Он никому не сообщил заранее, а только постфактум, с указанием точного времени и места встречи.

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

К сожалению, это не помогло: на вечеринку всё равно никто не пришёл. Стивен Хокинг сидел там в одиночестве.

Читать далее

Яндекс обновляет процесс найма разработчиков. Рассказываю, почему мы пошли на такой шаг

Время на прочтение9 мин
Охват и читатели47K

Всем привет! Меня зовут Олег Смоляков, в Яндексе я больше 15 лет занимался разработкой, а теперь отвечаю за улучшение процесса найма разработчиков.

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

TLDR: мы решили обновить процесс найма, вместо порой хаотичных собеседований в каждом отдельном сервисе внедряем единую систему оценки по профессии и уровню (например, «Senior C++ Developer»), кандидат, успешно прошедший оценку навыков, теперь сможет претендовать на аналогичные вакансии в любом из 90+ сервисов компании, а всё это вместе делает процесс найма прозрачным, понятным, без дублирования технических интервью и в целом эффективным для всех участников.

А теперь подробнее о том, почему мы на это пошли и как всё устроено.

Читать далее