shikhalev.*

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

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

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

iNatGet v0.9.2 и его практическое применение

Версия 0.9.0.18

Итак, финальные отчеты по сво­им районным проектам на iNa­tu­ra­list я сфор­ми­ро­вал, пользуясь уже новой версией inat-get. Сразу выяснилось, что вер­сия 0.9.01, несмотря на то, что я старался для ба­зо­вых вещей писать тесты, никуда не го­дит­ся. Впрочем, это нормально на дан­ном этапе (ранней беты). В ре­зуль­та­те, отлаживая на ре­аль­ных данных, я дошел до вер­сии 0.9.0.18 — уже вполне рабочей.

Полученными отчетами я вполне доволен. Примеры:

В подвале скриптов можно разглядеть мелким шрифтом, что сгенерированы они версией 0.9.0.15, а не .18. Это потому, что самые последние исправления в вет­ке 0.9.0 касались исключительно оптимизаций, и на результат не влияли.

Средств для удоб­но­го формирования отчетов все еще нет, пишу текстом в фай­лы, так что скрипты отчетов получились довольно развесистые. Я их поместил в от­дель­ный репозиторий ing-sv-districts — можно полюбоваться, хотя стру­к­ту­ра там сильно так себе…

Версия 0.9.2

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

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

Промежуточные итоги

В общем и целом, текущая архитектура вполне годная, от глав­ных тормозов вер­сии 0.8.x удалось избавиться, основной упор по вре­ме­ни идет в ско­рость интернета, причем обновления, как и задумано, берутся ин­к­ре­мен­т­но — через параметр updated_since, что резко ускоряет повторные запросы.

Но работа с ло­каль­ной БД оставляет желать лучшего, груп­пи­ро­воч­ные запросы промахиваются мимо индексов, причем даже группировки по поль­зо­ва­те­лям, которые самые простые по сво­е­му внутреннему устройству… Что ж, значит следующая ите­ра­ция — 0.9.4, запланированная для ре­ше­ния именно этих про­б­лем — запланирована не зря. Заметные тормоза, впрочем, видны только на ге­не­ра­ции итоговой сводки — она сейчас занимает у ме­ня пару часов, что печально, конечно, но по срав­не­нию с 0.8.x — просто прекрасный результат.

Что по­ра­до­ва­ло — уже отлаженный на SQLite вариант на Post­greSQL заработал сра­зу — спасибо Sequel. Скорость работы на раз­ных СУБД практически не от­ли­ча­ет­ся. Нужны, конечно, аккуратные замеры, но в це­лом разницу можно игнорировать.

Что дальше?

Общий роадмап имеется на ви­ки проекта — Roadmap. Кстати, я тут «на­вайб­ко­дил» генератор ро­ад­ма­пов из Is­su­es и Mi­le­sto­nes — action-is-roadmap — довольно прикольно получилось, люблю наглядность. Даты майл­сто­у­нов проставлены от фо­на­ря — чисто для упо­ря­до­че­ния, как обещания их воспринимать точно не стоит.

А если не вдаваться в детали, то ключевые задачи такие:

  • Оптимизация запросов.

    Не знаю, насколько удастся их ускорить, но желательно выжать все возможное.

  • Доделать кэширование.

  • Удобный конструктор отчетов.

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

  • Доделать работу с про­чи­ми данными.

    Пока реализованы далеко не все возможные запросы и фильтры, есть куда развиваться. И здесь нужно будет не за­бы­вать об оп­ти­маль­нос­ти запросов.

Наверное, по ходу дела будут появляться новые задачи, и уж точ­но — находиться новые баги…

ERBPostgreSQLSQLiteSequeliNatGetiNaturalistinat-get

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

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

iNatGet v0.9.0

Что ж… Вот я и за­ре­ли­зил 🌿 iNatGet v0.9. Через два с небольшим года после v0.8, и через примерно год после последней вер­сии — v0.8.0.16. Обо всех этих минорных корректирующих версиях я ничего не писал, главным образом потому, что там мучительно правились мелкие баги, а нормальная работа требовала глобального рефакторинга (т.е. переписать заново с нуля), на который никак не находилось времени.

Однако все это время я не прекращал пользоваться своей программой, регулярно формируя отчеты для своих проектов1 на iNa­tu­ra­list. Таким образом я постепенно уточнял свое понимание того, как это в принципе должно работать и где у меня провалы в архитектуре. Плюс развитие ней­ро­се­тей… В проекте ни строчки сгенерированного кода, но для консультаций и ревью я пользовался различными LLM очень активно2, что и позволило сравнительно быстро написать новую, полностью переделанную, версию.

Если версии v0.8.x я характеризовал как альфа-версии, то ветка v0.9.x пусть будет бетой, но пока — очень ранней бетой

Коротко о том, что это за проект вообще, можно прочитать в README-ru.md в репозитории.

  1. См. журналы проекта «Биоразнообразие районов Свердловской области» и его дочерних. 

  2. О своем отношении и подходе к использованию нейросетей я подробно писал в посте: «Заметки об LLM и нейросетях вообще»


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

iNatGetiNaturalistinat-get

ЖизньДыбрПриродаФотоБёрдвотчингЖелезо

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

Натурадыбр – 2025

Самец сибирской косули (Capreolus pygargus)

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

Здесь я попробую изложить итоги года более субъективно и оценочно.

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

Хотелось бы сказать «зато качественно…», но судя по количеству новых видов (и видов вообще), качество наблюдений осталось примерно таким же. Разве что чисто технически оно выросло, о чем ниже.

Ну и еще про количество, чтобы потом не возвращаться: в мае перешагнул отметку в 5000 наблюдений на iNa­tu­ra­list, а в сен­тяб­ре — 6000. Сейчас у меня в профиле показывается 6069 наблюдений всего и 1111 видов. Правда, если брать только наблюдения исследовательского уровня, т.е. подтвержденные, получится 4748 и 836 видов соответственно, так что тысячником называться еще не смею. Ну да ладно, новые виды пока прибавляются, так что пара-тройка лет — и за ты­ся­чу перевалю.


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

iNaturalistзверинаблюдениянатурадыброптикапрогулкиптицыфототехника

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

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, и второй вариант богаче, гибче и вообще интересней.


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

iNatGetiNaturalistinat-get

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

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

О себеТехнологииWebПриродаБёрдвотчинг

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

Кстати, о птичках

Скриншот из Я.Вебмастер

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

Но не­дав­но я обнаружил еще более странный момент, заглянув в Я.Веб­мас­тер — см. соб­с­т­вен­но скриншот. Т.е. лю­ди ищут уже не прос­то поведение птиц на кор­муш­ке, а конкретный текст конкретного автора. Такое ощущение, что попал в ка­кую-то учебную программу в ка­чес­т­ве рекомендованного материала. Или что это вообще?

shikhalev.orgпоискптицысайты

ЖизньПриродаФотоБёрдвотчингДыбр

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

Натурадыбр –​ 2022

Может быть, конечно, кто-нибудь интересный еще успеет до конца декабря залететь на кормушку, но во-первых, вряд ли, а во-вто­рых, кто ж мне запретит эту запись проапдейтить…


Весеннее фото осенних листьев

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

Так что я пробежался по сво­ему календарю на iNaturalist и надергал немного наблюдений. Вообще, недавно сам iNaturalist выкатил пер­со­на­ли­зи­ро­ван­ную статистику, из ко­то­рой можно выяснить, что всего за год я наблюл 126 но­вых (для се­бя) видов… В ос­нов­ном это растения, причем вполне обычные и особого интереса не пред­став­ля­ю­щие.

Но некоторые симпатичные, с них и начнем.


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

iNaturalistваракушкавыпьклёсткрохальлысухапоползеньптицырастенияурагусцветы

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

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

Начало кормушечного сезона

Синица на кормушке

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

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

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

Хуже с новой кормушкой. Она, конечно, симпатичная, но сильно заслоняет и затемняет птиц. Практически это означает, что нормальные снимки получаются только на ближнем торце. И их получается мало — из всей огромной серии для Instagram я отобрал только десять кадров.

А теперь про технику.


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

AliExpressCanon EF 50mm f/1.8 STMкормушкаптицы