Получение GPS координат почтовых отделений по индексу

Задача: получить по известному индексу почтового отделения, его адрес, GPS координаты и другие данные..

Решение: а просто попарсим страницу почты россии: https://www.pochta.ru/offices, где есть возможность ввода индекса, а в ответ на карте отрисовываються отделения. Чуть нырнув в сетевые запросы, получаем вызов:

который используется самим сайтом почты для получения данных. На выходе очень приятный для парсинга выход. В общем всё оформил в виде простого скрипта:

JavaScript: улучшаем понимание работы функций

Классически функция объявляется используется примерно так:

Однако её можно объявить и так:

Кроме того! Можно еще короче, используя не явный return:

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

Или например добавить событие onClick к кнопке на странице при помощи стрелочных функций:

Выглядит гораздо проще, чем если бы мы использовали «классическую» запись:

Но! только если код внутри функции не сильно длинный. Иначе всё превращается в кашу.

Javascript: удаление элемента массива

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

Приводит на самом деле не к удалению элемента массива, а пометке, что элемент пустой. Многие пользуются командой splice:

Или даже filter:

Но как говорится «Мне не зашло» (c), ибо есть с чем сравнивать удобство (Python, PHP и т.д.)

JavaScript: декодирование строки в Base64

Вообще штатно есть функции для кодирования/декодирования: atob / btoa. Но один нюанс: если строчку вида «Hello world!» они кодирую-декодируют легко, то с бинарными файлами выйдет ой. Не, они конечно тоже что-то сделают, но с «тихой ошибкой» — т.е. результат будет, но не верен. Попался так, когда с сервера передавал файл в base64 на клиент javascript, декодировал его примерно так:

А в результате, с виду вроде бы валидный файл, экселем открываться отказался. А всё потому, что atob не работает со строками в Uicode. Потому обычно используют следующие обертки для кодирования-декодирования:

Mozilla Thunderbird и Exchange

Штатно этот почтовый клиент не поддерживает работу с этим сервисом. Что чрезвычайно странно. Возможно как-то связано как обычно с политикой Microsoft. Для того чтобы научить работать Thunderbird c Exchange необходимо воспользоваться расширениями. Коих ровно два. Которые по сути один с разными названиями. Которые платные. Которые оплатить нельзя потому что потому. Пришлось стать «благородным пиратом», потому что я не согласен с дискриминацией по национальной принадлежности. Ниже ссылка на «взломанную» версию данного плагина:

P.S. Как только появится возможность купить данное расширение, файл незамедлительно уберу, и расширение куплю.

Считаете ли вы этичным пользоваться взломанным ПО при отсутствии возможности приобрести лицензионное ПО из-за дискриминации по национальному признаку (санкции)

View Results

Загрузка ... Загрузка ...
1 2 3 55