Обновить

Разработка

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

Не лезьте туда: 47 лет не оцифровывали, и нормально же работало

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

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

С точки зрения ИТ доменная печь — это огромный «чёрный ящик». Вы кладёте сырьё и топливо, получая на выходе чугун и шлак. Измерить внутри все можно почти ничего нельзя: датчики просто «умирают» от температуры, воздействия шихты и прочих условий. Измерить снаружи тоже сложно (да и нужно ли?): большие печи имеют диаметр порядка 15 метров и высоту 35 метров, — что нам дадут граничные условия для таких размеров?! По опыту на малых печах можно измерять уровень расплава (без разделения на шлак и чугун) по ЭДС внешними датчиками, но у нас так не выйдет, и нам пришлось провести целое исследование, чтобы понять, почему.

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

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

Но цифровые возможности развиваются, и мы пробуем применить самые современные цифровые решения, даже если они на грани возможного.

Читать далее

YRGB 2025: открылось голосование за лучшую игру для ZX Spectrum

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

В мире ретро-игр есть свои праздники. Иногда это релиз долгожданного ремейка, иногда — находка неизвестного ранее прототипа, а иногда — событие, которое объединяет игроков, разработчиков и просто любителей 8-битной магии. Сегодня как раз такой случай: открылось голосование в конкурсе YRGB 2025.

YRGB — это международный конкурс, который Яндекс Музей проводит с 2019 года для разработчиков игр на ZX Spectrum. Участникам нужно создать полностью оригинальную игру и загрузить её на сайт конкурса. Цель — вдохновить авторов на новые проекты для легендарного «Спектрума», который до сих пор любим в России, Великобритании, Испании, Португалии, Бразилии и других странах.

На официальном сайте конкурса вас ждут 15 игр, созданных специально для ZX Spectrum. Авторы постарались угодить всем вкусам: здесь и аркадные стрелялки, и скоростные гонки, и изящные платформеры, и вдумчивые стратегии, и хитроумные головоломки, и атмосферные квесты.

Что же прислали конкурсанты?

Тайна замочной скважины — зачем ПК запирали на ключ

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

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

Кто застал эпоху 486-х и Pentium, наверняка помнит эту деталь — загадочную замочную скважину на передней панели системного блока, скромно притаившуюся между культовой кнопкой Turbo и спасительным Reset'ом. Сегодня, во времена биометрической аутентификации, эти механические замки кажутся лишь забавным атавизмом. Однако в свое время они решали вполне реальные проблемы безопасности.

Разберемся, как они были устроены и пережили ли вообще замки как явление цифровую революцию.

Читать далее

Топ-5 алгоритмов из курса матана, которые реально пригодятся в работе

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

Всем привет. Сегодня хочу затронуть тему матана, чтобы показать как его можно применять на реальных задачах. Думаю каждый, кто учил матан часто задавался вопросами: «Где это вообще пригодится?», «Зачем это нужно?», «Как это может помочь?» и т. д. Так вот, чтобы эти вопросы отпали раз и навсегда предлагаю свой топ-5 алгоритмов из курса матана с конкретными примерами их применения в работе.

Читать далее

Мифы и легенды о производительности Python

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

Антонио Куни — инженер, давно занимающийся повышением производительности Python, а также разработчик PyPy. Он провёл на EuroPython 2025 в Праге презентацию «Мифы и легенды о производительности Python». Как можно догадаться из названия, он считает многие общепринятые сведения о производительности Python как минимум вводящими в заблуждение. На множестве примеров он показал, где, по его мнению, таятся истинные проблемы. Инженер пришёл к выводу, что управление памятью в конечном итоге наложит ограничения на возможности повышения производительности Python, но у него есть проект SPy, который, возможно, станет способом реализации сверхбыстрого Python.

Он начал своё выступление с просьбы: «Если вы считаете Python медленным или недостаточно быстрым, поднимите руку»; поднялось много рук, в отличие от презентации на PyCon Italy, где руку не поднял почти никто из присутствующих. «Совершенно другая аудитория», — сказал он с улыбкой. Антонио уже много лет работает над производительностью Python, он общался с множеством разработчиков на Python и слышал кучу устоявшихся мифов, которые захотел развеять.

Читать далее

История одного бага

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

Пожалуй, самые неприятные баги – те, что воспроизводятся один раз из ста. Их не пощупать, не продебажить и даже не проверить результат.

Так и тут. Прилетает мне баг от тестировщика с описанием:

Контент приложения уезжает влево и скрывается за панелью навигации. Как воспроизвести не знаю, появляется несколько раз в день, зависимость не выявлена.

Естественно, у меня ни разу не воспроизвелось. Ну и как с этим работать?

Дальше расскажу о, возможно, самом странном баге в моей карьере.

Читать далее

Metal Gear Solid 2, Deus Ex, The Sims и другие старые игры, предсказавшие наше время

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

В 2001 году на первой PlayStation выходит игра, которую многие восприняли как запутанную и избыточно философскую. От Metal Gear Solid 2: Sons of Liberty игроки ожидали продолжения шпионского боевика с Солидом Снейком в главной роли. Но главного героя заменяют на незнакомца, сюжет погружается в цифровую паранойю, искусственный интеллект начинает вещать о правде и лжи, а игра вместо привычного боевика превращается в размышление о свободе воли, информационном шуме и бессилии личности в мире алгоритмов. Тогда игру не поняли и не приняли. А теперь, спустя два десятилетия, MGS2 называют одним из самых пророческих произведений в истории игр.

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

Читать далее

P2P-мессенджеры нового поколения. Связь без интернета

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

В 2025 году состоялось пополнение в ряду P2P-мессенджеров «постапокалиптического» типа, которые обеспечивают связь после отключения интернета. Например, после стихийного бедствия или техногенной аварии.

Читать далее

Хотите эффективнее программировать? Учитесь строить в уме пошаговые доказательства

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

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

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

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

Читать далее

Эзотерический язык Whitespace: что это, зачем создан и как работает

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

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

Читать далее

История разработки P0D-ботов для Counter Strike

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

Counter-Strike стал важнейшим этапом в эволюции шутеров как на постсоветском пространстве, так и за его пределами. Сколько десятков и даже сотен часов мы провели в компьютерных клубах и дома, доказывая друзьям, кто из нас лучший игрок! Однако в те годы не у всех был стабильный интернет, а в локальных сетях, особенно маленьких городов, не всегда собиралась достаточная команда для полноценного матча. И тогда на выручку приходили боты! Именно с их помощью можно было не только с удовольствием провести время, играя на любимых картах, но хорошенько отточить своё мастерство!

Но создание таких ботов в те годы было непростым делом: требовались не только технические знания, но и настоящая страсть к игре, тем более специализированного инструментария для этих целей тогда просто не было! Именно такие люди, объединившись вместе, и подарили нам одних из самых лучших ботов того времени — Pod-Bot, которые впоследствии стали официальными Z-bot на релизе CS 1.6.

Рад представить своё интервью с одним из авторов этого бота, который поделится воспоминаниями и различными интересными моментами, что возникали в процессе разработки. Очень надеюсь, вам понравится, и вы всецело окунётесь в ламповую атмосферу тех лет, читая его рассказ!

Читать далее

От паровых шестерёнок к суперчипам: как машина Бэббиджа превратилась в FPGA

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

Задумывались ли вы, как идеи инженеров 19 века вдруг становятся реальностью в мире современных чипов? Как вычислительная машина из огромных латунных шестерёнок — превратилась в FPGA.

То, что Чарльз Бэббидж мечтал построить, сегодня принципы легко воссоздать на чипе размером с монету.

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

Читать далее

Удобный софт для работы с файлами SQLite

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

Все мы любим SQLite. Это идеальный движок БД, компактная библиотека размером менее 1 МБ, быстрая, автономная и неубиваемая. Более того, это в принципе удобный способ хранения информации, поскольку СУБД выигрывает у файловой системы по скорости доступа, сжатию, функциональности полнотекстового поиска и т. д. Например, она вдвое быстрее файловой системы Ext4 под Linux.

SQLite — самая популярная в мире СУБД. Как рассказывалось в статье «Безумные и забавные факты о SQLite», в мире активно используется более триллиона (!) БД SQLite, это невероятное число. Просто она встроена во все смартфоны, браузеры, операционные системы и бесчисленное число других приложений.

Читать далее

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

Хватит страдать: Выбросьте ООП и ECS. Есть путь проще

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

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

Это ложь. Оба этих пути — ненужные усложнения. Есть прямой и эффективный способ, который мы променяли на модные, но непрактичные примочки. Эта статья — о том, как вернуться к здравому смыслу.

Читать далее

Новый приказ ФСТЭК: что нужно знать разработчикам AI-сервисов для госсектора

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

Привет! Меня зовут Андрей, я руковожу отделом продуктов клиентской безопасности в Selectel. С 1 марта 2026 года в России начнут действовать новые требования к безопасности AI-систем в госсекторе. ФСТЭК утвердила Приказ №117 — первый документ, который официально регулирует создание и внедрение AI-решений на базе LLM в государственных информационных системах. Под катом разберемся, что изменения значат для рынка и как к ним подготовиться.

Читать далее

Docker изнутри: исчерпывающее руководство. Механизмы контейнеризации + примеры, эксперименты и реализация

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

Docker — не магия, а грамотное применение механизмов Linux. Разбираем инструмент, который пугает своей сложностью не меньше блокчейна. Показываем на пальцах как работают: Namespaces, Cgroups, OverlayFS – основные компоненты любого контейнера, и как стандарт OCI объединяет их в единую экосистему. Об этом и не только в статье.

Читать далее

OpenAI возвращается к open-source: обзор моделей GPT-OSS-120b и GPT-OSS-20b

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

Компания OpenAI, известная разработкой топовых языковых моделей, сделала важный шаг навстречу открытому сообществу, представив две передовые open-source модели — GPT-OSS-120b и GPT-OSS-20b. Этот релиз знаменует возвращение компании к изначальной идее открытого распространения своих технологий (или, скорее, является пиар-ходом компании в ответ на упреки в закрытости). Событие действительно знаковое, ведь впервые с момента выпуска GPT-2 в 2019 году компания делает веса своих крупных языковых моделей полностью доступными сообществу.

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

Читать далее

Библиотека визуализации графов: как мы решили дилемму Canvas vs HTML в Gravity UI

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

Меня зовут Андрей, я разработчик интерфейсов в команде User Experience инфраструктурных сервисов Яндекса. Мы развиваем Gravity UI — опенсорсную дизайн‑систему и библиотеку React‑компонентов, которую используют десятки продуктов внутри компании и за её пределами. Сегодня расскажу, как мы столкнулись с задачей визуализации сложных графов, почему существующие решения нас не устроили, и как в итоге появилась @gravity‑ui/graph — библиотека, которую мы решили сделать открытой для сообщества.

Эта история началась с практической проблемы: нам нужно было рендерить графы на 10 000+ элементов с интерактивными компонентами. В Яндексе много проектов, где пользователи создают сложные пайплайны обработки данных — от простых ETL‑процессов до машинного обучения. Когда такие пайплайны создаются программно, количество блоков может достигать десятков тысяч.

Существующие решения нас не устраивали:

— HTML/SVG‑библиотеки красиво выглядят и удобны в разработке, но начинают тормозить уже на сотнях элементов.

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

Мы решили не выбирать между Canvas и HTML, а использовать всё лучшее из обеих технологий. Идея была проста: автоматически переключаться между режимами в зависимости от того, насколько близко пользователь смотрит на граф.

Читать далее

Они говорят «неудобно», но продолжают пользоваться

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

Сидим с другом в машине. Скидываю ему в Телегу ссылку на сайт по продаже щёток стеклоочистителей.

— Попробуй найти здесь дворники для своего Пассата.

Друг переходит по ссылке, видит форму подбора щёток по автомобилю. Открывает выпадающий список с перечнем марок. Листает вниз.

— Блин, неудобно же! Volkswagen — в самом низу. А машина популярная. Могли бы, не знаю, поиск какой-нибудь сделать. Или вынести несколько популярных марок наверх.

Кстати, друг — профессиональный дизайнер интерфейсов. В общем, долистывает до конца списка, выбирает Volkswagen и попадает на шаг с выбором модели…

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

Читать далее

Самый загадочный баг в моей работе

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

Предыстория

Моя команда занимается разработкой медицинского ПО: приложения для передачи направлений пациентов в системе здравоохранения Австралии.

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

Система электронных направлений удобна для всех. Когда врач создаёт новое направление, мы автоматически извлекаем информацию из PMS (patient management software, системы управления пациентами, которой владеет наша компания) с данными пациента, этнической принадлежностью, индексом массы тела, принимаемыми лекарствами, медицинской историей и всем остальным, что необходимо для направления. В бланке направления есть валидируемая «форма специализации» с полями, относящимися к конкретной услуге, для которой выписывается направление.

Благодаря этому в направлении содержится вся необходимая информация. И, разумеется, в форме также есть большое текстовое поле для свободного текста (referral letter), в котором терапевт может объяснить, почему он решил выписать пациенту направление.

При отправке направления данные передаются в цифровом виде. Они преобразуются в один из нескольких форматов в зависимости от получателя. Некоторые получатели используют для приёма направлений наш продукт Referral Manager; в этом случае нам не нужно ничего преобразовывать, они просто получают доступ в веб-интерфейсе к тем данным, которые хранятся в базе данных. Однако обычно данные преобразуются в HL7 (старый текстовый формат файлов медицинской информации), CDA (XML-документ с отдельной таблицей стилей) или просто в PDF с человекочитаемой информацией. Благодаря этому данные совместимы со множеством различных электронных систем других компаний.

Также выполняется сохранение PDF-копии направления в PMS врача для ведения его собственной картотеки. Это позволяет ему просматривать всю историю пациента в PMS без необходимости поиска документов в куче приложений разных разработчиков.

Читать далее