shikhalev.*

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

ТехнологииПрограммированиеАбстракцииRubyДыбр

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

Об инвалидацию кэша

КДПВ сгенерирована нейросетью по запросу «cache invalidation»

Как известно, в программировании есть только две реально сложные задачи: именование переменных и инвалидация кэша1. С первой мы сделать ничего не можем, со второй, конечно, тоже, но что-то делать приходится…

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

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

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

Какие есть пути решения? Вижу несколько вариантов, ни один из которых меня не устраивает полностью…

  1. Автор этой фразы, предположительно, Фил Карлтон (Phil Karlton), ведущий инженер компании Netscape. 


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

iNaturalistinat-get

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

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

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

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

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

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

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

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

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


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

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

О себеТехнологии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.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объективтелеобъектив

ТехнологииСофтДыбр

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

Почему KDE?

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

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

KDE у меня основная и, по су­ти, единственная оболочка на лич­ном компьютере примерно с 2006 го­да — с той самой поры, как я полностью перешел на Li­nux. Другие оболочки я пробовал, но надолго они у ме­ня не за­дер­жи­ва­лись. Впрочем, в по­след­нее время я довольно часто имею с ни­ми дело по ра­бо­те — т.е. на ра­бо­чих компьютерах, на вир­ту­ал­ках и т.д., так что некоторое представление имею.


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

DEKDELinuxнабросокружение рабочего столарабочий стол

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

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

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

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


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

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

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

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


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

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

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

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

Дыбр сайтостроительный

Оптимизация страниц

В про­цес­се работы с hugin.shikhalev.org обнаружилась интересная особенность Jekyll, о ко­то­рой желательно знать, чтобы не бы­ло мучительно больно…

«Страницы», то есть «pages», не яв­ля­ю­щи­е­ся постами (и не вхо­дя­щие в ни­ка­кие другие коллекции) обрабатываются крайне медленно. Переделка страниц в кол­лек­ции ускорила сборку сайта (локально) примерно в 10 раз — с око­ло двухсот се­кунд до ме­нее двадцати. Сначала я даже попытался переделать их в пос­ты, но пост должен содержать дату в име­ни, и нет никакой возможности задать ему URL, соответствующий просто структуре каталогов, без да­ты в ка­ком-ли­бо виде. Точнее, каждому посту в от­дель­нос­ти-то можно, вручную во front matter, но это уже издевательство над са­мим собой и полный трэш в слу­чае каких-то переделок и рефакторинга. Со­з­да­ние же отдельных коллекций такой проблемы не не­сет, единственное, что понадобилось прописать ручные адреса для фай­лов index.md, чтобы ссылки на них шли как ссылки на ка­та­ло­ги, а не на in­dex.html

Что делать с комментариями?

Точнее, без оных… Heroku больше не да­ет бесплатно крутить Staticman, так что комментарии здесь уже не ра­бо­та­ют. Ранее созданные, конечно, никуда не де­лись — за то и был выбран Sta­tic­man, что они хранятся внутри репозитория…

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

upd: Прикрутил giscus, но вопрос закрытым не счи­таю.

Jekyllshikhalev.orgкомментарииоптимизациясайты

ТехнологииЖелезоДыбр

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

Очередной тест носителей

Disclaimer: Автор в курсе, что нормальным тестом нижеизложенное не является и не может служить доказательством чего-либо или основанием для далекоидущих выводов. Опыты произведены для собственного удовольствия и удовлетворения любопытства в плохо контролируемых, уникальных и неповторимых условиях (даже не выключая всякие ютубчики).

Немного погонял железяки. В целом тем же способом, что и в посте «Поиздевался над железками» чуть более трех лет назад, с той лишь разницей, что тестовый файл был размером 4 GiB и прогонял я dd на блоках разного размера: 1 GiB, 32 MiB, 1 MiB, 4 KiB и 1KiB (последний размер блока только на чтение, должен же быть хоть какой-то предел безумию). Кроме того, проверил скорость чтения посредством hdparm -t /dev/xxx, что по идее должно было дать максимальную скорость линейного чтения с блочного устройства… Но, см. далее.

Тестовый стенд — мой новый компьютер, конфигурация которого описана в предыдущем посте. Протестированные устройства:

  • SSD Netac NV7000 2TB в двух экземплярах — в слоте PCIe 4.0 и PCIe 3.0 соответственно. Учитывая, что один из них системный, а второй под /home, понятно, что они были все это время заняты (кроме вызовов hdparm, ради которых я вышел из KDE, остановил большинство сервисов и даже размонтировал собственно /home). С другой стороны, никакой серьезной нагрузки в это время все-таки не было, только нормальная фоновая.

  • HDD Samsung Archive 8TB — диск старый и в старом тесте так же присутствовал.

  • SD-карты: старая Transcend SDXC 64GB UHS-I U1, которая также была в прошлом тесте, и более новая Kingston Canvas Se­lect™ Plus 256GB UHS-I U3. При этом обе карты я проверил как через внутренний кардридер (см. пост «Новая железяка»), так и внешний noname-ридер для USB 3.0, который опять же был мной проверен три года назад. В таблице разные ридеры помечены как «(внутр.)» и «(внешн.)».

  • Карта micro-SD — Micro-SD Microdrive U1 32GB — китайская, взята для китайской же фотоловушки.


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

M.2NVMeSATASDскорость передачи данныххранение иформации

ТехнологииЖелезоДыбр

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

Большой дыбр по железу

Процессор AMD Ryzen 7 5700X

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

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

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

Напомню, что конфигурация предыдущей моей рабочей машинки описана в посте «О железе, дыбровое…» от 27 марта 2015 года и в дальнейшем менялась несущественно.


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

AMDAliExpressGigabyteLinuxRyzenпрогрессразмышлизмы

О себеЖизньПсихологияМышлениеДыбр

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

Так писать нельзя

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

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

В общем, надо писать смысловыми блоками. Вариант писать «эпизодные» посты в один прием, выделив на это значительный непрерывный отрезок времени, не про­хо­дит за не­и­ме­ни­ем таких отрезков.

shikhalev.orgблогинаписание текстов