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

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

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

13 Декабря

Хочу пояснить, почему всю неделю не было публикаций. Я решил прокачать свой скилл и научиться делать приложения для смартфонов. Хотел я это давно, пару несмелых попыток делал, но как-то не сросталось. В очередной раз увидел статью о новом суперудобном-и-простом фреймворке и в очередной раз захотелось попробовать. Отличие лишь в том, что, в данном случае, порог вхождения очень низкий и нечто похожее на приложение можно получить за пару дней. Зовётся сей фреймворк Flutter.

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

Размышлял: Lentyay
2 Декабря

Почти день рождения...

... и почти сегодня. На самом деле, вчера исполнилось ровно 17 лет, как я придумал название newKAMiKAZE. По всем меркам, это очень старый блог, правда, тут есть две оговорки. Во-первых, была пауза в шесть с половиной лет, с 2004 по 2011. Ну и во-вторых, нынешний newKAMiKAZE совершенно не такой, каким он был на старте. И, положа руку на сердце, я часто думаю о том, чтобы скрыть все публикации до 2004 года. Там много личного, что совершенно неинтересно людям вне той, уже давно несуществующей тусовки.

Ну а пока, с праздником тебя, любимый сайт!

Размышлял: Lentyay
28 Ноября

Как обновлялись карты

Эпичная сага о том, как я интерактивную карту на странице маяков обновлял. Началось всё с добавления подсказок (info bubble) к маркерам. Добавил, поэкспериментировал с выводимой информацией, решил оставить самый минимум - название маяка и подсказку, что надо кликнуть на сам маркер. Всё круто, всё работает, но обратил внимание, что UI карты на русском, а названия посёлков - нет. Честно сказать, не смог вспомнить, были ли они раньше на русском. В любом случае, решил исправить. Начал читать документацию и выяснилось, что в версии карт 3.1 (а у меня использовалась 3.0) разделили растровые и векторные карты и перевод доступен только для вторых. Обновился - ляпота, хотя не всё пока переведено. Потестил на телефоне - печаль, скрипт вылетает. Вероятно, новая векторная отрисовка, плюс почти 80 маркеров на карте кладут процессор смартфона на лопатки. Пришлось "разделять и властвовать": на смартфонах показывется растровая карта с названиями на английском, на других платформах - переведённая векторная. Так мы стали на шаг ближе к идеалу.

Размышлял: Lentyay
5 Сентября

Продолжаю ковырять код сайта. Вообще, как пару лет назад нашёл хороший HTML-парсер, открылось много возможностей. Раньше legacy-код в контенте останавливал, но не сейчас. Итак, что сделал с прошлого раза:

  • Обновил все сторонние скрипты
  • Заменил свой достаточно громоздкий спойлер на нативную конструкцию Details/Summary. Да, браузеры от Microsoft её не поддерживают, да и клал я на них. А кто продолжает ими пользоваться, страдайте, вы сами этого хотите.
  • Добавил lazyload. Да, второй раз. Да, раньше я высказывался против него. Но добавил я его только для двух случаев: большие картинки в статьях (не превьюхи) и картинки под спойлерами. Мне кажется, это обосновано.
  • Добавил виджет своего Instagram-канала. Как показывает практика, по иконке сверху никто не переходит, а канал я тоже хочу продвигать. Правда, пришлось сильно изменить вёрстку сайта, чтобы расположить его, как я задумал. Отсюда выходит следующий пункт.
  • Обновил CSS и Critical CSS. На последний я вообще давно забил и он не содержал стилей для новых блоков.

Ну, вот как-то так. Работает, знаете ли...

Размышлял: Lentyay
31 Июля

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

Как это работает?

На страницах, где отображаются комментарии, если выделить текст (от 3 до 300 символов), то появиться ссылка "Цитировать в комментарии" и по клику на ней выделенный текст копируется в поле формы. Если в поле уже что-то есть, то цитируемый текст добавляется в конец. По мне, максимально просто и удобно. На мобильной версии пока не работает, буду допиливать.

Реализовав эту функциональность, столкнулся с другой проблемой: вложенность комментариев. Когда дело касается вложенности (nesting), то тут всё упирается в вопрос "до коли?". Давая возможность отвечать на любой комментарий, контроль над вложенностью теряется полностью. Если при этом ограничивать вложенность, страдает читаемость: несколько уровней идут понятными каскадами, а дальше - "простыня". Подумав-поэкспериментировав, выбрал самый простой с технической точки зрения и самый логичный вариант. Есть 5 уровней вложенности комментариев, ответить можно на все, кроме последнего уровня, там кнопка ответа скрыта. Для пользователей это, возможно, не очень очевидно, но лучше вариантов я пока не придумал. В целом, я доволен результатом.

Размышлял: Lentyay
Цитировать
в комментарии