shikhalev.*

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

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

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

Tg: май 2026

В мае проблемы с ав­то­пос­тин­гом продолжились… Быстрое исправление не по­мог­ло, надо сидеть и разбираться. Тем не менее постов было много и дайджест имеет смысл.

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

Давайте для разнообразия начнем с пиявки.


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

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

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

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

Tg: апрель 2026

Затянул я немного, но таки выкладываю очередную подборку. См. также посты за январь, за февраль и за март.

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

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

Для начала пусть будет свежая екатеринбургская гадюка.


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

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

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

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

Tg: март 2026

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

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

Очень хотелось выбрать наблюдение одновременно свежее и весеннее, но увы. Пусть символизирует уходящую зиму…


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

TelegramiNaturalistбабочкиживотныемлекопитающиенасекомыептицырастенияцветы

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

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

Tg: февраль 2026

Что ж, продолжу делать месячный дайджест того, что принесли мои tg-каналы с популярными наблюдениями. Здесь — све­же­про­шед­ший февраль. См. так­же пост за январь.

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

Долго думал, в итоге решил взять вот такого каменского февральского орлана-белохвоста. Солидная птица. И не так уж часто его наблюдают в принципе, особенно у нас в области.


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

TelegramiNaturalistбабочкиживотныемлекопитающиенасекомыептицырастенияцветы

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

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

Что там в Tg?

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

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

Залетный чернозобый дрозд в Екатеринбурге. Я бы не стал исключать, что со временем их станет больше — все как-то стали забывать, но вообще-то привычных дроздов-рябинников на Среднем Урале еще двадцать лет назад не было…


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

TelegramiNaturalistбабочкиживотныемлекопитающиенасекомыептицырастенияцветы

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

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

Продолжая повышать энтропию интернетов...

В порядке продолжения повышения энтропии, а также эксперимента ради, я недавно завел еще три канала в те­ле­грам с на­блю­де­ни­я­ми из iNa­tu­ra­list:

Daily Flowers of the World

Наблюдения цветов — в запросе указаны term_id и term_value_id, чтобы в выборку попадали именно наблюдения с цве­та­ми, а не во­об­ще все наблюдения цветковых растений.

Daily Birds of the World

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

Daily Butterflies of the World

Наблюдения бабочек — в запросе опять же указаны term_id и term_value_id, чтобы в выборку попадали только взрослые особи, т.е. собственно бабочки, а не гусеницы, куколки или яйца.


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

TelegramiNaturalistбабочкиптицыцветы

ТехнологииПрограммирование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планысайт