Обновить

Разработка

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

Как мы в Авито нашли баланс между качеством и скоростью разработки на примере фичи рекомендаций Автотеки

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

Всем привет! Меня зовут Михаил Пашедко, я backend-разработчик в Авито в команде Автотека. В статье расскажу, как небольшой эксперимент на пару спринтов стал полноценным направлением разработки — и показал, как в зрелой компании можно запускать живые, «стартаперские» инициативы, не теряя при этом контроль над качеством.

Читать далее

Новости

Кросс-трекеры: ретро-музыка на современном ПК

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

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

Сегодня уделю пристальное внимание явлению «кросс-трекеров» — программ для современных ПК и операционных систем типа Windows и Linux, позволяющих создавать музыку для различных старых компьютеров, игровых приставок и прочих подобных устройств, а точнее, для их музыкальных синтезаторов. Зачем, почему, что происходит, кто здесь — как обычно, сейчас разберёмся во всех этих животрепещущих вопросах.

Читать далее

Традиционная аутентификация vs Биометрия

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

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

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

Читать далее

Rust в ядре Linux: долгий путь от осторожных попыток к реальному применению

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

Совсем недавно мы вспоминали, как Rust вырос из стартапа до языка, у которого серьезные планы на Linux. И вот свежие новости: на Maintainers Summit 2025 года разработчики ядра решили, что Rust доказал свою пользу и можно расширить сценарии его использования. Это не значит, что он теперь на равных с C, но проект вышел за рамки «просто эксперимент». Давайте разберем, как все происходило, зачем нужно, почему были споры и что это сулит для будущего ядра. Поехали!

Читать далее

Обвели вокруг пальца, или Как мы обманывали сканеры отпечатков

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

Всем привет! С вами исследовательская лаборатория BI.ZONE. Большую часть времени мы исследуем защищенность встраиваемых систем, а еще у нас бывают проекты по тестированию биометрических систем. В августе на конференции OFFZONE 2025 мы выступили с докладом о тестировании сканеров отпечатков пальцев. Доклад и презентацию к нему можно посмотреть по ссылке. А специально для тех, кто любит читать длинные тексты, весь этот интересный процесс мы описали в нашей новой статье.

Читать далее

Визуальный язык программирования в NebuLeet: эволюция и дизайн

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

Пару лет я в соло разрабатывал максимально нишевую игру "для программистов" (NebuLeet) на довольно нишевых технологиях (Go + ebitengine), и вот теперь, после релиза, я хочу рассказать про одну из интересных особенностей этой игры - визуальном программировании логики игровых юнитов.

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

Вас ждёт увлекательная околокомпиляторная/языковая статья с игровым применением. Всё-таки, языки программирования для игр - это ведь отдельный жанр.

Читать далее

Разработчики всё ещё путают JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 1

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

JWT, SSO, OAuth, OpenID Connect — названия знакомые каждому разработчику. Но стоит спросить: «Зачем в продакшене нужен JWKS?» или «Чем отличается OAuth2 от OpenID Connect?» — уверенность сразу исчезает.

В этой статье мы разберём как устроен JWT и его подпись, зачем нужны access и refresh токены, что такое JWKS и в чём отличие OAuth от OpenID Connect.

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

Читать далее

Мороз по коже: LLM может оценить ваш код, а ИИ-компании — использовать это в своих целях

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

ИИ-ассистенты не только помогают писать код, но и прекрасно могут оценить ваши ноу-хау по степени полезности для владельцев своих компаний. Как с этим жить? Как этому противостоять?

Читать далее

8 лучших RDP-клиентов 2025 года

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

Удалёнка уже стала нормой, поэтому надежный RDP‑клиент — обязательный инструмент админа. Под катом рассмотрим популярные RDP‑клиенты за 2025 год, а также расскажем, как выбрать подходящий вариант.

Читать далее

Как приземляться в Top Gun: проверено реверс-инжинирингом

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

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

Читать далее

Изящные, ненормальные и удивительные алгоритмы на C

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

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я написал статью «Математика, биты, магия и немного ненормального программирования на C», «Фокусы, хаки, магия и прочее ненормальное программирование на C» и «Тёмная сторона Си: трюки, хаки, магия и алгоритмы», которые раскрывали много интересных моментов.

Увидев, что многим понравилась, я решил продолжить, чтобы узнать насколько глубоко кроличья нора!

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

Всех, кто заинтересовался — прошу под кат.

Читать далее

Коллекция полезных CSS фишек, которые вы редко используете

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

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

В мире фронтенда активно всё меняется. Появляются одни инструменты, но только их выучишь — они устаревают, и нужно уже учить новые. Новые методы и API в JavaScript. Даже в HTML появляется что-то новое. И, конечно, CSS не отстаёт.

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

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

Читать далее

Как оптимизировать код WebAssembly при помощи встраивания функций и деоптимизации

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

В этом посте будут объяснены две стратегии оптимизации WebAssembly, которые не так давно были реализованы в движке V8 и вошли в версию браузера Google Chrome M137. Речь пойдёт о спекулятивном встраивании call_indirect inlining и о поддержке деоптимизации в WebAssembly. В сочетании два этих приёма помогают генерировать более качественный машинный код, так как основаны на допущениях, которые строятся, исходя из обратной связи, поступающей от среды исполнения. Благодаря этому, WebAssembly выполняется быстрее, особенно это касается программ WasmGC. Например, проверив эти приёмы на наборе микробенчмарков, написанных на Dart, видим, что комбинация двух оптимизаций даёт ускорение в среднем более чем на 50%. В более крупных и реалистичных приложениях и на тех бенчмарках, которые рассмотрены ниже, достигается ускорение между 1% и 8%. Деоптимизации — также очень важная составляющая для дальнейшей оптимизации в будущем.

Читать далее

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

Value Object: как победить примитивную одержимость без DDD

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

Кажется, что оборачивать BigDecimal и String в отдельные классы — это overengineering и преждевременный DDD. Но именно из-за этих «лишних» типов в прод не пролезают посылки в ПВЗ, проценты внезапно превращаются из 0.8 в 80, а деньги теряют валюту и смысл. В статье на реальном примере логистики разбираем, как один небольшой record Weight и несколько аккуратных Value Object’ов наводят порядок в бизнес-логике: инварианты перестают жить в комментариях, проверки перестают дублироваться, а код начинает читаться как текст предметной области. Без внедрения полного DDD, без религиозного фанатизма — только практические шаги.

Как избавиться от одержимости примитивами

Вайбанутым нет покоя

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

Есть у меня один знакомый. Преподаватель. Примерно, раз в месяц принимает экзамены у студентов, с курсов повышения квалификации. Студенты решают задания на компьютерах, а он ходит между ними, вопросы задает и двойки ставит.

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

И настолько эта возня с бумагой его достала, что знакомый решил:
"Хватит это терпеть! Говорят, в соседнем дворе бабушка сама написала себе "ЦИАН" (находясь под воздействием). А я что? Лысый что-ли?!
Вон, даже курсы по вайбкодингу продаются! Напишу сам себе электронную ведомость!
Ведь может же сейчас обычный человек написать любую программу. Ну не будут же врать в Интернете."

А вот и нет

Память о глубине: топим литиевые аккумуляторы на 1500 м

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

Приветствую, глубокоуважаемые!

Сегодня все у нас на литии, и даже под воду мы тащим литий, но вместе с ним — сложные, тяжёлые и дорогие нормобарические корпуса. Возникает вопрос: мы правда защищаем аккумуляторы от среды или просто страхуемся традицией, не зная, на что они реально способны под давлением? Чтобы ответить, пришлось устроить LiFePO₄ 18650 стресс-тест. Результат, как водится, - убил.

Под катом 150 килограмм на квадратный сантиметр, аккумуляторы, щепотка сопромата и ключ на 55.

Начать погружение!

Шпаргалка по настройке VPS на Debian/Ubuntu (2025)

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

Наконец-то я её доделал! Шпаргалка по настройке свежего Ubuntu/Debian VPS, которую начинал писать, когда ещё сам был новичком.

Вы только что купили сервер, а что дальше? Каждый раз я гуглил и пошагово делал одно и то же, тратил на это много времени, пока не собрал всё в одном месте. Теперь за 15–20 минут вы можете превратить «голый» VPS в безопасную и удобную машину.

Этот базовый минимум с чёткими командами и объяснениями. Никакого Ansible и сложностей — чистая ручная настройка. Подойдёт всем, кто только осваивает Linux, и каждый раз не знает, с чего начать.

Читать далее

Вход — бесплатно, выход — по подписке: разбор реального скама

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

Сегодня у нас по‑своему уникальный разбор. Мы будем разбирать ещё идущую (на момент написания статьи) массовую криптоскам‑схему. В некотором роде автор статьи (то есть я) рискует, потому что обламывает ловким ребятам стотысячедолларовую схему по радостному отьему денежек у отрицательных счастливчиков!

Будет всё: имена, пароли, явки, количество обманутых прогретых инвесторов и объемы успешно проинвестированного. Спешите читать!

Разбираемся с криптоскамом

Меня обвинили в том, что я — нейросеть

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

Здравствуй Хабр.

Полтора миллиарда лет назад, когда я учился в начальной школе, нам задали домашнее задание: написать сочинение в свободной форме, про наступающую весну. Я воспринял задание с воодушевлением. С детства люблю свободные формы. Решил написать сочинение в стихах. Написал, и, довольный собой, сдал на проверку. На следующий день, учительница меня резко отчитывала и стыдила перед всем классом за то, что я сдал сочинение, которое написал НЕ САМ. Она просто не могла поверить, что ребенок мог написать такое самостоятельно. Знаете, я далеко не Есенин, и то было довольно наивное произведение, вполне детского уровня. Но я старался. Вложил душу. И мне было до ужаса обидно. А еще я понял, что взрослые - только на вид взрослые, а на деле - ни черта не понимают.

На днях, подобная несправедливость случилась со мной снова.

Читать далее

Как я обнаружил скрытый микрофон в китайском NanoKVM

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

NanoKVM — это аппаратный KVM-переключатель, разработанный китайской компанией Sipeed. Это устройство, выпущенное в прошлом году, позволяет удалённо управлять компьютером или сервером при помощи виртуальной клавиатуры, мыши и монитора. Благодаря своему компактному размеру и низкой стоимости устройство быстро привлекло внимание Интернета, особенно когда компания пообещала выпустить его код в опенсорс. Однако, как мы увидим, это устройство обладает серьёзными проблемами безопасности.

Читать далее
1
23 ...