Обновить

Разработка

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

Не используйте pipe operator в PHP 8.5, пока не узнали все нюансы

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

В версии PHP 8.5 появился оператор |> — так называемый pipe operator. Он давно используется в других языках (F#, Elixir, OCaml) и активно применяется в JavaScript. Его основная цель — упростить передачу результата одной операции в следующую, делая код более читаемым и линейным.

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

Читать далее

Как продавать промышленное оборудование в кризис

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

Как возникает продажа в промышленном b2b-секторе? Почему продавец должен стать экспертом отрасли, чтобы убедить покупателя расстаться с деньгами в кризисные времена?

 

Продажа в b2b-сегменте обусловлена двумя факторами.

 

Читать далее

Нейросетевая модель интересов пользователя: как мы улучшили разнообразие и релевантность рекомендаций на главной Авито

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

Привет! С вами Ярослав Хныков — senior ML engineer в Авито. В статье расскажу, как мы повысили разнообразие и релевантность рекомендаций на главной странице. Материал будет особенно интересен специалистам, которые работают с рекомендательными системами.

Читать далее

SFINAE в C++

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

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

Сегодня я хочу поговорить про SFINAE, загадочную аббревиатуру из C++. Расшифровывается SFINAE не менее загадочно: Substitution Failure Is Not An Error, по-русски: «неудавшаяся подстановка — не ошибка». Сейчас рассмотрим, почему это правило появилось, как оно работает и как мы можем использовать его себе во благо.

К механике SFINAE

Квантовая механика виртуальной Вселенной (Часть II)

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

Здравствуйте, дорогие читатели.

В первой части мы начали разбирать квантовую механику виртуальной Вселенной. (Предысторию вы можете найти в предыдущих статьях цикла: «Геометрическая головоломка на выходные», «Электродинамика виртуальной Вселенной» и «Механика виртуальной Вселенной»).

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

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

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

Итак, поехали.

Читать далее

Асинхронность и многопоточность в Dart/Flutter: Future, Stream и Isolates

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

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

В данной статье мы расскажем, как во Flutter использовать ключевые инструменты асинхронности Dart — Future, async/await, Stream, а также многопоточность через Isolate — и покажем, как применять их на практике в реальных приложениях.

Читать далее

Multi-API Ensemble: 95% точности транскрипции региональных топонимов

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

В статье полный разбор архитектуры, алгоритмы scoring, примеры кода и расчёт экономики.

Один STT-сервис дал 60-70% точности на специфической лексике (топонимы, названия улиц, профессиональные термины). Два сервиса параллельно + взвешенное голосование + AI-fusion для спорных случаев дали 95%+ точности. Время обработки 5-8 секунд.

Читать далее

Миграция демо-проекта на Spring Boot 4, Spring 7.0, JDK 25

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

Продолжаю серию публикаций про наши Java-онлайн курсы. Предыдущие посты:

Тесты на дженериках. Параметризация AssertJ и сравнение Json через объекты

Контроллеры на дженериках: пишем кода в 3 раза меньше

Миграция Java Spring Boot на Kotlin

Работа с документами в Java

Как многие знают, недавно вышел Spring Boot 4 / Spring 7.0. В постах компании@spring_aio есть несколько статей по новому функционалу.

Я мигрировал наш небольшой учебный демо-проект Spring Boot 3.x HATEOAS (ссылка на GitHub) на Spring Boot 4 и добавил API версионирование. В статье даю ссылки на новый функционал, описываю шаги миграции и код проекта. Буду рад читателям:)

Читать далее

Подрядчик обманул нас на заводе, но ИИ разоблачил его, а потом сэкономил ещё 170 млн ₽

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

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

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

Читать далее

«Квантовая фотография: как аналоговая эмульсия вычисляет волновую функцию»

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

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

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

Статья даёт строгое математическое описание этих процессов, вводя и детально разбирая ряд физических формул — от правила Ферми для поглощения фотона до соотношения неопределённостей «время–энергия» для объяснения дробового шума. Цель — предложить инженерам, специалистам по обработке сигналов и материаловедам новую, интуитивно-физическую модель для понимания квантовых принципов через детерминированные технологические процедуры. Мы показываем, что фотографическая система является законченным аналоговым компьютером, материально вычисляющим квадрат модуля волновой функции падающего излучения.

Читать далее

Элегантный OSDev: Пишем ядро ОС на modern C++ без макросов. Часть 3: Аппаратный HAL и Прерывания

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


Это третья статья из цикла по разработке ОС на С++. В данной статье я познакомлю читателя, с прерываниями x86 реализуем ее поддержку. Добавим работу с клавиатурой. Познакомимся с такими устройствами как PIC и напишем код для работы и инициализации. Я так же буду делать упор, на абстракцию и высокоуровневый код.

Заходите будет интересно.

Читать далее

Ассемблер для гоферов. Часть 1

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

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

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

Читать далее

OpenIDE 2025.2: поддержка Java 25, Virtual Thread Debugging и обновления UI

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

Вышла OpenIDE 2025.2 — первая российская IDE с поддержкой Java 25. Мы идём в ногу с платформой и остаёмся на самом острие технологий. Но не только этим релиз интересен: в нём появилась улучшенная отладка виртуальных потоков, обновления связанные с UI, а ещё пара важных обновлений экосистемы.

Поехали по порядку.

Читать далее

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

Не спешите выкидывать Webpack: разбор альтернатив и реальных сценариев миграции

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

Привет, Хабр! На связи Никита Ли, я Frontend-разработчик в Рунити. Вокруг сборщиков последние годы кипят страсти: большинство боготворит Vite, кто-то экспериментирует с esbuild, а энтузиасты активно продвигают инструменты на базе Rust — прежде всего Rspack и SWC. На фоне этого Webpack нередко называют пережитком, который якобы тормозит развитие команд.

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

Читать далее

Как я подружил Wildberries с n8n: создаем простейшего ИИ-агента для селлера. Реальный кейс автоматизации

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

Два года каждое утро селлера Дмитрия начиналось одинаково: 35+ новых отзывов, 10+ вопросов и 2 часа потраченного времени на ручные ответы. Игнорировать нельзя, иначе упадет рейтинг карточек товаров, отвечать шаблонно тоже - клиенты злятся.

Оборот магазина рос, и чтобы справиться, Дмитрий временно нанимал отдельных людей на зарплату, пока те не выгорели. В итоге Дмитрий нанял ИИ агента за косарь ...

Как Дима заменил людей ИИ агентом?

Локальный Rebase в 1С:EDT. Просто о сложном

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

Локальный Rebase в 1С:EDT - это мощная и достаточно продвинутая операция по актуализации вашей локальной ветки (синхронизация с последними изменениями) перед тем, как выполнять слияние с главной веткой.

Давайте разберём подробно, что это такое, зачем нужно и как работает.

Для начала примем договорённость: в удалённом репозитории Git существует главная ветка с именем dev. Обычно главной ветке дают такие имена, как main, develop или просто dev. В нашем примере имя главной ветки - dev.

Зачем это нужно в 1С:EDT?

Прежде всего - для вашей локальной ветки. Например, вы создали от главной ветки dev свою локальную ветку и переименовали её в feature/my-branch.

Читать далее

Я установил k3s на Arch, чтобы вам не пришлось

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

Статья для тех, кто пытался поставить k3s на Arch Linux и столкнулся с зависающим установщиком, проблемами DNS и отсутствующими systemd юнитами. Полное руководство по ручной установке с реальными командами и решениями.

Читать далее

Проектное бюро UDM Lab перешло на nanoCAD и не пожалело

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

Проектное бюро UDM Lab, известное разработкой инженерных и архитектурных проектов, таких как Дворец водных видов спорта в Екатеринбурге и концертный комплекс «Сириус», полностью перешло на Платформу nanoCAD. В статье мы расскажем, почему компания выбрала российское ПО, какие задачи решает новая САПР и как переход повлиял на эффективность проектирования и взаимодействие между отделами. Вы узнаете, какие преимущества дает автоматизация рутинных операций, поддержка формата DWG и интеграция с требованиями ГОСТ и СП, а также как UDM Lab планирует развивать собственные надстройки для специализированных задач.

Узнать больше об опыте

OpenAPI на практике: пошаговое руководство

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

OpenAPI — это открытая спецификация для описания REST API. Изначально она называлась Swagger, но в 2016 году была переименована в OpenAPI Specification и передана под управление OpenAPI Initiative. На данный момент Swagger — это набор инструментов для работы со спецификацией OpenAPI (Swagger UI, Editor, Codegen).

В OpenAPI определяются пути, параметры, тела запросов и ответов, коды статусов, схемы данных, типы аутентификации. В статье мы рассмотрим спецификацию OpenAPI версии 3.0: разберем из каких обязательных блоков она состоит и как правильно описывать типы данных и параметры запросов.

Читать далее

Самые громкие баги за всю историю IT

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

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

Рассмотрим на примерах, почему не стоит недооценивать баги.

Читать далее