Обновить
1024K+

Программирование *

Искусство создания компьютерных программ

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

Способен ли UNO заменить TOML, YAML, KDL, HCL, EDN и другие языки разметки данных?

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

Уникальная нотация языка UNO создаёт ему огромный потенциал, позволяющий в перспективе заменить большинство нынешних языков разметки данных.

Понятно, что XML и JSON имеют собственные ниши, в которых они могут находиться вечно, но существует огромный ряд задач, где даже их можно с выгодой заместить. Что же касается таких специализированных форматов, как TOML, YAML, KDL, HCL или EDN, то при повсеместном внедрении UNO они рискуют потерять свою актуальность. Из-за врожденных синтаксических недостатков, медленного парсинга или скрытых ошибок, обусловленных недостаточным проектированием, эти языки могут остаться лишь в легаси-проектах. Верно ли данное утверждение? Давайте разбираться.

Да не может быть! Или всё таки..

Claude Code за неделю: /resume в десктопе, запуск сессии с телефона и своя память у субагентов

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

29 августа Anthropic разослала еженедельный дайджест по Claude Code. Пересказ на русском: /resume подхватывает терминальную сессию в десктопном приложении, сессию на своей машине можно запустить с телефона через Remote Control, субагенту можно дать собственную память между сессиями строкой memory в frontmatter, а /color и /rename помогают различать несколько открытых терминалов. Плюс версии 2.1.243–2.1.248: режим --restricted, автоматический баг-репорт, редактирование правил авторежима из /permissions, часовой prompt cache, zstd-сжатый бинарник CLI и починенные десктопные сессии.

Читать дальше →

Фибоначь врагов

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

Структуру, о которой ниже пойдёт речь, знали в древней Индии за тысячу лет до самого Фибоначчи и переоткрыли в 1988 году двое математиков, при этом весь граф целиком строится из строк, состоящих только из цифр 1 и 2, или если мы вычтем единицу, то получим 0/1 и бинарный вид.

Берём любую конечную строку из цифр 1 и 2, например такую "11212" и складываем цифры 1 + 1 + 2 + 1 + 2 = 7 и получаем ранг этой строки. Теперь простой вопрос: сколько существует строк заданного ранга? Строку такого же ранга можно получить двумя способами, либо дописав цифру 2 к строке ранга r-2, либо дописав цифру 1 к строке ранга r-1, и других вариантов нет, потому что других цифр в нашем алфавите из единиц и двоек нет.

ранг 0: “” → 1
ранг 1: 1 → 1
ранг 2: 11, 2 → 2
ранг 3: 111, 12, 21 → 3
ранг 4: 1111, 112, 121, 211, 22 → 5
ранг 5: … → 8

Заметили справа подозрительное 1, 1, 2, 3, 5, 8? Да... это последовательность Фибоначчи f® = f(r-1) + f(r-2), с небольшим условием, что f(0) = 1 (пустая строка) и f(1) = 1 (единственная строка “1”), из-за этого вся последовательность сдвинута на одну позицию относительно канонических чисел Фибоначчи, и f® = F(r+1).

То же самое делали индийские стиховеды, в своих стихах, где короткий слог занимает одну единицу длительности, длинный две, что позволяло красиво бить ритм и получать благозвучные конструкции в тексте, так что числа Фибоначчи в этом контексте старше самого Фибоначчи. Интересно что связывает стихи, Фибоначчи и дерево технологий в играх? Го под кат...

Читать далее

Лучшие практики управления конфигурацией в Spring Boot

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

Конфигурация Spring Boot приложений гораздо более сложная, чем может показаться на первый взгляд.

В новом переводе от команды Spring АйО, мы вместе постараемся внести небольшую ясность в этот процесс.

Читать далее

«Зачем платформа, если есть Kafka?» Отвечаю честно, включая ту часть, где вы правы

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

Привет, Хабр! Меня зовут Виктор Овчинников, я руковожу продуктовым направлением «Интеграционная платформа» в «Диасофт». Той самой Digital Q.Integration, которую вы имеете полное право не покупать.

Под каждой моей статьей появляется один и тот же комментарий. Слова разные, смысл один: зачем вообще нужна интеграционная платформа, если есть Kafka, брокер сообщений? Один сервис положил сообщение, второй забрал. В чем, собственно, проблема?

Раньше я отвечал в комментариях каждому, потом понял, что проще ответить сразу всем. И заодно признать неприятное: в изрядной части случаев этот комментарий справедлив. Хорошая новость в том, что за годы разговоров с коллегами из других компаний у меня накопилась приличная коллекция возражений против меня самого. Это архитекторы, аналитики, руководители разработки — люди, которые платформу не продают. Часть этих разговоров я тут перескажу, кое‑где даже дословно.

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

Читать далее

Анимации в терминале — это сложно (иногда)

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

Не так давно я на ровном месте занялся написанием библиотеки на Go (spinq) для, казалось бы, тривиальной задачи — спиннера, который гарантированно не будет ломаться при конкурентных записях в stderr и stdout.

Все началось с того, что я писал вообще другой код — консольную утилиту для запуска тестов. И захотел прикрутить туда спиннер. Но не просто спиннер, а такой, что позволил бы использовать оба потока вывода — stderr и stdout, без риска оставить артефакты на экране. Более того, во время анимации мне нужно иметь возможность показывать на экране отчеты по завершившимся тестам, не откладывая это все до конца запуска/остановки спиннера. И так уж почему‑то получилось (спойлер: потому что не слишком просто, иногда совсем невозможно и мало кому нужно), что я не смог найти библиотеку, которая бы мне подошла.

Читать далее

Находки в опенсорсе: мир питона за август 2026

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

Всем привет, вот и заканчивается лето :(

Мой прошлый дайджест неожиданным образом зашел, а значит - людям такое интересно. В августе было много новых интересных PEP’ов (например, PEP 805: Safe Parallel Python), которые я поревьюил, было много новых релизов, было много новых опенсорс проектов чуваков из нашего сообщества, пару интересных подкастов и множество другого интересного!

С меня как всегда статья без нейрослопа и ИИ, с вас как всегда интересные комментарии и лайки! Но немного нейрослопа я все же добавил в некоторые свои проекты. Но осторожно и с пользой для всех.

Погнали смотреть, что у нас в питоне происходило!

Читать далее

Утёкшие горутины теперь ищет сборщик мусора. Проверил, где он молчит

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

В Go 1.27 профиль goroutineleak вышел из эксперимента: рантайм научился доказывать, что горутину уже некому разбудить. Собрал тулчейн из исходников, прогнал десяток программ и замерил, что детектор находит, где он молчит и во что обходится вызов.

Читать далее

Фоновая вкладка Chrome душит таймеры в десять раз. Мы это заметили только на замере

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

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

Читать далее

10 вещей, которые я хотел бы услышать в первый год работы. Опыт Java‑разработчика. Часть 2: карьера, отдых, саморазвитие

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

Читатели Хабра, категорически вас приветствую! Это вторая часть статьи о граблях, на которые я наступал в начале карьеры Java-разработчика, и о выводах, которые из этого сделал. В первой части я рассказывал про онбординг, работу с задачами, код — ревью, тесты и чистый код. Если вы её ещё не читали — вот ссылка.

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

Читать далее

Rust 1.98.0: алгебраические методы для f32,f64, исправление взаимодействия между ManuallyDrop и Box

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

Команда Rust рада объявить о выходе новой версии Rust — 1.98.0. Rust — это язык программирования, который помогает каждому создавать надёжное и эффективное программное обеспечение.

Если у вас уже установлена предыдущая версия Rust через rustup, вы можете получить 1.98.0 командой:

$ rustup update stable

Если Rust ещё не установлен, вы можете получить rustup на соответствующей странице нашего сайта и ознакомиться с подробными release notes для 1.98.0.

Если вы хотите помочь нам, тестируя будущие релизы, рассмотрите возможность переключиться локально на beta-канал (rustup default beta) или nightly-канал (rustup default nightly). Пожалуйста, сообщайте о любых обнаруженных ошибках!

Читать далее

Один харнесс, три модели: чего вам не расскажут публичные бенчмарки

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

Привет! Я Чичев Максим, работаю руководителем разработки платформенных решений в Петрович-Тех. В этой статье хочу рассказать о том, как я прогнал три LLM трёх весовых категорий через один и тот же харнесс на агентных задачах длиной 2, 3 и 15 шагов — и почему на длинных цепочках тезис «харнесс важнее модели» перестаёт работать.

Читать далее

Когда продукт считать готовым? Или мы обречены на вечный допил…

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

Привет, Хабр! (И тебе, случайный читатель, который открыл эту статью в перерыве между двадцатой правкой того, что ты ещё месяц назад гордо назвал финальной версией).

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

Когда же продукт готов? И будет ли готов когда-нибудь...?

Читать далее

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

Данные без противоречий. Форма данных рисунком

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

Четвёртая часть цикла про TDCV2 — открытый конструктор тестовых данных, который я пишу сам.

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

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

Читать далее

Фреймворк WebDesktopGL для запуска веб-сайтов как десктопных приложений в Astra Linux и Linux системах. Через Chromium

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

WebDesktopGL — это фреймворк для преобразования веб-сайтов в настольные приложения на основе Chromium. Совместим с Astra Linux и другими системами Linux. В статье рассказано о следующем:

Как использовать браузер Chromium в качестве отдельного графического движка (параметры запуска Chromium).

Как на виртуальном экране Xephyr или Xvfb (X-сервере) реализованном над Xorg, добавить поддержку GPU видеокарты.

Как реализовать буфер обмена между дисплеями с помощью xclip в Astra Linux и других системах Linux.

Цель работы — это создание аналога фреймворка Electron, альтернативного программного продукта WebDesktopGL, для Astra Linux и других систем Linux. Фреймворк WebDesktopGL был протестирован в средах Wayland и X11 в Ubuntu 24.04 (KDE), в X11 Ubuntu 22.04 (KDE) и Astra Linux 1.8.

Читать далее

Alpha канал и конвертация изображений в пиксельный формат ARGB. Конвертация форматов gif, webp, mov, mp4, png через Bash

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

В этой статье приведены: паттерны команд Bash в формате скрипта make_window_icon_txt.sh, а также добавление alpha канала с помощью Bash-скрипта утилитами imagemagick (convert) и ffmpeg. Скрипт имеет размер 290 строк. Эти команды bash отвечают на вопросы:

— Как удалить фон из анимированных форматов gif, webp, mov?
— Как добавить alpha канал в форматы gif, webp, mov, mp4 и png?
— Как конвертировать форматы gif, webp, mov, mp4 в отдельные png изображения?
— Как собрать форматы gif, webp, mov, mp4 из отдельных png изображений?
— Как конвертировать изображения в формат ARGB иконок оконных менеджеров?
— Как попиксельно обрабатывать форматы gif, webp, mov, mp4 и png?

Также в статье приведены оптимальные параметры команд imagemagick (convert) и ffmpeg для обработки форматов gif, webp, mov, mp4 и png.

Читать далее

Управление окнами в Linux через libx11(X11/Xlib.h) + Утилита для управления окнами в Linux дистрибутивах X11 и wayland

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

В статье показана структура запросов к окнам Linux, позволяющая управлять уже запущенными окнами. Изначально утилита xdotool_xseticon была создана для динамического изменения значка окна в Astra Linux. Затем функционал утилиты был расширен для полного управления окнами и получения всей информации об окне Linux. Утилита xdotool_xseticon была протестирована в средах Wayland и X11 в Ubuntu 24.04 (KDE), в X11 Ubuntu 22.04 (KDE) и Astra Linux 1.8. Размер утилиты - 1000 строк.

Читать далее

Превратил весь ML-пайплайн в единый вычислительный граф и ни о чём не жалею

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

Эксперимент на примере классификации изображений CIFAR-10 с использованием фреймворка ICO: параллельная загрузка данных, аугментации, тренировка и валидация.

Поехали!

Почему мне больше не весело делать игры

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

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

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

Особенно остро это бьет по тем, кто отдал профессии порядка 15-20 лет. Поколению, которое до сих пор относится к своей работе как к особому виду искусства, тошно от коллег, пришедших только за деньгами и не желающих по-настоящему учиться и развиваться.

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

Под катом мы поговорили с коллегой из сферы геймдева, который давным-давно нашел и потерял себя в этой нише и хотим поделиться с вами его историей.

Читать далее

Долго запускается qt creator, долго переходит между вкладками (проект, отладка, редактор), не работает масштабирование

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

В этой статье рассматривается одна из причин такого поведения IDE Qt Creator и приводится решение этой проблемы. Актуальность:

1. В интернете нет описания и решения данной проблемы (я искал).

2. Некоторые решения данной проблемы, которые может выполнить пользователь, вредоносны.

3. ИИ не предлагает верного решения.

4. У ide Qt Creator нет лога ошибки данной проблемы (QT_DEBUG_PLUGINS=1 и gdb бесполезны).

Читать далее