Мне лень

Привет Хабр!
И как бы это было бы не странно, мне лень - писать это мнение (признаюсь сразу), но появилась у меня эта мысль, на которой я себя поймал, когда открыл рабочий проект (поэтому собственно и пишу сюда).
Большая ли мысль?
Привет Хабр!
И как бы это было бы не странно, мне лень - писать это мнение (признаюсь сразу), но появилась у меня эта мысль, на которой я себя поймал, когда открыл рабочий проект (поэтому собственно и пишу сюда).
Большая ли мысль?
Привет, Хабр!
Сегодня мы рассмотрим, как написать один RPM .spec
-файл так, чтобы он одинаково успешно собирался на Fedora, RHEL и даже на openSUSE.
Но для начала: зачем вообще поддерживать несколько дистрибутивов одной спецификацией?
Я больше года использовал Cursor. Подробно изучил все его возможности и лучшие практики работы с инструментами и... отказался от всего этого в пользу Claude Code.
Уже несколько недель я полностью работаю в Claude Code вместо Cursor. И, честно говоря, возвращаться совсем не хочется. В этой статье я расскажу, как использую Claude Code и поделюсь своими советами по его максимальному использованию.
Привет, Хабр! Я Данил и я разработчик проекта Termidesk Assistant. На нашем проекте мы успешно используем технологию WebRTC, а еще ее используют такие технологические гиганты, как Google Meet, Microsoft Teams, Discord и многие другие.
Хотел бы поговорить о наболевшем, а именно о тех проблемах, с которыми я успел столкнуться, но почему мы все равно остановились на этой технологии. Возможно даже страница будет расширяться теми шишками, которые на меня упали по ходу движения через этот темный лес. Если вы планируете начать проект, который передает аудио и/или видео и ищите открытую технологию для него, ну, и для тех, кто просто интересуется и изучает этот стандарт, то это статья для вас.
Когда я был зимой в Японии, одним из самых удивительных для меня явлений этой страны оказалась невероятная система общественного транспорта. Она не только была эффективной и надёжной, но и турникеты на станциях работали подозрительно быстро. Турникеты лондонской подземки не сравнятся с ними по скорости работы с Google Pay и другими моими бесконтактными картами. В чём же причина? Я решил изучить, почему японская система транспортных карт (IC-карт) так уникальна по сравнению с западными, и в процессе этого исследования узнал пару любопытных фактов.
Хотите сделать админку для Laravel, но не хочешь копаться в коде? MoonVibe — это генератор на базе LLM, которая сделает её за тебя. Просто пишешь, какой функционал нужен в админке — и через пару минут получаешь готовый проект. Работает по API с бесплатными моделями и ставится локально.
Если вы когда-либо сталкивались с чужим кодом (или даже со своим, написанным полгода назад), то знаете, как сложно бывает понять, что именно делает тот или иной фрагмент. В такие моменты особенно остро ощущается потребность в пояснениях. Но какие есть способы, помогающие сделать код понятным?
Разберемся вместе.
Предыстория: я фрилансер, основные деньги получаю, делая инструменты для редактирования xlsx файлов. Когда работы с Excel много, часто скапливаются задачи, что можно автоматизировать, но они делаются вручную. Я и пишу программы, что получают xlsx файл и обрабатывают данные с листов в удобный вид. Всё быстро, просто, понятно (одну кнопку нажать) и удобно.
Привет, Хабр!
Сегодня разберёмся, почему попытка «избавиться от ?
любой ценой» приводит к проблемам, и как жить с этим вообще жить.
Фонд Cloud Native Computing Foundation опубликовал свой юбилейный 10-й отчет CNCF Annual Survey под названием «Cloud Native 2024: Approaching a Decade of Code, Cloud, and Change». В опросе приняли участие более 750 IT-специалистов со всего мира: инженеры, архитекторы, CTO и руководители DevOps-направлений. Инженеры из DevOps-команды Hilbert Team проанализировали данные отчета и сравнили их с трендами российского рынка.
Spring Security — это мощный и важный фреймворк в Spring для обеспечения безопасности приложения при помощи аутентификации и авторизации. Основан на цепочке фильтров. Например, в Spring Security 6.5.1 по умолчанию стандартная цепочка фильтров (FilterChainProxy) содержит до 12–16 фильтров, выполняющих различные механизмы проверки. Стоит отметить, что точное количество фильтров зависит от конфигурации.
Представьте, что у вас есть бэкенд-приложение с REST API и вы хотите обращаться к нему не только с локальной машины, но и из интернета — через браузер, Postman, фронтенд или мобильное приложение. Для этого можно настраивать маршрутизацию, туннелирование, искать белый IP — или просто задеплоить приложение в облако. Под катом — пошаговая инструкция, в которой развернем Java-приложение на облачном сервере и пошагово пройдем весь процесс — от сборки до запуска и обращения к API извне.
Привет, Хабр. Это снова Алексей Деев, backend программист в компании Avanpost. Сейчас я хочу предложить вам отойти немного от написания кода и погрузиться в теорию: рассмотрим архитектуру Akka.net и проблемы, которые акторы помогут нам решить. Перед прочтением советую хотя бы бегло прочитать статью Введение в Akka.NET], чтобы иметь базовое представление о модели акторов в целом. Эту статью я не позиционирую как часть цикла, скорее, это небольшой спин-офф к основному сюжету.
Добавляем щепотку векторного программирования в задачки проекта Эйлер. Заодно разбираемся, как эффективно реализовать деление на константу.
Когда я был еще джуном, старшие разработчики настоятельно советовали мне перейти на zsh. Я помню, что я так и не получил никакой аргументации, чем zsh лучше привычного bash, и какую конкретно пользу я получу от перехода.
Что ж, в этой статье я хочу ответить на эти вопросы тем, кто еще только задается этим вопросом, с небольшим уклоном к PHP разработке
Zsh это командная оболочка, то есть программа, которая получает от пользователя команду в текстовом виде и выполняет соответствующие исполняемые файлы, найденные по путям, указанным в переменной окружения PATH
.
Zsh является дефолтной оболочкой для macOS, на linux дефолт - bash. Zsh лучше, чем bash в основном благодаря своей очень обширной системе плагинов, модулей, различных тем и т. д.
Например, установив вот такой плагин.
Начиная с версии 3.12 Python поддерживает такой тип объектов, как бессмертные (Immortal). Бессмертными объектами являются глобальные константы, такие как None
, False
, True
, а также некоторые другие объекты. Если вам интересно, что это за объекты, как ими становятся обычные смертные, где они используются и как повлияли на CPython — добро пожаловать.
Недавно работал в команде, занимавшейся разработкой встроенного ПО. Это ПО в значительной степени основывалось на конечных автоматах, которые десятками были разбросаны по множеству функций. И хотя такая архитектура весьма распространена в разработке встраиваемых систем, в особенности систем без ОС, я задался вопросом: неужели нет способа выразить поток управления более чисто?
Конечные автоматы в нашем коде работают прекрасно, но их понимание и обслуживание зачастую вызывало головную боль. В их работе отсутствовал линейный поток, плюс они требовали мысленного жонглирования флагами, состояниями и переходами, происходящими в функциях опроса.
Меня не покидала мысль: «А не будет ли проще написать логику в виде последовательной программы, ожидающей события и возобновляющей выполнение с места остановки?»
Естественно, в проекте не допускалось использование RTOS, посему традиционный подход применения потоков или систем блокирования для управления конкурентностью не рассматривался. Но я знал, что должна быть некая золотая середина.
Привет, Хабр! При создании фоновых работ, например, через Hangfire, может быть актуально учитывать разделяемые ресурсы (например, базы данных, внешнюю API или файловую систему). Поскольку такие ресурсы являются ограниченными, возникает потребность управления количеством параллельно исполняемых задач без написания сложной логики. Интересующимся особенностями распределения ресурсов в Hangfire при помощи очередей — пожаловать под кат :)
Данный обзор посвящён применению теории категорий в программировании. Акцент сделан на то, что стремление к повышению качества программ неизбежно приводит к абстракциям («функтор», «монада» и прочие), которые уже появились в математике при решении другого рода задач.
В этой части будет рассказано об основных свойствах категорий, приведены примеры наиболее важных для дальнейшего изложения. Но сразу предупреждаю, что это лишь «скучное введение» — полезность представленных здесь сведений раскроется лишь в последующих частях обзора.
Stream'ы в java явление давно не новое. Старая добрая Java 8 появилась на свет более 10 лет назад. С появлением Stream API жизнь стала проще и веселее. Но есть в Stream API два гадких утёнка: Stream#close и Stream#parallel.
С первым все достаточное просто — если не уверен в источнике откуда берется Stream — то он может быть вполне себе ресурсом и требовать try‑with‑resources (привет java.nio.file.Files#list). Cо вторым куда веселее...