Habr.com

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

Voters в Symfony

Wed, 03/25/2026 - 01:05

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

В каждом проекте рано или поздно появляется логика вида «этот пользователь может редактировать этот пост, а тот нет». И начинается: if ($post->getAuthor() === $currentUser) в контроллерах, в сервисах, в шаблонах. Копипаста расползается, а потом приходит новое требование — «модератор тоже может редактировать, но только в своей категории» — и вы бегаете по двадцати файлам, молясь, что ничего не забыли.

Symfony Voters — механизм, который выносит всю логику авторизации в одно место. Не аутентификации (тип кто ты?), а именно авторизации (что тебе можно?). Разберём, как это работает.

Разобраться в Voter

От костылей к биекции: как я писал генератор судоку на JS

Wed, 03/25/2026 - 00:50

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

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

Когда-то, мы с моей замечательной (но ныне бывшей) женой фанатели от нестандартных судоку со знаками «больше-меньше», мы сами печатали себе уникальные сетки, а иногда, я даже рисовал их руками на основе готовых шаблонов из интернета.

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

Читать далее

Agentic RAG Challenge. Я знаю что вы искали прошлым летом…

Wed, 03/25/2026 - 00:43

В данной статье хотел бы поделиться опытом участия в хакатоне Agentic Legal RAG Challenge 2026. Наша команда называется "Sparks of intelligence".

Читать далее

Слабое место блоков питания ATX. Почему компьютер странно, плавающе глючит без очевидных причин?

Wed, 03/25/2026 - 00:39

Привет, Хабр. В этой статье поделюсь частью знаний на стыке радиолюбительства и компьютеров. Постараюсь эту статью сделать краткой и полезной. Но это не точно :)

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

Читать далее

Векторный поиск в PostgreSQL: pgvector, pgvectorscale или VectorChord?

Wed, 03/25/2026 - 00:36

Привет Хабр! Меня зовут Владимир сегодня я постараюсь исправить ошибку из моей первой статьи про векторный поиск. Основная претензия к статье (два из трех комментариев

Яркость проектора: почему ваш «4K» днем показывает только пыль на стене

Wed, 03/25/2026 - 00:30

Купили проектор с «4K», а картинка днем серая? Поздравляю, вы повелись на маркетинг, а не на яркость проектора. Я протестировал разные модели и расскажу, сколько на самом деле нужно ANSI люмен, чтобы смотреть кино днем и не жалеть о деньгах.

Читать далее

Stable Diffusion 3.5 medium на Apple M1 16Gb

Tue, 03/24/2026 - 23:35

В этой статье, про ИИ, написанной не полностью ИИ, про генерацию изображений - не будет изображений.

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

Первая проблема с которой я столкнулся - это потребление памяти. Поиски в интернете, описание самой модели говорили о том что она должна помещаться в ~10GB VRAM. Чего должно с запасом хватать для Apple M1 16GB. Однако фактическое зафиксированное потребление памяти составило 21 GB, не зафиксированное 28 GB (после чего я и начал исследование).

Читать далее

Пайплайны, bounce-back и cron для ИИ-агентов на одной подписке Google AI

Tue, 03/24/2026 - 23:34

Важный момент: agent-pool - это MCP-сервер, который работает и в IDE, и внутри самого Gemini CLI. Воркер может сам делегировать задачи дальше - создавать подгруппы и запускать своих воркеров. На этом строится вся фрактальная оркестрация.

Читать далее

[Перевод] JavaScript считает все данные датами

Tue, 03/24/2026 - 22:39

Excel не единственный, кто любит превращать любые данные в даты.

Если вы работаете с датами в JavaScript, то, вероятно, рано или поздно пользовались new Date(someString). Это удобно: передаём строку, получаем объект Date. Но привыкнув к Python, я был удивлён тем, насколько свободно JavaScript обращается с форматами дат. Позвольте мне проиллюстрировать это примерами.

Читать далее

Проектирование солнечного трекера. Ч.1: нужно ли вообще поворачивать панели за Солнцем?

Tue, 03/24/2026 - 22:07

Солнечные панели до сих пор вызывают скептицизм, и во многом этот скептицизм оправдан: КПД современных фотоэлектрических модулей редко превышает 17–25 %, а это означает, что большая часть солнечного излучения, падающего на поверхность панели, просто рассеивается в виде тепла, не превращаясь в электроэнергию. Если добавить к этому потери в инверторе, соединительных кабелях и аккумуляторах, реальная эффективность всей системы оказывается ещё скромнее – и скептики получают очередной повод для сомнений.

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

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

Читать далее

Защита агентных приложений по OWASP Agentic Top 10 и модели Trifecta

Tue, 03/24/2026 - 22:06

Агентные системы - это уже не чат. Они планируют задачи, дергают инструменты и оставляют свой след в данных. Сетка фильтров не спасёт, если у агента есть доступ к чувствительному контенту, недоверенные источники и выход в интернет. Разбираем OWASP Agentic Top 10 и модель Trifecta чтобы не допустить утечек и взлома системы.

Читать далее

Настройка личных серверов через Docker Compose

Tue, 03/24/2026 - 22:05

В январе 2023 мне пришла в голову идея: а почему бы не управлять своими серверами так же, как я управляю своими проектами — через docker compose up.
Довольно быстро стало понятно, что до меня в эту сторону массово не ходили, если кто так уже делает, то делает это молча… т.е. на все детские грабли на этом пути мне придётся наступить лично.
А вот вам повезло: если тоже захотите пойти в эту сторону, то у вас уже есть и эта статья и пример конкретной реализации.

Кому этот подход может подойти? Тут должны сойтись звёзды несколько факторов:

● Нужно быть программистом, хорошо знакомым с docker-compose.yml.
● Нужно иметь 1-5 личных серверов — не важно, дома или на обычном/облачном хостинге, настоящий ли это сервер или свой десктоп/ноут, выполняющий заодно и функции «сервера».
● Нужно иметь достаточно опыта настройки этих серверов вручную по ситуации, чтобы появилось понимание недостатков этого подхода и желание внедрить IaC (перенести конфигурацию серверов в git и сделать её легко воспроизводимой).
● Но главное — нужно не быть админом, которому Ansible привычнее.

Базовые оконные функции

Tue, 03/24/2026 - 21:58

Статья-разбор оконных функций для тех, кто их еще никогда не использовал, с примерами кода и данных:

разница оконных функций и агрегации;
зачем нужна конструкция OVER();
особенности PARTITION BY;
как задавать порядок расчета (ORDER BY);
примеры функций ранжирования и базовых агрегаций.

Читать далее

Spring Boot Actuator: полный гайд по мониторингу в 2026

Tue, 03/24/2026 - 21:55

Выкатили приложение, а через час — таймауты? Redis отключился, а вы узнали об этом от клиентов?

В этой статье на реальном примере покажу, как Spring Boot Actuator превращает ваше приложение из «чёрного ящика» в прозрачную систему. Разберём:

➡ Что такое Actuator и зачем он нужен.
➡ Как настроить эндпоинты, чтобы не открыть дыру в безопасности.
➡ Какие метрики реально помогают найти узкие места (история, как мы ускорили приложение на 40%).
➡ Кастомные метрики для бизнес-показателей.
➡ Лучшие практики продакшена: liveness/readiness probes, изоляция портов, кастомные HealthIndicator.

Читать далее

JMatrixPlatform: как я теперь за 5 минут загружаю данные, на которые другие тратят дни

Tue, 03/24/2026 - 21:55

Рассказываю, как я сделал простейший yaml сервис на Java и Vue для разовой загрузки данных, чтобы не писать тонны кода и не мучиться с JSON.

Предыдущая часть: Enovia умерла, да здравствует JMatrixPlatform: пересобираю легендарную платформу на Java и Vue

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

Читать далее

Просто о циркулянтах и их связи с дискретным преобразованием Фурье

Tue, 03/24/2026 - 21:50

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

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

Читать далее

Оборудование для маркировки: гайд для дистрибьютора по автоматизации склада и поставок

Tue, 03/24/2026 - 21:36

За последний год мы в «Клеверенс» наблюдаем интересную тенденцию: дистрибьюторы активно закупают железо для работы с «Честным ЗНАКом», но процессы на складе всё равно буксуют. Оказывается, наличие ТСД и принтера в инвентарной ведомости не гарантирует автоматизацию.

Читать далее

Метод Компонентов – Роскошный максимум инженерии

Tue, 03/24/2026 - 21:07

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

Читать далее

[Перевод] Atlassian уволила 1 600 человек и сказала, что «дела идут хорошо». Кто выигрывает от замены людей на ИИ?

Tue, 03/24/2026 - 21:00

Думаю, можно уже сказать прямо: массовые увольнения в tech-секторе — это ужасная идея.

Согласны? Да, знаю. Согласиться легко.

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

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

Давайте разберёмся в свежих новостях — и я соединю точки.

Читать далее

Интеграция систем в российских компаниях: объективный анализ подходов и инструментов

Tue, 03/24/2026 - 21:00

Российский IT 2026: нет универсального выбора интеграций

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

В данном аналитическом обзоре мы рассмотрим различные подходы к интеграции с точки зрения технической целесообразности, без предпочтения конкретных технологий.

Разбираемся в деталях

Who's online

There are currently 0 users and 9 guests online.