shikhalev.*

Рубрикатор

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

ТехнологииПрограммированиеWebО себе

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

Пара апдейтов

inat-channel v0.9.2

Что это такое — см. пре­ды­ду­щий пост.

Помимо исправления мелкого бага (имя lock-файла по умолчанию), изменил немного ло­ги­ку — при за­про­се свежих наблюдений отсечка происходит не по да­те загрузки наблюдения, а по да­те его последнего обновления. Это позволяет попадать в выборку наблюдениям, которые долго пролежали без ис­сле­до­ва­тель­с­ко­го статуса. В це­лом это должно улучшить ситуацию с по­с­туп­ле­ни­ем наблюдений в «не­се­зон», по край­ней мере, я на это надеюсь.

При этом удаление устаревших наблюдений из пу­ла по преж­не­му контролируется по да­те загрузки наблюдения.

jekyll-is-announcer v0.8.3

Опять же, о нем я уже писал. Впрочем, детали и концепция, чую, будут еще меняться и меняться…

А сейчас поменял кнопку перехода в ка­нал на виджет от те­ле­гра­ма с ком­мен­та­ри­я­ми. Что характерно, когда я делал кнопку, я ведь спрашивал у двух нейросетей, существует ли такой виджет… Но, видимо, как-то неправильно сформулировал и заузил область поиска1. А потом почти случайно сам наткнулся.

Что-то широкий и разнородный плагин получается… Пока не могу сообразить, как его окончательно заархитектурить — кноп­ки-то мож­но бы делать к разным сервисам легко, а вот встраиваемые виджеты — уже сложнее. Буду думать дальше. Раскидывать же его на несколько плагинов по отдельным сервисам не хочется, чтобы не плодить массу отдельных вспомогательных JSON-файликов.

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

Jekyll ISTelegramiNaturalistinat-channeljekyll-is-announcerкомментарии

ТехнологииПрограммированиеRubyWebПриродаОбщество

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

iNaturalist + Telegram

Анонс

Написал скрипт для автопостинга выборок из iNaturalist в tg-каналы. Скрипт делает выборку по произвольно сконфигурированным параметрам (которые, разумеется, должны поддерживаться iNaturalist API), затем берет случайное наблюдение, постит его, а остальные складывает в пул, который будет задействован, если свежие кончатся. Это если коротко.

Более подробно, как это все работает, а главное — как настраивается, я описал в README проекта inat-get/inat-channel. В том числе и на русском. Здесь пара моментов:

  • Наблюдения не дублируются.

  • Можно включить режим, когда и таксоны не будут дублироваться, с ограниченным, правда, сроком. Но его можно выставить произвольно большим.

  • Форматирование делается ERB-шаблоном, т.е. максимально гибко.

  • Скрипт прекрасно работает на GitHub Actions, запускаясь по расписанию. Для контроля неповторямости необходимо настроить обратный пуш, чтобы данные, которые хранятся в JSON-файлах, сохранялись в репозитории между сеансами.

  • Используется iNaturalist API v2, которое находится в ранней бете и может поломаться. Однако, на первой версии пришлось бы вытягивать в десятки, если не в сотни раз бо́льшие объемы данных, что малоприемлемо.

Примеры

На реальных примерах работу скрипта можно посмотреть на двух моих каналах:

Подписывайтесь, ставьте лайки, комментируйте… Отелеграмливайте свои проекты. В общем, велкам.


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

TelegramiNaturalistinat-channelавтоматизация

ТехнологииПрограммированиеWebО себе

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

Анонсер — техническая сторона

В посте о подключении телеграм-канала я уже предполагал, что напишу подробнее о технической стороне этого подключения. Вообще-то, я планировал этим заняться попозже, а пока переключиться на «Прак­ти­чес­кое руководство по dark­table»… Но внезапно обнаружил, что толком переключиться не могу, пока не доведу эту задачу с анонсером до какой-то логической точки.

Что ж, причесал Actions, отладил это хозяйство до более-менее стабильного со­сто­я­ния — хоть и далекого от завершения, но уже приемлемого для описания. Принципиальных изменений в ближайших версиях, скорее всего, не будет, а о плановых доделках я здесь еще скажу.

Задача

Собственно, основная задача стояла в следующем:

  • Отправлять анонсы (пока только в телеграм-канал) новых постов;

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

Уже по ходу дела решил добавить в Actions отправку уведомлений себе о выполненных операциях.


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

GitHubGitHub ActionsJekyllJekyll ISTelegramпланысайт

О себеТехнологииWebДыбр

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

Телеграм-канал сайта

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

Завел себе (точнее, этому сайту) канал в те­ле­ге — https://t.me/shikhalev_blog.

  • Во-пер­вых, для анонсов новых постов (даже заморочился и автоматизировал анонсирование на GitHub Actions).

  • Во-вторых, для комментариев, а то, похоже, аккаунт на GitHub мало у ко­го есть… Хотя, может, просто обсуждать нечего.

  • Ну, и в-третьих, там можно донатить «звездами». Впрочем, тут я иллюзий не питаю.

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

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

Что касается технической стороны вопроса: плагин для Jekyll можно посмотреть на GitHub — jekyll-is/jekyll-is-announcer, а его использование — в каталоге .github/workflows репозитория сайта. Думаю, еще написать об этом подробнее, но перед этим выделить основные действия из workflow в отдельные ac­ti­on-ре­по­зи­то­рии — тогда можно будет поговорить на этом примере и об устройстве GitHub Actions в целом.

GitHubGitHub ActionsJekyllJekyll ISTelegramпланысайт

ТехнологииПрограммированиеЖизньОбществоПсихологияМышление

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

Заметки об LLM и нейросетях вообще

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

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

По этому поводу перечитал свои старые посты: «Отставить панику…» и «Па­ни­ку­ем иначе», с удовлетворением убедился, что основной посыл остался верным и на текущий момент, хотя, конечно, за это время многое стало яснее и накопился реальный опыт использования — как у ме­ня лично, так и, не по­бо­юсь этого слова, у человечества в целом.

Кстати, КДПВ сгененирована по тому же промпту, что и в тех старых постах — «deep learned girl in fantasy style». Пожалуй, это будет моя новая традиция для постов на подобные темы. В кон­це концов, не ис­кус­ст­вен­ный же интеллект ри­со­вать — его никто не видел.

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


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

ChatGPTGrokPerplexityИИискусственный интеллектнейросети

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

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

Первая глава «Практического руководства...»

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

Выложил первую главу «Практического руководства по darktable» — «Базовая обработка».

Вместе с «Введением» первая глава должна дать полноценный быстрый старт — основные вещи, которые необходимы, чтобы начать уже делать что-то полезное.

Описаны действия и модули для:

  • Выставления баланса белого;

  • Исправления оптических искажений и шумоподавления;

  • Кадрирования и изменения геометрии;

  • Работы с общим контрастом и экспозицией, вытягивания теней;

  • Подчеркивания деталей посредством локального контраста.


Огроменный вышел справочный раздел, подумываю о том, чтобы вынести переводы справки отдельно от глав все-таки… Но пока не уверен.

По прежнему жду замечаний и вопросов.

Следующая глава будет про организацию изображений — снова представление светового стола, но уже в максимально развернутом виде.

DarktableLinuxRAW

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

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

Этим стулом...

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

Начал писать большое Практическое руководство по darktable. Выложил «Введение», где рассматриваю общий интерфейс и базовое управление снимками.

Это всё пока черновик, который будет правиться и дорабатываться, поэтому замечания и вопросы крайне приветствуются.


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

На данный момент справочная часть — это ИИ-перевод, тогда как практическая — оригинальный текст (писать не-перевод посредством ИИ оказалось практически невозможно, т.е. писать промпт куда сложнее и дольше, чем сам текст… это отдельная интересная тема, надо будет пост написать). По ходу дела буду и справочную часть активно редактировать, чтобы привести язык в порядок и единообразие.


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

DarktableLinuxRAW

ФотоБёрдвотчингТехнологииЖелезоДыбр

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

Объектив Sigma 60-600mm

Приобрел себе в апреле сабж. Сейчас уже довольно много на него поснимал и можно начинать рефлексировать…

Итак, объектив Sigma AF 60-600mm f/4.5-6.3 DG OS HSM Sports с байонетом Canon EF (напомню, что тушка у меня Canon EOS 77D). Думаю, понятно, что главный критерием покупки было фокусное расстояние на длинном конце — 600mm, что в два раза длиннее моего старого любимого объектива Sigma 18-300mm. Те, кто снимал когда-нибудь птиц в дикой природе, думаю, понимают, какое преимущество это дает.

Это не единственный вариант с таким фокусным на дальнем конце, поэтому стоит, наверное, прояснить выбор.

Альтернативы и выбор

Поскольку менять систему в мои планы не входило (и в ближайшее время не входит), выбор ограничен системой Canon EF. Какие варианты тут доступны?

В общем, реально я рассматривал объективы 150-600mm от Tamron и Sigma1, которые дешевле и, что важно, ощутимо легче2, чем 60-600… Оба варианта неплохи, но дело в том, что я снимаю далеко не только птичек, и такая разница на коротком конце (60mm vs 150mm) для меня существенна — можно снять, например, небольшой кустик целиком, отступив на два-три шага, а не на десять. Ну а менять объектив на ходу (и вообще «в поле») — дело крайне неблагодарное. Финальным аргументом стало то, что у 60-600 на фокусном 200mm МДФ позволяет максимальное увеличение 1:3.3 (у Sigma 150-600mm — 1:4.9, у Tamron 150-600mm — 1:3.9, а у вышеупомянутого 18-300, для сравнения — 1:3). В общем, сабж позволяет снимать достаточно крупно цветы и насекомых, тогда как альтернативы в этом отношении сильно хуже.

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

  1. Если сравнивать именно объективы 150-600mm, то судя как по характеристикам, так и по отзывам, Tamron предпочтительнее, но тут я ничего от себя сказать не могу — не пробовал. Более того, я вообще не держал в руках никаких объективов Tamron и питаю к ним некоторую настороженность, в отличие от Sigma… 

  2. Легче — не значит легкие: оба чуть-чуть больше 2 кг, тогда как 60-600 — 2.7 кг. 


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

SigmaSigma AF 60-600mm f/4.5-6.3 DG OS HSM SportsiNaturalistобъективтелеобъектив

ТехнологииПрограммированиеRubyБёрдвотчингПрирода

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

INat::Get — ранняя альфа

Скриншот репозитория

— Я зделяль. ©

Итак, прошу любить и жаловать — INat::Get — софтина для по­лу­че­ния и обработки данных с iNaturalist. Основное изначальное пред­наз­на­че­ние — подбивать всякую статистику для про­ек­тов на том же iNaturalist’е, но варианты использования гораздо шире.

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

Зачем?

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


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

iNaturalist

О себе

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

Небольшое объявление

Есть очень большое подозрение, что в этом году я не смогу оплатить продление домена. В этом случае сайт будет доступен по адресу https://shikhalev.github.io.

Терять домен, конечно, грустненько, но денег нет, держимся.


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


shikhalev.org

ЖизньПриродаБёрдвотчингТехнологии

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

Merlin Bird ID

Скриншот главного экрана Merlin Bird ID

Активные пользователи iNaturalist, наверное, знают, что хотя там есть возможность загружать зву­ко​вые наблюдения, тамошний интеллект распознавать их автоматически не уме­ет. Это довольно печально, поскольку услышать многих птиц гораздо легче, чем увидеть, а тем более сфотографировать. Я, к то­му же, очень плохо запоминаю звуки и, соответственно, не мо­гу полагаться на се­бя в пла­не такого распознавания.

И вот, наконец-то, благодаря Василию Вишневскому, его второму ютуб-каналу, я узнал о за­ме­ча­тель­ном приложении, которое эту задачу решает. Его короткое видео по это­му по­во­ду — «Как узнать кто поет? Приложение для смарт­фо­на» — советую посмотреть (а тем, кто интересуется птицами и бердвотчингом, рекомендую подписаться на его основной канал). Я же здесь хочу изложить собственный опыт.

Приложение называется Merlin Bird ID и позволяет определять птиц не толь­ко по го­ло­су, но и по фо­то­гра­фии, а также как в клас­си­чес­ких оп­ре­де­ли­те­лях — по клю­чам. Однако лично мне интересно именно голосовое распознавание и только им я и пользовался.


Кстати, Merlin — это не толь­ко волшебник из ле­генд о ко­ро­ле Артуре, но и пти­ца — сокол дербник (Falco columbarius). Птица вполне обычная для все­го северного полушария, включая и наши края.


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

KWaveMerlin Bird IDiNaturalistзвукмикрофонмобильные приложенияптицы

ФотоОбработкаБёрдвотчингПрирода

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

Обработка фото наблюдений

Сгенерироованная нейросетью иллюстрация

В последнее время я просмотрел довольно много всяких разных чужих наблюдений на iNa­tu­ra­list и, пожалуй, имею что сказать по по­во­ду фотографий. Не толь­ко нецензурного.

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

Сразу скажу о допустимости обработки в це­лом. Возможно, для ко­го-то это будет новостью2, но необработанных фотографий не бы­ва­ет, данные, которые считываются с мат­ри­цы — это не кар­тин­ка в JPEG, они в лю­бом случае требуют интерпретации и обработки по не­ко­то­рым алгоритмам. Вопрос в том, бу­дет ли это автоматическая обработка внутри камеры (съемка в JPEG), или последующая уже подконтрольная пользователю обработка RAW (те самые сырые данные с мат­ри­цы) на ком­пью­те­ре, так называемая «проявка». Так что не сто­ит размышлять о до­пус­ти­мос­ти/не­до­пус­ти­мос­ти обработки вообще, стоит говорить о до­пус­ти­мос­ти/не­до­пус­ти­мос­ти конкретных методов и приемов обработки. О них и пойдет речь.

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

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

  2. Я планирую этот пост с не­боль­ши­ми сокращениями выложить также в сво­ем журнале на iNa­tu­ra­list, поэтому проговариваю некоторые вещи, о ко­то­рых уже писал, или полагаю общеизвестными для лю­би­те­лей фотографии как таковой, однако которые явно (судя по на­блю­де­ни­ям) неизвестны тамошней аудитории. 

  3. Хотя я и не понимаю постоянную съемку на телефон совершенно неопределяемых кадров. Если это уже хобби, то можно и б/у фотокамеру купить. 


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

DarktableJPEGRAWiNaturalist