Обновить

Все потоки

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

Мелкий нюанс безопасности логина на примере Госуслуг

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

Если внезапно пришла СМС‑ка «код для входа на госуслуги 314159» — какие обычно ваши чувства и действия? Если кратко — пароль, похоже, надо поменять — код приходит только после того как ввели правильный пароль, если не ошибаюсь.

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

Читать далее

Два универсальных SIMD алгоритма

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

Большинство SIMD инструкций узконаправленны, например применяют бинарную операцию параллельно для нескольких чисел, упакованных в длинный регистр. Применение таких операций прямолинейно и в большинстве случаев компилятор сам оптимизирует код с использованием таких инструкций. Например компилятор легко соптимизирует таким образом проверку несложного предиката на массиве или например суммирование элементов массива. Есть однако и более универсальные инструкции, в частности довольно много всякого рода манипуляций с битами внутри регистра. В этой статье хочу рассказать о двух таких инструкциях: уже давно присутствующей PSHUFB и довольно новой GF2P8AFFINEQB, расскажу как с их помощью делать побайтовую обработку общего вида и приведу пару примеров с известными операциями такими как popcount, подсчет четности, разворот битов числа.

Читать далее

Кино, которого нет: опыт работы над ИИ-клипом

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

Я – режиссер с «традиционным» кинообразованием. Взявшись работать с генеративным музыкальным видео для песни ЛИКО «Девочка-стесняшка», я хотела использовать свои знания для того, чтобы обогатить плоские ИИ-кадры.

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

Читать далее

Подключение PlayStation2 Джойстика к Микроконтроллеру (или Переходник между человеком и компьютером)

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

При разработке RC моделей надо как-то управлять ровером. Классическое решение это джойстик. К счастью в продаже существуют готовый джойстик.

В этом тексте я написал про то как запрограммировать Game Pad от PS2.

Читать далее

Шардирование сервиса объявлений Авито Доставки. Часть I

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

Привет, меня зовут Артем, и я работаю в Авито с 2016 года. Начинал как тестировщик, затем вырос в backend-инженера, с 2019 года пишу на golang, а сейчас руковожу командой разработки в Авито Доставке в роли техлида. В этой статье поделюсь опытом шардирования нашего основного сервиса delivery-item: зачем мы это сделали, как подошли к задаче, с какими граблями столкнулись и как всё выглядит спустя почти два года.

Читать далее

В ReactOS внесены улучшения, исправляющие ряд проблем с USB

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

Здравствуйте, дорогие друзья!

Кто давно следит за развитием проекта, помнит, что одним из больных мест ReactOS была поддержка USB.

При тестировании на реальном железе с большой вероятностью система выпадала в BSOD из-за USB-драйверов.

Даже если вы использовали PS/2 мыши/клавиатуры, то простое подключение/отключение флешки могло «уронить» систему.

Но, недавно, разработчик @The_DarkFire__ внёс ряд исправлений в USB-драйвера, которые исправляют данные проблемы с USB в ReactOS на реальном оборудовании!

Читать далее

Нейро-дайджест: ключевые события мира AI за 1-ю неделю декабря 2025

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

Привет! Это новый выпуск «Нейро-дайджеста» — коротких и полезных обзоров ключевых событий в мире искусственного интеллекта и технологий.

Неделя выдалась насыщенной: DeepSeek обновили линейку до V3.2, Mistral выпустили новый флагман, а Gen-4.5 от Runway обходит топовые Veo 3, Sora 2 Pro и Kling. Оперативка дорожает бешеными темпами из-за дата-центров NVIDIA, Anthropic прицениваются к IPO, а Павел Дуров запустил Cocoon.

Всё самое важное — в одном месте. Поехали!

Читать дайджест →

Не паникуй, ты просто попал в AA+ игрострой

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

Эту статью я написал лет десять назад, когда только попал в большую студию EA SpB. И забыл бы про нее, но недавно проводил ревизию заметок и набросков на старом HDD и решил, что она до сих пор актуальна, разве что цифры выросли. Тогда проекты под миллион LoC казались гигантами, наверное это и сейчас очень много, но теперь это это просто код движка. Но суть не изменилась, просто цифры выросли.

Помню тот день, когда я впервые сел за рабочий стол в офисе, а до этого делал другие проекты и кодовая база размеров 100к строк вместе с либами, движком и логикой казалась - ну очень немаленькой. А тут скачал репозиторий, открыл идеешку, и она минут на пятнадцать подвисла на индексировании файлов. Я смотрел на всё это безобразие и думал: «Это нормально? Мне дали самый отстойный джунский комп? Я что-то сломал уже на онбординге? Мы все умрем?» Нет, всё было нормально, просто я впервые столкнулся с промышленной кодовой базой большого проекта.

Команда в тот момент выкатывала мажор Sims Mobile, который зафейлили почти на месяц и, честно говоря, на нормальный онбординг ресурсов просто не было. ПМ выдал мне простую задачу на разгон, так сказать, чтобы стулья в редакторе дома сохраняли свое положение и размер между запусками, потому что они, как вы наверное догадались - этого не делали и оказывались в дефолтных точках спавна. Звучит элементарно, правда? Сохранил координаты в конфиг, прочитал при старте и таска готова. Вот только я понятия не имел, где искать код этого сохранения конфига, объектов, как называется класс, где лежит конфиг и сами стулья, и есть ли вообще система для таких вещей или надо писать с нуля. Небольшой спойлер, системы не было, все объекты в доме всегда спавнились в тех точках, где их поставил дизайнер, т.е. для редактора дома сейва не было, а для игры был.

Добро пожаловать в семью

Ущерб от бездумного внедрения ИБ в АСУ ТП: когда «защита» становится угрозой

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

ИБ в промышленности – новая угроза?

В мире промышленных предприятий информационная безопасность становится новой религией. На совещаниях все чаще звучат слова «угроза», «комплаенс», «SOC» и «Zero Trust», вместо привычных «доступность», «надежность» или «MTBF». Инженерная дисциплина, закаленная реальными авариями, постепенно вытесняется бюрократией аудита и отчетами в PowerPoint. Однако у станков, турбин и реакторов нет терпения к «лучшим практикам» на бумаге. Они работают по законам физики, а не по политике безопасности. Когда «офисная» ИБ вторгается в цех без понимания контекста, она перестает быть защитой и превращается в угрозу. В ИТ-мире потеря пакета – статистическая мелочь, в АСУ ТП потерянный сигнал может сорвать регуляцию давления или вызвать срабатывание ложной ошибки. То, что в офисе грозит лишь замедлением сети, на производстве способно остановить технологический процесс.

Читать далее

Как в наши дни вошел водопровод, сработанный еще рабами Рима…

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

Акведук (водопровод) в Сеговии (Испания) построен в 112 году нашей эры. На сегодняшний день это один из немногих древнеримских акведуков, используемых по своему прямому назначению — доставка воды в город.

Читать далее

Компилируем Python так, чтобы он работал везде

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

Это история о том, как написать компилятор Python, генерирующий оптимизированные ядра и при этом позволяющий сохранить простоту кода.

Читать далее

Разработка цифровой аппаратуры нетрадиционным методом: Контроллер USB 1.0 на SpinalHDL

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

Продолжая развивать свою синтезируемую систему-на-кристалле для ПЛИС, о которой я уже написал несколько статей, столкнулся с необходимостью подключать устройства ввода типа клавиатура, манипулятор мышь или джойстик. Если обратиться к тому, чем занимаются ретро-фаны, то проблем особых нет — старый добрый интерфейс PS/2 очень прост в реализации, он позволяет легко взаимодействовать с клавиатурой и мышью с минимальными ресурсами. Фактически PS/2 это последовательный синхронный порт работающий на низких скоростях, реализовать его можно программно. С ретро-джойстиками тоже проблем нет - положение джойстика это всего лишь замыкание контактов, что легко обрабатывается программно. Проблема в том, что всё это «ретро» постепенно уходит из нашей жизни, клавиатуры и мыши с интерфейсом PS/2 всё еще можно приобрести на маркетплейсах, но всё же редкость. И от джойстика хочется чего-то большего чем просто замыкания пяти контактов, а именно — градации положения стика. Такая фича доступна либо на очень старых аналоговых джойстиках, либо на современных геймпадах с USB интерфейсом. В конце концов я разрабатывают хоть и минималистичную, но современную систему с современной архитектурой (RISC-V) предназначенную для современного промышленного применения, а не для ретро-гейминга. ;-) В общем, встал вопрос как подключать простые HID устройства ввода через USB к своей синтезируемой ЭВМ.

Интерфейс шины USB на столько широко вошел в обиход, что мы даже не задумываемся что там внутри: сколько сигнальных проводов в USB кабеле, как они подключены, как передаются по ним данные, на каких скоростях и какие могут быть ограничения. Всё что мы знаем это то, что USB бывает разных версий: 2.0 — медленный и 3.0 — очень быстрый; и что USB устройства бывают с разными видами разъемов: USB type A и, с недавних пор, USB type C. Для большинства пользователей и программистов USB это такая штука, которую «вставил и работает». А если нет, то нужно вынуть, перевернуть устройство два раза вокруг его оси и вставить в компьютер еще раз. Если и так не заработало, то искушенный пользователь возможно вспомнит команду lsusb чтобы выяснить какие сейчас устройства присутствуют в системе или даже заглянет в dmesg чтобы выяснить наличие ошибок при детектировании устройства. Но что означают эти сообщения ? Еще меньшее число пользователей понимает результат вывода команды lsusb -v. Не многим лучше обстоят дела с пониманием USB у разработчиков электроники. Обычно на их уровне USB это четыре провода: GND, VBUS, D+ и D-, при этом каждый электронщик знает что D+ и D- это дифференциальная пара которую требуется трассировать на печатной плате соответствующим образом. Но так ли это на самом деле ?

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

Читать далее

Как музыка активирует мозг и тело

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

Привет! Как-то раз в соцсети мне попалось интересное видео. В нём показывают бывшую балерину, в уже престарелом возрасте, больную Альцгеймером. Вот она сидит в инвалидной коляске, видно, что двигаться нормально не может. Тут ей включают Чайковского и её тело очень быстро начинает реагировать. Как будто она повторяет танец умирающего лебедя, и испытывает эмоции, судя по выражению лица. Картина, очень трогательная, печальная и в то же время вдохновляющая. Знакомая мелодия пробудила в ней то, что казалось уже безвозвратно утраченным из-за болезни.

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

Читать далее

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

Почему все ненавидят 1С, но продолжают на нём работать?

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

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

Сегодня поговорим о феномене: странной, почти мазохистской привязанности 1С-разработчиков к своему инструменту. Это как брак, в котором ты ежедневно угрожаешь разводом, но остаёшься — потому что «а куда деваться?».

Читать далее

О дивный новый анимированный мир — ViewTransition в React

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

Всем привет. Я Артем Курочкин, frontend разработчик компании DD Planet.

Сегодня я расскажу об одном из ключевых нововведений в React, представленных на React Conf 2025. Прошу любить и жаловать ViewTransition - нативная поддержка view transition api в экосистеме реакта.

Что это значит для React-разработчиков и как нам всем это поможет, мы и разберем в этой статье.

Читать далее

Голосовой ввод для Windows через Vosk своими руками

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

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

Лучшим выходом из моей ситуации было создать свое минималистичное решение, и вот как это было:

Читать далее

Лабораторная работа по тонкой настройке LLM для нестандартных задач классификации

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

Еще со времён школы меня будоражили возможности, которые дают компьютеры. Написать программу — это как создать что-то материальное своими руками. Неделю назад я за один вечер прочитал книгу Себастьяна Рашки «Строим LLM с нуля» (доступна на английском бесплатно), в которой без сложной теории матанализа описывается архитектура современных LLM и как их тюнить. 

Если вы интересовались, как работают LLM, то уже имеете представление, что модели умеют предсказывать следующее слово и что за этим стоит математика. Но на этом объяснение, как правило, заканчивается. Детали того, как они предсказывают следующее слово, часто рассматриваются как черный ящик.. В этой статье предлагаю рассмотреть эту тему подробнее и познакомиться с тонкой настройкой (fine-tuning) LLM для решения условно-практической задачи классификации с помощью примеров кода, приведенных в упомянутой книге. 

Статья устроена так, что все шаги в статье вы можете повторить и в конце получить набор скриптов для выстраивания пайплайна обучения LLM. Я же описал свои шаги, потому что лучший способ что-то понять — это применить теорию на практике и попытаться объяснить результат кому-то. 

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

Читать далее

Эффективные Large Language Models: от линейного attention к гибридным архитектурам, наши результаты и выводы

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

Квадратичная сложность и линейно растущий KV cache в классическом механизме внимания, используемом в современных LLM, — серьёзная преграда для обработки экстремально длинных контекстов, особенно в условиях ограниченной видеопамяти на GPU. В этой статье мы рассмотрим различные варианты Linear Attention (линейного внимания) и техники дистилляции LLM в субквадратичные варианты механизма внимания. Мы также расскажем о наших экспериментах с GigaChat и поделимся примером получившейся гибридной модели с линейным вниманием, сделанной на основе Llama-8B.

Читать далее

Как в Quake.exe появился стек TCP/IP

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

Quake, выпущенный в июне 1996 года, за срок своей жизни был вынужден оседлать три технологические волны. Наряду с появлением карт аппаратного 3D-ускорения и развитием Интернета, сложности у разработчиков игры вызвала и смена поколений операционных систем.

Стремясь к распространению Windows 95 и Windows NT, Microsoft начала процесс замены своей старой операционной системы MS-DOS. С 1996 по 1997 год доля DOS на рынке упала на 50%. Некоторые разработчики, например, Blizzard North, делали рискованный шаг и создавали игры наподобие Diablo только для Windows 95. Компания id Software же пошла на подвиг по созданию единого двоичного файла quake.exe, способного работать и в DOS, и в Windows.

Ещё более впечатляет то, что разработчикам удалось реализовать стек TCP/IP Quake лучше, чем у Windows 95. Давайте разберёмся, как им это удалось.

Читать далее

Собираем простейшую RAG-систему на PHP с фреймворком Neuron AI за вечер

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

RAG (Retrieval‑Augmented Generation или генерация, дополненная поиском) — это метод искусственного интеллекта, сочетающий генеративную большую языковую модель (LLM) с внешней базой знаний для создания более точных, контекстно‑зависимых и актуальных ответов. Принцип его работы заключается в том, что сначала извлекается релевантная информация из набора документов или источников данных, а затем эта информация передается в LLM для формирования окончательного ответа. Этот процесс позволяет модели выдавать более точные ответы, менее подверженные «галлюцинациям», и ее можно обновлять без дорогостоящего переобучения.

Сегодня мы разберёмся, как собрать базовую RAG‑систему на PHP (да, да, не надо удивляться) с помощью фреймворка Neuron AI. Это будет наш маленький proof‑of‑concept — минимально работающий, но вполне реальный пример.

Ну что, начнём генерацию?

Читать далее