shikhalev.*

Рубрикатор

Последние записи

ТекстыСтихи

2026.08.26 • Иван Шихалев

Там, когда...

Там, где берёзы сыплют свои медяки в реку чёрной воды, Когда дорога окончательно повернёт на север, Сойди на сухую обочину, тебя здесь найдут следы Тех, кто носит за лацканом четырёхлистный клевер.

Не выбирай тропы́, жди, пусть она сама Бросит тебе под ноги край распрямлённой пружины. Не перешагивай камни — это ступени на Старом пути под гору через ветра́ вершины.

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

Не покидай тропы, долго на месте не стой, Выйти в подлунный мир нужно успеть до ночи. В сумерках пробираясь, ты не заметишь то, Что видеть тебе не положено, рано, да и не хочешь.

Там где луна освещает, нехотя, неровную дорогу домой, Когда придорожный куст выглядит тенью семи животных, Выдохни и расслабься — теперь ты снова такой, Каким был всегда. И будешь… до поворота.

ТехнологииПрограммированиеRubyWeb

2026.08.22 • Иван Шихалев

Плагины 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 в Je­kyll, добавляя хук на тот момент, когда страница уже распарсена во внут­рен­нее AST-представление и еще не пре­об­ра­зо­ва­на во что-то другое. Зачем это надо? Чтобы не де­лать лишней работы по пар­син­гу исходного markdown или фи­наль­но­го HTML.

  1. GitHub Flavored Markdown. Конкретно мне это нужно для того, чтобы использовать ``` (тройной бэктик) для блоков кода вместо окружения {% highlight %}. 


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

CSSHTMLJekyll

ЖизньДыбрWebО себе

2026.08.15 • Иван Шихалев

Мерч: Большой крохаль

Фото самца большого крохаля (Mergus merganser). 18 мая 2026 года, Дружино-Бардымский пруд.
Фото самца большого крохаля (Mergus merganser). 18 мая 2026 года, Дружино-Бардымский пруд.

PrintDirectВсеМайкимерчпринтшопы

ЖизньДыбрWebО себе

2026.08.09 • Иван Шихалев

Мерч: Паук и еще один пейзаж

FUNPrintDirectВсеМайкимерчпринтшопы

О себеТекстыWeb

2026.08.07 • Иван Шихалев

Ссылки на Suno

Фрагмент скриншота моей страницы на Suno

Давно собирался, наконец-то сделал — ссылки на мои опыты в Suno, непосредственно со страниц соответствующих текстов. Нужно, конечно, сделать еще нормальные плейлисты и альбомы, но это потом. И, конечно, надо делать нормальную верстку… И это как раз в процессе, вместе с прочим рефакторингом и редизайном.

Пока можно посмотреть список омузыкаленных текстов по тегу «suno».

Пока просто списки в хронологическом порядке, без отделения того, что мне самому понравилось от особо упоротых экспериментов…

SunoИИмузыка

ТехнологииПрограммированиеRubyWeb

2026.08.05 • Иван Шихалев

Плагин jekyll-is-images v0.8.0.2

Картинка для привлечения внимания

Сделал таки плагин для Jekyll, реализующий именно то, и именно так, как мне надо…

Коротко суть: картинки обрезаются, ресайзятся и конвертируются в зависимости от параметров, и далее заворачиваются в теги <figure>. Более того, легко и непринужденно из этих картинок формируются галереи, которые тоже можно всячески кастомизировать.

Подробности можно почитать в README-ru проекта на Github. Здесь коротко.

Зависимости и ограничения

  • Требуется ImageMagick 6-й или 7-й версии. И это та зависимость, которая не подтягивается через bundle install по по­нят­ным причинам.

  • Полноценно плагин будет работать, только если в качестве markdown-конвертера выбран Kramdown (это дефолтный выбор, так что, думаю, для большинства пользователей Jekyll — не проблема).

    • Кроме того, в настройках самого kramdown нужно выбрать кастомный парсер ISKram, что может стать проблемой, если уже используется какой-то кастомный парсер…

      markdown: kramdown
      kramdown:
        input: ISKram
  • Запуск с нуля — при пустом кэше — это долго.

    У меня получилось примерно 47 минут для этого сайта. Повторный запуск, когда кэш в наличии, занимает чуть больше полутора минут.

Далее о хорошем.

Синтаксис

Стандартный. Т.е. пишем, как это в Markdown принято, ![Text](url){: атрибуты } и радуемся. Вся кастомизация сидит в ат­ри­бу­тах и контексте.

Если разметка рисунка сидит на отдельной строке, отбитая пустыми строками сверху и снизу, то она заворачивается не в <p>, как это обычно делает Kramdown, а в <figure>.

Но самая магия начинается, когда у нас в одном абзаце несколько картинок, и нет ничего другого — в этом случае формируется галерея.

Можно, впрочем, использовать и liquid-теги {% image ... %} и {% gallery ... %}, как раз на тот случай, если нет возможности использовать Kramdown с кастомным парсером. Правда, Kramdown все равно подтянется по зависимостям, и именно он будет разбирать параметры тегов.

Превьюшки для соцсетей

Штатно Jekyll позволяет указать картинку, которую соцсети будут использовать для превью. Плагин позволяет кропнуть и отресайзить эту картинку, а также накладывает на нее заголовок поста, дату и название сайта.

Кстати, именно это и занимает большую часть времени работы — формирование и наложение текста ImageMagick’ом.

Статус и планы

Текущая версия — 0.8.0.2, т.е., как и все 0.8.xxx у меня — это скорее публичная альфа, чем что-то еще.

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

Upd по GitHub Actions

Так и не удалось пока подружить плагин с ImageMagick v6. Пришлось через одно место ставить v7. Вероятно, буду все-таки уже в ближайшее время делать сборку через собственный контейнер, иначе слишком много бубнов сотрется…

CSSHTMLJekyll

ЖизньДыбрWebО себе

2026.08.02 • Иван Шихалев

Мерч: Туманные низины

Продолжаю пополнять каталог (да, очень медленно). Внес товары с июньским пейзажем «Туманные низины».

Начало дня после очень туманного утра июня 2026 года

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

FUNPrintDirectВсеМайкимерчпринтшопы

ЖизньПриродаWeb

2026.08.02 • Иван Шихалев

Tg: июль 2026

Сбоев при автопостинге вроде бы не было. Зато начались пропуски птиц, не хватает свежих видов… Видимо, я немного оптимистично выставил лимиты. Но ничего страш­но­го — потихоньку со временем идем на новый круг.

Биоразнообразие Свердловской области в TG

Просто красивые щеглы. Обычные, но очень симпатичные птицы.


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

TelegramiNaturalistбабочкигрибыживотныенасекомыепопугаиптицырастенияцветы

ФотоОбработкаТехнологииСофтГрафика

2026.07.25 • Иван Шихалев

AI-функции в Darktable 5.6

Модуль «neural restore»

Недавно вышел Darktable 5.6.0. Там довольно много нового и интересного, но, конечно, главное, что обращает на себя внимание — это AI-функции. Имеются: шумоподавление в RAW, просто шумоподавление, апскейл (т.е. увеличение картинки) и маски. Маски я пока не смотрел — я ими как-то вообще не пользуюсь и не очень понимаю, что проверять. Шумодавами и апскейлом я, правда, тоже почти не пользуюсь, но куда смотреть — представляю.

Что дают?

Итак. «raw denoise», «denoise» и «upscale». Как можно видеть на скриншоте, они объединены в один модуль, и это не модуль обработки, он не участвует цепочке обработки и не попадает в историю, это служебный модуль, и находится он в левой панели.

По кнопке «process» генерируется отдельный новый файл — TIFF в случае «denoise» и «upscale», и DNG — в случае «raw denoise». По умолчанию он размещается рядом с исходным и сразу регистрируется в библиотеке.

За исходник «raw denoise» берет исходное состояние RAW-файла, тогда как «denoise» и «upscale» — результат всех примененных обработок. Что, безусловно, логично, но не консистентно. К то­му же конкретно для «denoise» это неудобно — по идее это действие должно быть внутри цепочки, ближе к началу… Я недоучел этот момент, когда делал свои тесты (о чем ниже), но переделывать не буду — «правильный» порядок действий слишком заморочный, чтобы реальный пользователь им занимался.

Где взять?

Тут есть засада: если вы как порядочный человек просто обновитесь из своего дистрибутива, не факт, что новые фичи у вас появятся. У меня в Gentoo, например, не появились. Требуется сборка с дополнительным флагом, и когда мейнтейнеры разберутся — неизвестно. Поэтому самый простой способ — скачать официальный релиз с GitHib. Для Linux там имеется AppImage, и он у меня заработал.

Затем нужно зайти в настройки.

Скриншот настроек
  • Включаем вверху галочку «enable AI features».

  • Скачиваем модели. Все, или только дефолтные.

  • Закрываем Darktable и запускаем его снова.

Отдельный вопрос: как включить выполнение на GPU. По идее, нужно установить ONNX и радоваться, но у меня не получилось — ONNX установил, но он не цепляется. Для пробы это не критично, да и для использования — не так, чтобы очень — если нужно обработать небольшое количество фотографий, скорость на CPU вполне терпима.

Что получилось?

TL;DR
  • Как работает raw denoise мне в целом понравилось, это сильно лучше шумоподавления в стандартных модулях.

  • А вот denoise просто на высоких ISO порождает артефакты. Отчасти эти артефакты могут усиливаться тем, что у ме­ня по умолчанию включен локальный контраст, а denoise, как сказано выше, берет уже обработанное изображение.

  • Что касается upscale… Я не понял. Если брать 100% кроп, то какого-то улучшения деталей в сравнении с тупым увеличением при экспорте (там можно разрешить увеличение). Общая картинка выглядит пошарпленной, но это опять же может быть вызвано двойным применением локального контраста.

Ниже много тестовых картинок.


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

AIDarktableRAWнейросетишумоподавление

ЖизньДыбрWebО себе

2026.07.13 • Иван Шихалев

Стартовал «псевдо-определитель»

Развертка кружки с «определителем» Fringilla coelebs

Как и обещал, запустил мерч с «как бы определителем». И начал с Зяблика.

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

Зяблика (Fringilla coelebs) для старта я выбрал, потому что птичка эта распространенная, широко известная, кроме того хорошо визуально определяемая, да еще и с четкими половозрастными различиями. Идеальный объект для тренировки и понимания, как что делать в общем случае, поскольку на нем я, с одной стороны, сразу столкнулся со многими нюансами генерации, а с другой — столкнулся я с ними, как выяснилось, в довольно лайтовом варианте: генерация следующего вида — юрка (Fringilla montifringilla) оказалась куда более геморройной, скорее всего, потому что его изображений в датасетах нейросетей существенно меньше… Хотя и там проблемы оказались решаемыми, так что скоро будет.

На данный момент доступны предметы только с PrintDirect, на ВсехМайках жду модерации (и что-то мне подсказывает, что она пройдет нескоро — всё замерло уже почти три недели как), а на FUN.ru модерация не прошла — фон им не понравился (их проблемы, хотя термос немного жалко).

В любом случае, всё, что есть, можно посмотреть на странице «Зяблик (Fringilla coelebs)». А отдельно хочу обратить внимание на большой постер (на пенокартоне опционально): там максимум информационных блоков, на остальных то­ва­рах — что влезло, то влезло.

Fringilla coelebsPrintDirect«определитель»ВсеМайкиживотныемерчпринтшопыптицы

ЖизньПриродаWeb

2026.07.11 • Иван Шихалев

Tg: июнь 2026

Кажется, тьфу-тьфу-тьфу, проблемы с автопостингом закончились. Так что, если где-то что-то про­пу­ще­но — это реально не нашлось подходящих под условия наблюдений (и та­кое пару раз было).

Биоразнообразие Свердловской области в TG

Абсолютно шикарная сова. Лучше, конечно, открыть фото в полном размере.


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

TelegramiNaturalistбабочкигрибыживотныежукинасекомыепопугаиптицырастениясовыцветы

ЖизньДыбрWebО себе

2026.07.04 • Иван Шихалев

Обновление каталога мерча

Добавил в каталог еще три коллекции.


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

FUNPrintDirectВсеМайкимерчпринтшопы