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 "нормального человека"). Сложность в том, что первый способ значительно проще и очевиднее, но отдельное оформление для светлой и тёмной тем работает только во втором способе, который на тот момент был плохо задокументирован. Короче, в "Маяках Прибалтики" мне пришлось делать очень костыльную смесь обоих способов. Сейчас этот вопрос проработан намного лучше и написать тему намного проще и удобнее.

3 Сентября

Вчера на всех платформах вышло новое обновление для моего приложения "Маяки Прибалтики". Наиболее важные его фишки: новые фотки и информация о маяке Вилсанди и пять недействующих латвийских маяков. В загашнике есть ещё два таких маяка, но в этом году я до них точно не доберусь. Ещё одно важное изменение - замена кнопок навигационных приложений на одну общую. В ходе этих мозгоклюйств я узнал, что есть особый тип ссылок, его и использовал. Гораздо проще для меня и удобнее для пользователей. Небольшая часть изменений - "под капотом", в основном они сделаны с прицелом на новое приложение. Чтож, пожалуй, пора рассказать и о нём.

приложения "Маяки Прибалтики"

Когда я начинал ездить по маякам Эстонии, я был уверен, что доберусь лишь до некоторой части, но не до всех. Объездил все, многие по несколько раз. Когда меня спрашивали на радио, не планирую ли я расширить своё приложение с маяков Эстонии до Латвии или Литвы, я уверенно отвечал, что нет. Уже 10 месяцев, как там вся Прибалтика. И уж точно я никогда бы не подумал, что возьмусь за новое приложение о маяках такой большой страны, как Россия. Отправной точкой тут несомненно стала поездка на Жужмуй. Я пообщался с представителями российского комьюнити любителей маяков. Это интереснейшие люди, преданные маякам также фанатично, как и я, а кто-то и больше. И именно с целью продолжить это общение и завести новые связи я решился делать новое приложение. А ещё мне самому это очень интересно.

Я очень горжусь своим прибалтийским приложением, так как знаю, что за ним стоит. Такой информации в онлайне не найти нигде, кроме приложения и данного сайта, да и фото тоже. И это качество контента очень мне дорого. Для приложения "Маяки России" от этой идеологии пришлось отказаться - объём маяков слишком велик (по моим очень приблизительным прикидкам 300-400), а я сам видел из них лишь 7-8, а фоткал и вовсе три. Поэтому главная идея нового приложения - сначала количество контента, а потом его качество. Не надо трактовать это в плохом контексте. В приложение будут добавляться не все, а лишь интересные для туристов маяки. Кроме "мёртвого", что крайне печально, форума mayaki.ru, я больше не знаю мест, где была бы собрана информация о большом количестве маяков России. Именно поэтому я говорю о превалировании количества над качеством и это только плюс. Да, на поиск и проверку исторической информации для каждого маяка я не могу потратить столько сил и времени, как это было с маяками Прибалтики, но... это можно будет сделать позже. Главной фишкой приложения "Маяки России" будет то, что все данные будут храниться на сервере и для их изменения не надо будет обновлять приложение. С фотографиями та же ситуация - все они будут не моими. Я с несколькими людьми, которые мне помогают посильно, ищу фотографии в Инсте и ВК, я списываюсь с авторами, большинство из них без проблем предоставляют свои фотографии. Но и в этом случае, найти фотки абсолютно всех маяков - невозможно. Но я рассчитываю, что эта часть контента будет добавлена уже после релиза. Для этого внизу каждой страницы с инфо о маяке добавлена кнопка связи. Вот такой проект. В следующих публикациях я расскажу о том, на какой стадии он находится сейчас, а также непосредственно о программировании.

2 Сентября

Я тут с новым и старым приложениями забыл обо всём на свете, вчера с удивлением узнал, что у нас президент сменился. Скоро будет несколько публикаций именно об этом (о приложениях, не о президенте), а пока продолжу рассказ о создании Таллиннского верхнего маяка в масштабе 1:500. В прошлый раз я остановился на заливке. Не в пример всем предыдущим работам, тут всё пошло как никогда плохо. Смола нещадно лилась между опалубкой и основанием. Я несколько раз полностью её сливал, отделял опалубку и выставлял заново. К уже пропитанной жидкой эпоксидкой древесине ничего не клеилось и ситуация не улучшалась. Пришлось признать, что я потерпел, пожалуй, самое большое фиаско при этой заливке. Пришлось полностью разобрать форму и горячей водой смыть смолу с деревянного основания. Чтобы не повредить маяк, с него смолу я снимать не стал, а дал ей полностью высохнуть, перевернув поделку вверх ногами. Параллельно с этим, я заливал и второй экземпляр. Его форму, перед заливкой смолой, я залил водой, чтобы проверить на протечки. Вода не вытекала. А смола, ска, начала!.. Ну как так-то? Благо, тут протечки были умеренные и в итоге всё получилось. Для первой поделки я тоже собрал новую опалубку, проверил водой и залил вообще без протечек.

Кстати, во всех видео по эпоксидке говорят, что работать с ней надо строго в перчатках. А что будет без них? Я узнал. По запаре очень много хватал смолу голыми руками и потом у меня начала облезать кожа. Обильно и на обоих ладонях.

Шлифовка, к счастью, "сюрпризов" давно не преподносила. Научился начинать с более крупного зерна (240, а в случаях, когда надо снимать "горбы" по 1-2мм - 60), делать грань ровной и только потом переходить на более мелкое зерно. По итогу, получается ощутимо быстрее.

Ну и последнее, о чём хотел бы рассказать - подсветка. При первом приближении всё, как и у Найссаара: моргающий светодиод в лантерне и постоянно горящий в башне. На самом деле всё куда интереснее. Когда я делал коробочку для фонаря, я научился сохранять состояние в память при отключении питания. Это навело меня на мысль реализовать таким образом смену режимов, не уродуя основание переключателем. Подключили кабель питания - окна башни светятся с максимальной яркостью, отключили и подключили ещё раз - со средней, отключили и подключили в третий - не светятся вообще. Идея показалась мне настолько прекрасной, что я буду использовать её и в следующей поделке. Да, светодиод в лантерне всегда светит на максимум.

Таллиннский верхний маяк Таллиннский верхний маяк Таллиннский верхний маяк

Вот такая поделка получилась, сам очень доволен. Если это не новый уровень, то, как минимум, уверенный шаг вперёд. Во всём, кроме процесса заливки.

22 Августа

Трудности картографии

Началось всё с того, что знакомый зарепортил мне ошибку в моём приложении: на iOS не работает кнопка maps.me. Проверил у себя на android - работает, проверил на iPad - не работает. Пошёл гуглить, в чём причина и открылась небольшая табакерка Пандоры. Оказывается, у проекта сейчас переломный момент. Если вкратце, то там новые хозяева, которые имеют видение будущего очень отличное от всей прошлой идеологии проекта. Подробно всё описано тут и тут. Чего в этих статьях не написано, но что обнаружил я:

  • вся информация об API сервиса убрана, есть только инфа двухгодичной давности на GitHub
  • deeplinks (ссылка извне непосредственно в приложение, то, что используется в моём приложении) работают там, где это не сломали
  • официальной информации о deeplinks, опять же, нет

Честно скажу, сам я maps.me никогда не пользовался. На Жужмуе видел у других участников поездки, что тропки и дорожки такого удалённого острова указаны там весьма подробно. Позднее узнал, что там ещё есть возможность экспортировать целые списки маркеров. Очень удобно, но попользоваться уже не судьба. А вот в приложении надо было ошибку как-то исправлять. Первоначальной идеей было просто убрать кнопку на iOS, но не очень она мне нравится. Неизвестно, когда deeplinks и на android сломаются. Разумнее найти альтернативу и заменить maps.me на что-то другое. Я потыкался-помыкался, но ничего хорошего не нашёл. Либо у приложений нет deeplinks, либо популярность их невысока. Когда уже отчаялся, реализовал вариант со скрытием кнопки (обновление пока не вышло) и сегодня утром когда писал этот текст, ища статью на хабре с описанием трудностей maps.me, я нашёл сервис Organic Maps. Это отпочкование от maps.me, но, судя по описанию, весьма продуманное. Сразу же написал в чат поддержки в телеге, получил информацию о deeplinks. Попробовал, всё работает, но карта в приложении не центруется и маркер остаётся где-то за кадром. Потом долгое общение всё в той же телеге, тесты, открытие issue на GitHub, ужин. Короче, я не очень помню как прошёл сегодняшний день. Воскресенье программиста, мля.

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