Блог. Склад текстов. И прочее городу и миру...
Рубрикатор
Последние записи
Гемы is-module-reset и is-deep
Вообще-то я сначала собирался написать только про is-module-reset, но понял, что без упоминания ключевой зависимости — is-deep — а главное, ограничений, с нею связанных, обойтись никак нельзя.
И ключевое ограничение — это категорическая несовместимость с activesupport, поскольку is-deep
monkey-патчит те же методы (с теми же целями но полностью другим способом)… Возможно, я когда-нибудь придумаю другие имена,
но пока не знаю, чем корректно и идиоматично заменить deep_merge.
Начнем с того, что попроще.
is-module-reset
Собственно, задача, которая передо мной встала: это тестирование плагинов для Jekyll, в частности —
jekyll-is-hookdown,
о котором я писал ранее. Проблема возникает, в первую очередь, с тестированием хуков, поскольку Jekyll не предоставляет возможности
их дерегистрации, и пересоздание объекта сайта тут не помогает, поскольку хуки хранятся в переменных модуля Jekyll.
Соответственно, новый гем тем и занимается, что сохраняет и восстанавливает внутреннее состояние модулей (и классов). Интерфейс простой:
dump(*mods)-
Копирует данные модулей, возвращая
Hash, который затем можно использовать для восстановления. undump(hash)-
Восстанавливает ранее сохраненные данные. Очевидным образом
dumpиundumpиспользуются в паре. isolate(*mods) { ... }-
Сохраняет данные указанных модулей, выполняет блок кода, восстанавливает сохраненные данные обратно.
Сохраняются только переменные объекта указанных классов и модулей и переменные класса, причем последние — только принадлежащие непосредственно указанному классу или модулю, а не унаследованные им. Что это такое и в чем разница, можно посмотреть в моей давней статье. Константы не сохраняются, чтобы не вызывать лишних предупреждений. Если у вас где-то меняется содержимое констант-контейнеров, это нужно учитывать и обрабатывать как-то иначе.
Тут я хочу подчеркнуть, что гем предназначен для использования только в тестах и не обеспечивает полноценной изоляции контекста. Это не средство для создания «песочницы» или чего-то подобного в рабочих задачах.
Данные копируются через deep_dup, со всеми его ограничениями. И тут самое время перейти к следующему гему…
Те, кто в лесу
Смерть кощеева не в яйце, эту сказку ты можешь забыть. Смерть кощеева в нём самом, и то было бы полбеды. Ведь в охотниках до его головы сейчас недостатка нет, Только он не дурак — не выходит на этот свет.
Добру молодцу не найти путь до лаковых чёрных палат, Добру молодцу не пройти, где немёртвые слуги не спят. Где сидит эта тварь, вместо воздуха волглый дым, Вместо неба бетонный свод — там нет места живым.
Те, кто ходит в лесу, слышат ворона зов, Значит снова открылась тропа через старый ручей, Те, кто ходит в лесу, чуют чёрную кровь, По остывшему следу читают измененье порядка вещей.
Чо там у Suno?
В продолжение наведения порядка со ссылками… Раз уж начал, зашел на, собственно, Suno, а там обновления и прочая веселуха. Причем я как раз успел застать состояние перед переходом на модель v6 и попробовать модели v4.5 (ее бесплатный вариант) и немного v5.5 (в промо-режиме).
Для более-менее основательных выводов я повозился с этими моделями недостаточно, могу лишь субъективно сказать, что v5.5 мне скорее понравилась, а бесплатная ветка v4.5 — не понравилась совсем. Про действующую v6 (в части бесплатной v6-mini) ниже скажу подробнее.
Ссылки
В апдейт к предыдущему посту: сейчас списки под текстами — в обратном хронологическом порядке вместо прямого, при этом сначала идут треки на русском, потом переводы. По клику на иконке наушников «🎧» можно перейти на страницу данного трека на Suno, а по клику на иконку листа бумаги «📄» (если она есть) — на страницу текста на этом сайте. Тексты переводов я пока на сайт не заносил…
Все тексты, к которым есть suno-озвучка можно найти через категорию Suno.
Tg: сентябрь 2026
Сбои и многочасовые задержки продолжаются. Но в целом каналы функционируют.
Биоразнообразие Свердловской области в TG
Обалденное макро в этом сентябре прилетело.
Полностью выложен мерч с зябликом
Ровне через два месяца после первой части выкладываю, что там на ВсехМайках. Вообще-то, модерацию «Зяблик» прошел еще в первых числах сентября, но тут уже у меня руки не доходили…
Напомню, что эта серия — стилизация под старинный справочник-определитель с базовой информацией о виде. Приведенные сведения и рисунки в целом соответствуют действительности, но могут быть какие-то неточности и ошибки — все-таки я не профессиональный орнитолог, да и задача стояла скорее декоративная.
Следующим будет, как я уже говорил, юрок. Надеюсь закончить и выложить первую часть на PrintDirect на ближайшей неделе…
Tg: август 2026
В этом августе начались пропуски всего подряд, а еще GitHib Actions то вообще сбоят, то запускают задачи с многочасовыми опозданиями…
Биоразнообразие Свердловской области в TG
По Свердловской области прям сложно выбрать — сразу несколько наблюдений красивых и/или редких… Остановился на птенце коростеля.
Мерч: гриб, жук и цветок
Добавил на сайт еще три коллекции:
Там, когда...
Там, где берёзы сыплют свои медяки в реку чёрной воды, Когда дорога окончательно повернёт на север, Сойди на сухую обочину, тебя здесь найдут следы Тех, кто носит за лацканом четырёхлистный клевер.
Не выбирай тропы́, жди, пусть она сама Бросит тебе под ноги край распрямлённой пружины. Не перешагивай камни — это ступени на Старом пути под гору через ветра́ вершины.
Там, где промеж камней начинает белеть первый снег, Когда старый вяз, кряхтя, обнимет края поляны, Остановись, послушай тихий закатный свет, Принюхайся к тонким краскам высохшего бурьяна.
Не покидай тропы, долго на месте не стой, Выйти в подлунный мир нужно успеть до ночи. В сумерках пробираясь, ты не заметишь то, Что видеть тебе не положено, рано, да и не хочешь.
Там где луна освещает, нехотя, неровную дорогу домой, Когда придорожный куст выглядит тенью семи животных, Выдохни и расслабься — теперь ты снова такой, Каким был всегда. И будешь… до поворота.
Плагины jekyll‑is‑hookdown и jekyll‑is‑images v0.8.2
jekyll-is-images
Сначала коротко про jekyll-is-images. По сравнению с состоянием на прошлый пост в основном
произошло много мелких правок мелких багов, из относительно существенного — довел до ума работу галерей в режиме слайд-шоу (впрочем, и там
есть куда расти). А третью цифру я поднял при смене зависимости с is-kramdown-hooked
на jekyll-is-hookdown, о котором и поговорим далее. Это повлияло на то, что следует указывать
в _config.yml — вместо input: ISKram в подразделе kramdown следует указывать markdown: Hookdown в корне конфига. А подраздел
kramdown остается полностью рабочим, и там можно указывать любой input, например — GFM1 (что я и собираюсь сделать на сайте
в ближайшее время).
jekyll-is-hookdown
Итак, что же это такое? Это специальный гем, который «хакает» процесс обработки markdown в Jekyll, добавляя хук на тот момент, когда страница уже распарсена во внутреннее AST-представление и еще не преобразована во что-то другое. Зачем это надо? Чтобы не делать лишней работы по парсингу исходного markdown или финального HTML.
-
GitHub Flavored Markdown. Конкретно мне это нужно для того, чтобы использовать ``` (тройной бэктик) для блоков кода вместо окружения {% highlight %}. ↩
Мерч: Большой крохаль
Мерч: Паук и еще один пейзаж
Ссылки на Suno
Давно собирался, наконец-то сделал — ссылки на мои опыты в Suno, непосредственно со страниц соответствующих текстов. Нужно, конечно, сделать еще нормальные плейлисты и альбомы, но это потом. И, конечно, надо делать нормальную верстку… И это как раз в процессе, вместе с прочим рефакторингом и редизайном.
Пока можно посмотреть список омузыкаленных текстов по тегу «suno».1
Пока просто списки в хронологическом порядке, без отделения того, что мне самому понравилось от особо упоротых экспериментов…
-
См. изменения в последующем посте. ↩
Показаны 12 записей из 354





