Приложение Маяки Эстонии

Коничива, уважаемый!

За время вашего отсутствия мы тут вон чего понаписали:

21 Сентября

Зажрались вы, Алёшенька

Без долгих прелюдий: хочу поменять дрон. Совершенно точно могу сказать, что данный случай моего доверия к Mavic 2 Pro не изменил, вдобавок батарею я заменил. Положа руку на сердце, этого дрона мне, по большому счёту, хватает, но он уже достаточно стар. Я имею в виду и моральное старение и старение физическое (конкретно на этом экземпляре налёт у меня больше 400 км). А сейчас есть финансовая возможность сменить дрон, так что лучше это сделать. Первое, что приходит на ум - DJI Mavic 3 Pro. Но его нет. С момента выхода "двойки" прошло более трёх лет, по меркам гаджетов - это огромный срок, но, тем не менее, третью версию так и не анонсировали. Опять же, догадок море, но я не вижу ни одной правдоподобной или логичной. Значит, надо смотреть из того, что есть на рынке сейчас. Про дроны DJI "меньшего калибра" я уже писал, для меня это будет шаг назад. В итоге, передо мной совершенно безальтернативно встаёт Autel Evo II, причём, именно в версии Pro с дюймовой матрицей. Вчера весь день смотрел его обзоры. Вырисовывается, что дрон действительно хороший, лучше "второго" Мавика, но чертовски непопулярный из-за гегемонии DJI. Хороший выбор, хочется пойти и купить, но все мы знаем, что...

Торопиться не надо

Evo II вышел год назад, то есть, обновление не за горами. Вдобавок, на прошлой неделе этот производитель "засветил" на выставке в Китае аж три новых модели: аналог DJI Mini весом менее 250 г, "средний брат" - аналог DJI Air 2 и полноценного преемника Evo. Последние два для меня очень интересны и надо запастись терпением и подождать официальной информации. Ну и я всё же надеюсь, что у DJI всё же есть хоть какой-то интерес до моих денег.

19 Сентября

Я уже писал о первом дне своей поездки на Рухну и, хоть и весьма сумбурно, о третьем. Самое время рассказать про день второй. После завтрака мы с сыном отправились к заброшенной советской погранзаставе. Три года назад я один раз проходил мимо неё в потёмках и не рассмотрел совсем. На местных картах место это отмечено как Valgi. Дойдя до места, мы увидели, что место весьма жилое, так что полазить не судьба. К слову сказать, с этой стороны хороший и необычный вид на маяк.

Сразу же решили прогуляться к маяку, чтобы снять его в лесах на фотик и квадрик и закрыть его тему в рамках поездки. Несмотря на то, что это была суббота, на объекте работал один строитель. Помявшись у забора (сейчас маяк является строительным объектом и огорожен), я попытался завязать с ним разговор и... разговор очень пошёл. Послушав о моём увлечении маяками, Андрес (именно так звали строителя) рассказал мне много интересных моментов, которые выяснились только во время реставрационных работ. Например, что мемориальная табличка, висевшая над входом с 1977 года, под краской оказалась бронзовой. Закреплена она была весьма "читерским" способом - снаружи были вставлены длинные болты, которые внутри башни были приварены на сварку. Фото таблички 2018 года и с нынешней поездки:

Ещё он рассказал, что маяк стоит на основании из бутового камня, которое сложено в форме креста. Сейчас его почистили и форма хорошо видна, но в прошлый мой визит этого вообще не было видно. Под основанием находится песок и до сих пор большой вопрос, как маяк вообще стоит. Информация из разряда слухов: как замерили местные жители, при сильных ветрах амплитуда раскачивания маяка достигает полуметра.

Также Андрес сказал, что маяк сейчас полностью закрыт для туристов, но как раз сегодня придёт одна группа, об экскурсии для которой старейшина острова сам договаривался с департаментом. Далее он позвонил гиду и испросил для нас разрешения присоединиться. В назначенный час мы примчались на самокате. Даже маршрут экскурсии был весьма необычным: снаружи маяка по лесам до самого верха, на балкон лантерны и уже внутри башни назад вниз. Никогда в жизни не было и не будет возможности подробно в деталях осмотреть башню маяка снаружи по всей высоте: окна, сочленения с опорами, крепление лантерны.

Скажу честно, когда я увидел новый окрас башни, я подумал: "Фу, зачем? В своём ржавом виде он был куда лучше". Потом я посмотрел свою публикацию о маяке и фотки, и стало очевидно, что то, что казалось мне добротной стимпанковской ржавчиной, оказалось растрескавшейся коричневой краской. Маяк всегда был крашеным, даже когда казалось, что это и не так.

На самом верху удалось хорошо рассмотреть купол и систему его дождевого слива и венец каждого маяка - его флюгер с громоотводом.

Внутри башня тоже сияла свежей белой краской. Ниже фото до и после.

Ещё Андрес обратил моё внимание на несколько моментов:

Напомню, нынешняя лантерна была установлена в 1937 году, а до этого на маяке стояло гораздо более сложное по конструкции фонарное сооружение, являющееся частью оригинального проекта. Та лантерна была взорвана в 1917 году и её обломки разлетелись по округе. Сейчас же внутри маяка очень хорошо видны отверстия от крепления старой лантерны.

Кстати об обломках старого фонарного помещения. Часть из них была найдена при проведении реставрационных работ: чугунные осколки, пара бронзовых ручек, осколки штормового остекления и светооптического аппарата. Большинство из них будут потом выставлены в музее. Есть большая надежда, что такой музей будет организован в свежеотреставрированном здании аккумуляторной у подножия маяка.

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

В итоге, получается, что реставрация маяка, которая, как мне казалось, испортила мне всю поездку, на самом деле дала мне увидеть маяк Рухну совершенно с другой стороны и узнать о нём много нового. Уникальный опыт и дай бог здоровья Андресу, благодаря которому мы попали на эту экскурсию. Просто чтоб "позагибать пальцы" проясню: маяк закрыт на реконструкцию с апреля и откроется в ноябре, а значит первые туристы увидят его весной 2022. А мы уже...

Кстати, по маякам и острову Рухну это ещё не всё, будет ещё одна публикация.

18 Сентября

Продолжу немного рассказывать о приложении. Меня очень выбили из колеи проблемы с предыдущим. Сделал совсем небольшое косметическое обновление версии для Android и... приложение стало вылетать при попытке открыть карту. А карту я не менял совсем. С одной стороны ситуация анекдотичная, мол "я не трогал, оно само", а с другой - первые три дня я почти не вылезал из-за компьютера, пытаясь найти проблему. Приложение и карта в нём отлично работали на эмуляторе, компилировались без ошибок, но на смартфоне карта продолжала вылетать. Я перепробовал всё, на что хватило моего ума: отключал поочерёдно функции карты в готовом приложении, делал совершенно новое приложение с картой, компилировал примеры, идущие вместе с плагином карт. После трёх десятков часов таких ковыряний уровень понимания проблемы был нулевым. Я не продвинулся ни на миллиметр. Важный нюанс: я поменял компьютер, на который заново были установлены все программы для разработки и именно после этого ошибка и появилась. В какой-то момент появилась иллюзия победы: приложение, загруженное на телефон непосредственно из Android Studio, работало без ошибок. Я сделал новый релиз, загрузил в маркет, обновил приложение у себя на телефоне и... ошибка никуда не ушла. Очень сильно ситуацию усугублял тот факт, что в Play Market'е была опубликована версия с этой ошибкой и, как я узнал, нельзя было отменить и убрать последний релиз и вернуть предыдущий неглючный. Раньше можно было, а теперь Гугл убрал эту возможность. В итоге, переработка, гонка и стресс, а на выходе ноль. Идей больше не было, тикет на GitHub и вопрос на Stackoverflow не помогли совсем. Остался последний вариант - забить. Я дал проблеме отдохнуть от себя, съездил на Рухну и спустя дней пять начал ковыряться снова и уже к обеду работающая без ошибок версия была отправлена в Play Market на код-ревью. Перебрав ранее все остальные варианты, я начал разбираться с тем, что могло измениться при переносе приложения с одного компьютера на другой, а именно настройками проекта. Ранее я знал, что Flutter - это фреймворк, который использует язык программирования Dart. Чего я не знал, так это того, что в конечном итоге приложение компилируется под другой язык. Для андроида это Kotlin или Java, причём выбрать это в Android Studio можно лишь один раз при создании нового приложения. Я не уверен на 100%, но мне кажется, что почти два года назад, когда я только начинал делать "Маяки Прибалтики", возможности такого выбора не было. Насколько я понимаю ситуацию, при переносе проекта с одного компьютера на другой, результирующий язык с Java поменялся на Kotlin и это начало вызывать ошибку. Другой вопрос, почему под Kotlin карта не работает, хотя должна. А в моём случае изменение языка на Java убрало ошибку.

Теперь немного о новом приложении. Абзацем выше я уже писал, что начинал писать "Маяки Прибалтики" почти два года назад, в ноябре 2019. Сейчас я сел за новое приложение и реально офигел, как сильно изменился Flutter за это время. Изначально я планировал брать готовые куски кода из старого приложения и с минимальными изменениями использовать в новом, но за меня решили, что так не будет. В Dart появилась такая штука как Null safety. В теории вещь прекрасная, на практике хоть и не сильная, но постоянная "попаболь". Так что приложение "Маяки России" я пишу полностью с нуля.

Ещё одним аспектом, который изменился очень сильно, стали стили и темы. Поясню: во Flutter стили элементов можно писать непосредственно в самом элементе (как inline CSS в HTML), либо объявить и описать всё заранее (как CSS "нормального человека"). Сложность в том, что первый способ значительно проще и очевиднее, но отдельное оформление для светлой и тёмной тем работает только во втором способе, который на тот момент был плохо задокументирован. Короче, в "Маяках Прибалтики" мне пришлось делать очень костыльную смесь обоих способов. Сейчас этот вопрос проработан намного лучше и написать тему намного проще и удобнее.

14 Сентября

Сегодня рассказ о том, почему же я бегал по полю и чего там искал, сверяясь с телефоном. Искал я свой Mavic 2 Pro. Если кратко, то поехали с сыном искать развалины старого маяка Рухну. Точного места не знали, но знали район. В поле я взлетел, полетел к береговой линии и планировал дальше пролететь вдоль неё, пытаясь найти развалины. Через 45 секунд полёта я получил на пульте сообщение о том, что заряд батареи 0% (при взлёте было 74%) и квадрик немедленно приземляется. Приземляется где-то в поле, в высокой траве. Если вы сталкивались с дронами DJI, то понимаете, что такое поведение очень далеко от штатного. Как и почему - чуть далее, а пока надо квадрик искать. У DJI есть крайне полезная функция Find my drone в приложении, но с неочевидным функционалом. На экране показывается последнее зафиксированное положение дрона и пилота. Также там можно включить помаргивания/попискивания и лучше сделать это сразу, потому что потом связь может пропасть. По идее, это всё что нужно, и я побежал. Надо пояснить, что я был в состоянии некоторой паники, в первую очередь, от того, что из-за незапланированных поисков можно было не успеть на паром, который ходит три раза в неделю. Короче, думал я мало, а бегал много. Добежав непосредственно до искомых развалин я на 100% уверился в том, что уже давно бегаю совсем не там, где летал. И тут подтвердилась и вторая вещь: карта на странице Find my drone показывает не текущее положение пилота, а то, что было зафиксировано на момент запуска. Это чертовски не очевидно: так как карта вращается по компасу, логично, что и положение она обновляет. Но нет. Переписал координаты в навигатор и уже без проблем нашёл квадрик. Пищание сильно помогло, так как в высокой траве можно стоять вплотную к искомому дрону и не видеть его.

Вечером начал гуглить,и отчего такие приключения бывают. Оказывается, это ошибка батареи. Если одна банка разряжается быстрее, то в какой-то момент её разряд может стать критически низким, в то время как у всех остальных банок всё в порядке. Это у меня и произошло. Дабы не гадать на обломках дро на кофейной гуще, я загрузил все логи на Airdata (крайне полезный сервис). Картина такова: в семи из десяти последних полётов была ошибка на четвёртой банке батареи. В предыдущие 25-30 полётов ошибки появлялись значительно реже - раз за 7-8 полётов. Совершенно очевидно, что эту батарею использовать больше нельзя.

Погуглил ресурс батареи. Нашёл цифру в 200 циклов зарядки. У меня их было 112, то есть почти экватор. Эксплуатировал и хранил батареи очень бережно, без перегревов и переохлаждений и никогда в "пустом" состоянии. Странно, что померла, но в любом случае я отделался лёгким испугом. Полутора часами ранее этого инцидента я летал над водой, снимая с моря порт Рингсу. Вот там такая ошибка лишила бы меня всего дрона.

13 Сентября
Сын разбудил меня, мы проспали завтрак. Быстренько собрались и побежали. Термос с кофе уже унесли, на шведском столе тоже мало чего осталось. Как назло, кофейный аппарат тоже не работал. Получается, я заплатил 8 евро только за два худеньких бутика с ветчиной и чёрным хлебом. А я люблю с булкой.
Я сижу расслабленный в портовой кафешке и пью кофе. Не могу поверить своему счастью: папка с такими важными для меня историческими документами сама пришла мне в руки! День обещал быть лёгким и приятным.
С сыном мы пробираемся через заросли колючей малины и чего-то ещё, пытаясь не потерять едва уловимую тропку в высокой траве. Паутины на кустах больше, чем во всех фильмах про Индиану Джонса, мы оба все в ней.
В полнейшей панике я бегу по прибрежному лугу, уворачиваясь от кочек и коровьих "лепёх". Периодически я сверяюсь с навигатором в телефоне, но паника от этого только растёт: только бы найти ЕГО. А в 500-700 метрах на камне стоит 8-летний мальчик в красной кофте с Супер Марио и плачет от того, что папа его бросил.
Мы стоим с сыном на верхней палубе небольшого парома-катамарана. Воздух бодряще-прохладен, качка несильная, туман - очень густой. Мы шутим, мимо нас проплывает красный моргающий буй. Секунд через 30-40 мы вспоминаем о нём и пытаемся разглядеть в тумане, но безуспешно.
Под ливнем на электросамокате мы едем к автовокзалу. Женщина в кассе говорит, что билетов нет и сегодня в Таллинн мы уже не уедем.
Голодные и чуть подмокшие мы с сыном идём по пярнускому мосту. Самокат приходится катить, так как у него села батарея.
Уставший, но расслабленный я сижу дома возле своего компьютера и, попивая пиво, вытираю паутину с фотоаппарата, её там налипло изрядно. Это был прекрасный день и как прекрасно, что он закончился.

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

Цитировать
в комментарии