Привет, Хабр!
В каждом проекте рано или поздно появляется логика вида «этот пользователь может редактировать этот пост, а тот нет». И начинается: if ($post->getAuthor() === $currentUser) в контроллерах, в сервисах, в шаблонах. Копипаста расползается, а потом приходит новое требование — «модератор тоже может редактировать, но только в своей категории» — и вы бегаете по двадцати файлам, молясь, что ничего не забыли.
Symfony Voters — механизм, который выносит всю логику авторизации в одно место. Не аутентификации (тип кто ты?), а именно авторизации (что тебе можно?). Разберём, как это работает.
Разобраться в VoterПривет, Хабр.
Я работаю учителем математики и информатики в солнечном Таиланде. Во время школьных каникул, вместо регулярных путешествий по Азии я решил развлечь себя изучением синтаксиса JavaScript.
Когда-то, мы с моей замечательной (но ныне бывшей) женой фанатели от нестандартных судоку со знаками «больше-меньше», мы сами печатали себе уникальные сетки, а иногда, я даже рисовал их руками на основе готовых шаблонов из интернета.
В этой статье я хочу рассказать об эволюции моего математического движка генерации сеток судоку: от наивного перетаскивания массивов к строгой комбинаторике и факториальной системе счисления.
Читать далееВ данной статье хотел бы поделиться опытом участия в хакатоне Agentic Legal RAG Challenge 2026. Наша команда называется "Sparks of intelligence".
Читать далееПривет, Хабр. В этой статье поделюсь частью знаний на стыке радиолюбительства и компьютеров. Постараюсь эту статью сделать краткой и полезной. Но это не точно :)
Расскажу вам об одном из гадких, неприятных "приколов", которые довольно сложно детектировать. Но они доставляют периодическую боль.
Читать далееПривет Хабр! Меня зовут Владимир сегодня я постараюсь исправить ошибку из моей первой статьи про векторный поиск. Основная претензия к статье (два из трех комментариев
Купили проектор с «4K», а картинка днем серая? Поздравляю, вы повелись на маркетинг, а не на яркость проектора. Я протестировал разные модели и расскажу, сколько на самом деле нужно ANSI люмен, чтобы смотреть кино днем и не жалеть о деньгах.
Читать далееВ этой статье, про ИИ, написанной не полностью ИИ, про генерацию изображений - не будет изображений.
В конце этой статьи мы будем запускать эту модель на указанном чипе, но начнем мы с чуть более мощного - он понадобиться чтобы разобраться с проблемой.
Первая проблема с которой я столкнулся - это потребление памяти. Поиски в интернете, описание самой модели говорили о том что она должна помещаться в ~10GB VRAM. Чего должно с запасом хватать для Apple M1 16GB. Однако фактическое зафиксированное потребление памяти составило 21 GB, не зафиксированное 28 GB (после чего я и начал исследование).
Читать далееВажный момент: agent-pool - это MCP-сервер, который работает и в IDE, и внутри самого Gemini CLI. Воркер может сам делегировать задачи дальше - создавать подгруппы и запускать своих воркеров. На этом строится вся фрактальная оркестрация.
Читать далееExcel не единственный, кто любит превращать любые данные в даты.
Если вы работаете с датами в JavaScript, то, вероятно, рано или поздно пользовались new Date(someString). Это удобно: передаём строку, получаем объект Date. Но привыкнув к Python, я был удивлён тем, насколько свободно JavaScript обращается с форматами дат. Позвольте мне проиллюстрировать это примерами.
Читать далееСолнечные панели до сих пор вызывают скептицизм, и во многом этот скептицизм оправдан: КПД современных фотоэлектрических модулей редко превышает 17–25 %, а это означает, что большая часть солнечного излучения, падающего на поверхность панели, просто рассеивается в виде тепла, не превращаясь в электроэнергию. Если добавить к этому потери в инверторе, соединительных кабелях и аккумуляторах, реальная эффективность всей системы оказывается ещё скромнее – и скептики получают очередной повод для сомнений.
Одним из наиболее распространённых инструментов борьбы с этими потерями стали MPPT-контроллеры, которые в реальном времени отслеживают точку максимальной мощности на вольт-амперной характеристике панели и удерживают режим работы вблизи неё вне зависимости от температуры, облачности и уровня освещённости. Это действительно работает – но лишь до тех пор, пока панель хоть как-то освещена, потому что никакой алгоритм не способен извлечь энергию из излучения, которое на панель просто не попадает. Если в девять утра панель жёстко закреплена под углом на юг, а Солнце ещё висит низко на востоке, MPPT-контроллер честно выжмет максимум из скудного косого света – но этот максимум будет несопоставимо меньше того, что могла бы дать панель, повёрнутая прямо на Солнце.
Именно здесь появляется идея солнечного трекера – механической системы, которая поворачивает панель вслед за Солнцем на протяжении всего светового дня, удерживая угол падения излучения близким к перпендикулярному. Идея выглядит логично, однако инженерный подход требует большего, чем просто красивая концепция: трекер – это механика, приводы, датчики, система управления, и всё это означает дополнительную стоимость, обслуживание и новые точки отказа. Поэтому прежде чем браться за проектирование, необходимо ответить на вполне конкретный вопрос – насколько велик выигрыш в энергии и оправдывает ли он усложнение системы?
Читать далееАгентные системы - это уже не чат. Они планируют задачи, дергают инструменты и оставляют свой след в данных. Сетка фильтров не спасёт, если у агента есть доступ к чувствительному контенту, недоверенные источники и выход в интернет. Разбираем OWASP Agentic Top 10 и модель Trifecta чтобы не допустить утечек и взлома системы.
Читать далееВ январе 2023 мне пришла в голову идея: а почему бы не управлять своими серверами так же, как я управляю своими проектами — через docker compose up.
Довольно быстро стало понятно, что до меня в эту сторону массово не ходили, если кто так уже делает, то делает это молча… т.е. на все детские грабли на этом пути мне придётся наступить лично.
А вот вам повезло: если тоже захотите пойти в эту сторону, то у вас уже есть и эта статья и пример конкретной реализации.
Кому этот подход может подойти? Тут должны сойтись звёзды несколько факторов:
● Нужно быть программистом, хорошо знакомым с docker-compose.yml.
● Нужно иметь 1-5 личных серверов — не важно, дома или на обычном/облачном хостинге, настоящий ли это сервер или свой десктоп/ноут, выполняющий заодно и функции «сервера».
● Нужно иметь достаточно опыта настройки этих серверов вручную по ситуации, чтобы появилось понимание недостатков этого подхода и желание внедрить IaC (перенести конфигурацию серверов в git и сделать её легко воспроизводимой).
● Но главное — нужно не быть админом, которому Ansible привычнее.
Статья-разбор оконных функций для тех, кто их еще никогда не использовал, с примерами кода и данных:
• разница оконных функций и агрегации;
• зачем нужна конструкция OVER();
• особенности PARTITION BY;
• как задавать порядок расчета (ORDER BY);
• примеры функций ранжирования и базовых агрегаций.
Выкатили приложение, а через час — таймауты? Redis отключился, а вы узнали об этом от клиентов?
В этой статье на реальном примере покажу, как Spring Boot Actuator превращает ваше приложение из «чёрного ящика» в прозрачную систему. Разберём:
➡ Что такое Actuator и зачем он нужен.
➡ Как настроить эндпоинты, чтобы не открыть дыру в безопасности.
➡ Какие метрики реально помогают найти узкие места (история, как мы ускорили приложение на 40%).
➡ Кастомные метрики для бизнес-показателей.
➡ Лучшие практики продакшена: liveness/readiness probes, изоляция портов, кастомные HealthIndicator.
Рассказываю, как я сделал простейший yaml сервис на Java и Vue для разовой загрузки данных, чтобы не писать тонны кода и не мучиться с JSON.
Предыдущая часть: Enovia умерла, да здравствует JMatrixPlatform: пересобираю легендарную платформу на Java и Vue
Начинаю короткий цикл с мини-историями разработки JMatrixPlatform. Информации очень много, но я начну с задачи взаимодействия технических специалистов с самой системой и её данными.
Читать далееВ линейной алгебре и приложениях важную роль играют циркулянты — квадратные матрицы, в которых каждая строка, начиная со второй получается циклическим сдвигом вправо из предыдущей. Вот общий вид цикрулянта порядка :
В этой статье мы устно найдём собственные значения матрицы её определитель (который тоже называется циркулянтом), ортонормированный базис из собственных векторов, выведем отсюда простую структуру алгебры циркулянтов, а также покажем их связь с гауссовыми суммами, дискретным преобразованием Фурье и приложениями.
Читать далееЗа последний год мы в «Клеверенс» наблюдаем интересную тенденцию: дистрибьюторы активно закупают железо для работы с «Честным ЗНАКом», но процессы на складе всё равно буксуют. Оказывается, наличие ТСД и принтера в инвентарной ведомости не гарантирует автоматизацию.
Читать далееЭта статья про то, как делать гибкую и расширяемую архитектуру с помощью простейших инструментов. Метод компонентов даёт интероперабельность, платформы, области ответственности, управление жизненным циклом, свободу в выборе технологий, бесконечный источник дофамина и избавляет от боли в суставах. Короче, компонентный подход реально CRAZY. А самое главное то, что он очень простой.
Читать далееДумаю, можно уже сказать прямо: массовые увольнения в tech-секторе — это ужасная идея.
Согласны? Да, знаю. Согласиться легко.
Но увольнения не прекращаются. И, по всем признакам, средние и крупные tech-компании только разогреваются. Топор ещё даже не наточен. И каждый технарь, кого пока не задело, наверняка гадает — когда придут за ним.
Может, вы просто стараетесь не высовываться. Вероятно, лучшая стратегия. Но если вы, как и я, следили за каскадом объявлений об увольнениях последний год, у вас могло сложиться впечатление: чем крепче крупные tech-компании сжимают рукоятку топора, тем быстрее из рук ускользает здравый смысл.
Давайте разберёмся в свежих новостях — и я соединю точки.
Читать далееРоссийский IT 2026: нет универсального выбора интеграций
К 2026 году мы окончательно привыкли жить в реальности тотального импортозамещения и раздутых внутренних экосистем. Казалось бы, за это время рынок должен был выработать единый стандарт «как правильно соединять отечественный софт», но на деле зоопарк решений стал только больше.
В данном аналитическом обзоре мы рассмотрим различные подходы к интеграции с точки зрения технической целесообразности, без предпочтения конкретных технологий.
Разбираемся в деталях