Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 39 min ago

Переиспользуемые валидаторы в FluentValidation: когда надоело копипастить

Mon, 03/16/2026 - 11:40

В прошлых частях мы научились:
- делать кастомные сообщения (и поняли, что там есть подводные камни)
- использовать Custom и Must для сложной логики

Теперь новый челлендж. Проект растёт, валидаторов становится много. И вы замечаете, что одни и те же правила переезжают из класса в класс. Давайте-ка вынесем их.

Читать далее

Вход в QA в 2026 году: как действовать, когда рынок против вас

Mon, 03/16/2026 - 11:35

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

Читать далее

ClickHouse не тормозит, но не умеет джойнить. Убиваем миф

Mon, 03/16/2026 - 11:33

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

Читать далее

Треугольный пиксель: почему никто не собирает мозаики из пирамидок? (а зря)

Mon, 03/16/2026 - 11:32

Видели мозаики из кубиков Рубика? В сети достаточно контента с кубическими картинами, портретами из десятков, сотен, и даже тысяч кубиков. Но никто не собирает мозаики из пирамидок. Пирамидка (она же – пираминкс) – это перестановочный пазл, похожий на кубик Рубика. Ее цветные элементы – те же пиксели, только треугольные, и цветов не шесть, а четыре. Казалось бы, бери и складывай. Однако мозаик из пирамидок я не встречал.

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

Крутим пирамиду…

Создание библиотеки на C++. Часть III

Mon, 03/16/2026 - 11:29

Привет! Меня зовут Николай, я C++-разработчик в SimbirSoft. Это третья часть цикла статей о проектировании библиотек на примере решения геометрических задач.

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

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

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

Для комфортного чтения потребуется уверенное понимание шаблонов, частичной специализации и базовых принципов обобщённого программирования в C++. Материал ориентирован на разработчиков уровня middle и выше, которые интересуются проектированием расширяемых библиотек и архитектурой современных C++-систем.

Читать далее

Я заставил шахматные фигуры сражаться по правилам Героев меча и магии. Кажется, получилось весело

Mon, 03/16/2026 - 11:24

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

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

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

Читать далее

Внедряем Yandex MapKit SDK в SwiftUI приложение. Пишем Demo проект

Mon, 03/16/2026 - 11:15

Всем привет! Меня зовут Роман, я iOS разработчик. Сегодня я поделюсь с вами пошаговым планом создания демо приложения на SwiftUI с использованием Yandex MapKit SDK. Поехали!

Читать далее

[Перевод] 14 аварий на 800 000 миль — и это с водителем за рулём. Почему Tesla избегает тестов в Калифорнии

Mon, 03/16/2026 - 11:06

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

Уже довольно давно Маск повторяет, что роботакси Tesla вот-вот появятся в Калифорнии - как только регуляторы дадут разрешение. В октябре 2025-го он заявил, что роботакси будут доступны «через несколько месяцев» и что компания «ждёт одобрения регуляторов в Калифорнии». Однако Reuters недавно выяснил, что Tesla зафиксировала ровно ноль миль автономного тестового вождения на дорогах Калифорнии в 2025 году. Более того - это уже шестой год подряд, когда Tesla не проезжает ни одной автономной тестовой мили в штате, несмотря на имеющееся разрешение.

Почему это важно? Потому что это указывает на прямо противоположную картину: не Tesla ждёт регуляторов, а регуляторы ждут Tesla.

Читать далее

Несколько мобильных приложений в одном Appium‑проекте: как это можно организовать

Mon, 03/16/2026 - 11:01

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

Читать далее

Docker/Podman-клиент и Remote-клиент для GigaIDE

Mon, 03/16/2026 - 11:00

Продолжаем наши обзоры плагинов к GIgaIDE. Первая статья здесь, последняя доступна по этой ссылке. На этот раз в нашем обзоре — плагины Docker и Remote, доступные в версии GigaIDE PRO и обновляемые с маркетплейса.

Начнём с рассказа про плагин Docker.

Читать далее

Аркейн: как музыка стала частью повествования (пример работы скрипт-доктора)

Mon, 03/16/2026 - 11:00

Повествование, которое раскрывает нечто глубинное. Мы не просто смотрим анимационный сериал по игре — нет. Мы становимся свидетелями истории, которая не рассказывается, а поется. Где музыка становится незримым диалогом со зрителем. Диалогом, который говорит громче любых слов.

Читать далее

Нефть колбасит из-за иранского пролива, а также чебурнетизация интернета в Москве

Mon, 03/16/2026 - 10:04

Самые интересные новости финансов и технологий в России и мире за неделю: Palantir представил концепцию Warfare as a Service, москвичам отрубили мобильный интернет, Сбер и Яндекс просят о господдержке для ИИ, Дуров обеднел в несколько раз, релиз GPT-5.4, а также окончательный деанон Бэнкси.

Читать далее

Конвертация старых физических серверов в виртуалки (часть 1)

Mon, 03/16/2026 - 09:15

Несмотря на то, что на дворе уже 2025 год, и, казалось бы уже все давным давно держат свои вычислительные ресурсы (сервера) в облаке или, как минимум, в виде виртуальных машин, я оказался в ситуации, что мне нужно конвертировать 2 физических лаб сервера в виртуальные машины:

Читать далее

Raspberry Pi 5 – CEF или WebKit для off-screen рендера?

Mon, 03/16/2026 - 09:12

Цель статьи – объяснить разницу между CEF и WPE после года работы с этими фреймворками, предоставить инструкцию сборки и запуска полноценных JS+HTML+CSS веб-страниц с WPE на RaspberryPi 5 с zero-copy в 60+ FPS на FullHD. Посетовать, что такое нельзя сделать вместе с CEF. В конце мы будем иметь:
WPE для arm64 и amd64, OpenGL пайплайн вместе с EGL, работать всё это будет на встроенной системе Wayland. Wayland не должен никого пугать, на RaspberryPi 5 он идёт сразу в коробке, так что вы можете запускать и приложения на Wayland, и без перезагрузки приложения на X11. Но WPE zero-copy работает ТОЛЬКО с Wayland. Код будет представлен на языке С++.

Читать далее

Паяльная лампа, жидкий кислород и физика за 8 класс: 100 лет первому полету ракеты, утершей нос The New York Times

Mon, 03/16/2026 - 08:42

Сегодня, 16 марта 2026 года, мы отмечаем ровно 100 лет одному из самых абсурдных, смешных и одновременно великих событий в истории человечества. Ровно век назад стартовала первая в мире ракета на жидком топливе.

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

Знакомьтесь: Роберт Годдард. Гений-одиночка, которого вся Америка считала поехавшим фантазером:

Читать далее

Автономный AI-SMM менеджер для ведения соцсетей: небольшой исследовательский эксперимент

Mon, 03/16/2026 - 08:32

Можно ли поручить ведение соцсетей автономному AI-агенту? Попробуем сделать такого на Openclaw: он пишет посты и публикует их в Telegram и Твиттер по расписанию. В статье — как это устроено и что оказалось самым сложным.

Читать далее

Как жить с хобби и семьёй. Часть третья

Mon, 03/16/2026 - 08:32

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

Упор здесь будет также сделан на соотношение цена-качество, поэтому выбор софта сделан в пользу бесплатных продуктов, а харда не с самыми лучшими параметрами, но достойного выбора для домашнего использования. Дома у меня стоит операционка Linux Mint, а на рабочих машинках Windows 11, так что адекватность работы могу оценить по работе в этих системах. По поводу MacOS и Android пишите в комментариях.

Компьютер у меня старенький, 15 лет назад покупался как мощный: процессор – Intel Core i5, ОЗУ: 10 GB, ПЗУ: SSD 128 GB для системы, HDD 1.5 TB для хранения, видеокарта: 768 GB. Ноутбук сразу покупался как «печатная машинка» для творчества в командировках, но, на удивление, и на нём всё запускается: процессор: Intel Core i3, ОЗУ: 8 GB, ПЗУ: 320 GB. Один из приятных плюсов бесплатного софта – это скромность в потребляемых ресурсах. Линейка от Adobe большой любитель оперативной памяти, при сегодняшних ценах – агрейд становится «болючим» для кошелька. Минус бесплатного софта – это низкая интеграция. В больших компаниях происходит глубокая интеграция между сотрудниками. Проекты собирают буквально «на лету». Поэтому проект из одной программы, можно открыть в другой, сохранить, передать дальше. С «зоопарком» софта такого не получится. В лучшем случае, вы будете рендерить, а потом с этим рендером ковыряться. Ну, и при желании превратить хобби в профессию, у вас не окажется необходимого опыта, но его можно будет наверстать, поскольку бесплатный софт в последнее время делается с оглядкой на «мастодонтов» бизнеса.

Про хард и софт...

CS2 в Minecraft: Как переносили культовую игру

Mon, 03/16/2026 - 05:58

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

В статье — проекты, где можно пощупать Counter-Strike в Minecraft.

Читать далее

Проект «Дыхание пустыни», часть 4: наземная часть теплицы

Mon, 03/16/2026 - 05:48

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

У Шапокляк такая же шляпа была

Who's online

There are currently 0 users and 1 guest online.