Reading view

Пакуем PHP в PHP, чтобы запаковать в JS, чтобы обернуть в HTML

Прочтя недавний перевод про запаковку БД в exe, решил рассказать об идеи, которую реализовал лет 6 назад в своем домашнем проекте. Сам проект недоделал, но речь в статье об архитектуре файлов и их запаковке.

Читать далее
  •  

1С без рутины: нейросети, MCP, автоматизация и немного «Косынки»

Что происходит в мире 1С? Нейросетка уверенно пишет сортировку пузырьком, а на реальном проекте 1С внезапно начинает придумывать несуществующие процедуры. AI-агент сам правит конфигурацию через MCP. Администраторы учатся автоматически находить и перезапускать «перестарки». А между всем этим можно… сыграть в «Косынку» прямо в 1С.

В новом дайджесте Базы знаний собрали материалы, которые хорошо показывают, насколько разными бывают задачи вокруг 1С — от экспериментов с AI и автоматизации разработки до вполне практичных инструментов для администраторов и пользователей.

Читать далее
  •  

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

Структуру, о которой ниже пойдёт речь, знали в древней Индии за тысячу лет до самого Фибоначчи и переоткрыли в 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).

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

Читать далее
  •  

MRP — отличный инструмент. Просто он не для этого

Вы нажимаете в ERP кнопку «Рассчитать план», получаете плановые заказы с датами и резонно предполагаете, что система только что построила производственный план. Она его не строила. Она рассчитала, что нужно закупить и изготовить под план, который кто‑то дал ей на вход. Разбираю двенадцать характеристик производства, при которых MRP перестаёт справляться, и объясняю, откуда на самом деле должен браться производственный план.

Читать далее
  •  

Как установить анимацию GIF для иконки окна Linux? Как поменять и получить иконку окна Linux?

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

Читать далее
  •  

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

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

Читать далее
  •  

1C Extension Checker 2.0: как проверить расширения после обновления 1С до того, как ошибки найдут пользователи

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

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

Для предварительной проверки таких ситуаций мы разработали 1C Extension Checker 2.0 — самостоятельную внешнюю обработку, которая помогает проверить подключённые расширения и зафиксировать обнаруженные проблемы в едином протоколе.

Читать далее
  •  

[Перевод] skitter-creek-bath-salts — обход аппаратной изоляции памяти в современных CPU

Или как получить полный доступ к изнанке CPU через скремблирование DRAM — PSP, C6, микрокоду, среде SMM и всему остальному, что не попало на страницы спецификации.

Всё-таки не всегда &x == &x...

Через вмешательство в работу контроллера DRAM можно сделать так, что обращение по определённому адресу будет вести в любую нужную область памяти. skitter-creek-bath-salts изменяет нижние слои структуры памяти, перестраивая трансляцию физический адресов DRAM. Такой скрэмблинг раскрывает защищённые области памяти, в том числе изолированные зоны, которые не видит даже само ядро. Когда ломается трансляция памяти, следом рушатся построенные на ней механизмы безопасности, и мы получаем доступ буквально ко всему.

Читать далее
  •  

Компилятор удалил вашу проверку на переполнение. И он прав

Проверка на переполнение есть в коде, проходит ревью и работает в отладочной сборке — а после оптимизации исчезает из бинарника. Разберём, почему компилятор имеет на это полное право, как неопределённое поведение влияет на указатели, память и проверки, и чем ловить такие ошибки до того, как они проявятся в рабочей среде.

Разобраться в UB
  •  

Scratch и Arduino для юных программистов и конструкторов

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

А если ребенок к тому же пытается превратить домашний робот-пылесос в боевого робота или хочет разобрать умную колонку, то есть реальный шанс направить его энергию в нужное русло. Жизнь показала, что уже тысячи детей и подростков успешно сделали первые шаги в мире программирования и робототехники с помощью первых двух изданий книги Юрия Винницкого «Scratch и Arduino для юных программистов и конструкторов».

Читать далее
  •  
❌