Пользователи Mozilla Thunderbird иногда сталкиваются с неполадками, устранение которых не всегда имеет очевидные пути решения. Ошибки Mozilla Thunderbird возникают по ряду факторов, не всегда обусловленных действиями пользователя. В этой инструкции рассмотрим наиболее известные из них.
В случае, если возникает ошибка отправления сообщения Mozilla Thunderbird, в первую очередь следует проверить настройки SMTP для исходящей корреспонденции. Выберите учетную запись, которая не работает, кликните на ней правой кнопкой мыши и выберите пункты «Параметры» — «Сервер исходящей почты». Убедитесь, что параметры сервера, указанные в нижней части панели, совпадают с настройками провайдера, предоставляющего услугу.
Узнать актуальные настройки сервера можно на сайте https://support.mozilla.org/ru/ в соответствующем разделе.
Если там информации нет, ее можно найти на официальном сайте почтового провайдера – как правило, в разделе поддержки пользователей.
Убедитесь, что используется корректный SMTP-сервер. Кликните по кнопке главного меню, затем выберите «Настройки» — «Параметры учетной записи».
Важно помнить, что службы одного провайдера не отправляют корреспонденцию другого – например, SMTP-сервер Яндекса не работает с почтой Gmail и наоборот.
Проверьте настройки файервола, сетевого экрана или антивирусного ПО – они могут запретить Mozilla Thunderbird доступ в интернет. Отключите на короткое время всю защиту и попробуйте отправить тестовое письмо.
Уточните, вдруг Mozilla Thunderbird не работает из-за блокировок на стороне вашего интернет-провайдера. Известно, что многие провайдеры в целях безопасности блокируют 25-й порт, поэтому приходится использовать другие. Информацию о блокировках можно уточнить в техподдержке провайдера.
Если перечисленные методы не помогают, попробуйте удалить пароль SMTP и поменять его на другой. Не забудьте установить такой же пароль в настройках почтового ящика.
Когда возникают ошибки Mozilla Thunderbird с получением корреспонденции, следует выполнить все вышеперечисленное. Как правило, в большинстве случаев эти методы работают. Однако если проблему решить не удалось, рекомендуется предпринять следующие шаги:
Если вы получаете не всю корреспонденцию, а по пути где-то теряются важные письма, проверьте настройки антиспам-фильтров вашего почтового провайдера. Возможно, почтовые службы попросту не пропускают такие сообщения из-за содержащихся в них ссылок или вложений определенного формата. Кроме того, проверьте настройку антиспама в самом Mozilla Thunderbird, особенно если вы создавали собственные дополнительные фильтры или блокировали некоторых респондентов.
В отличие от некоторых аналогичных программ, Mozilla Thunderbird вставляет при создании сообщений кликабельных ссылок, по которым можно перейти. При вставке ссылки она будет оформлена соответственно (то есть выделена цветом и подчеркнута), но при клике по ней ничего не произойдет. При наборе ссылки в теле письма она появляется в виде обычного неформатированного текста. Такое решение принято разработчиками Mozilla Thunderbird специально из-за особенностей редактирования ссылок. Активируются они только после отправки сообщения или сохранения его в черновиках.
Перейти по пути «Пуск» — «Панель управления» — «Программы по умолчанию».
Нажать кнопку «Задание программ по умолчанию».
Проверить в списке, какой из браузеров используется по умолчанию (и используется ли вообще).
Если этот метод не помогает, следует проверить, не являются ли причиной такой ошибки Mozilla Thunderbird установленные плагины. Для этого необходимо запустить почтовый клиент в безопасном режиме (перезапустите и удерживайте Shift при старте приложения). В появившемся окне установите флажок «Отключить все дополнения».
Если в безопасном режиме ссылки открываются, а в обычном нет, корректно не работает Mozilla Thunderbird из-за одного из дополнений. Осталось определить, из-за какого именно. Для этого можно отключать их по очереди в панели управления дополнениями, проверяя работоспособность ссылок.
Чтобы посмотреть параметры для учетной записи, выберите Инструменты Правка > Параметры учётной записи в меню Thunderbird или щёлкните по кнопке меню и выберите Настройки Предпочтения и Параметры учётной записи из подменю, затем выберите Настройки сервера для учётной записи из списка слева. Соединение с сервером входящей почты настраивается в верхней части страницы справа.
Ваш провайдер услуг электронной почты может дать вам информацию о подключении к их серверам (вероятно, на их сайте). Убедитесь в том, что настройки учётной записи соответствуют этим данным.
Смотрите также:
Удалите Thunderbird из списка доверенных или опознанных программ брандмауэра, затем добавьте его вручную (или при появлении запроса). В противном случае обратитесь к документации для вашего пакета безопасности / брандмауэра / антивируса для получения инструкций о том, как изменить компонент брандмауэра этого продукта.
Любой из нас перед покупкой продукта или услуги старается узнать точную цену. Понятно, что порой случаются истории, когда финальная стоимость сильно превышает запланированную. И если с ремонтом машины или квартиры это уже стало привычным, то в остальных случаях разница между ожиданием и реальностью скорее раздражает.
До недавнего времени стоимость поездки в такси тоже была плавающей. Даже онлайн-сервисы рассчитывали сумму лишь примерно - окончательная стоимость формировалась только в конце пути. Тариф, как правило, включает три компонента: стоимость посадки (иногда с включенными километрами и/или минутами), стоимость километра и стоимость минуты. Конечно, можно было рассчитать примерную цену за поездку и раньше, но в конце она могла измениться из-за того, что, например, по пути водитель задержался в пробке. Понятно, что пассажирам это не всегда нравилось.
Кажется, нет ничего проще, чем использовать данные маршрутизатора в Яндекс.Навигаторе и данные Пробок, чтобы Яндекс.Такси с самого начала рассчитало точную цену, которая не менялась бы по окончании поездки. Но на самом деле на стоимость влияет огромное число факторов, не только тариф. Важно не просто уметь её рассчитывать. С одной стороны, стоимость должна быть привлекательной для пользователя, причём с учётом не только текущей ситуации на дороге, но и, например, пробок, которых на маршруте пока нет, но которые скоро возникнут. С другой, цена должна быть такой, чтобы водители не потеряли в заработке, даже если путь из точки А в точку Б оказался длиннее или дольше, чем планировалось. В этой статье мы расскажем, как решали задачу и как искали сбалансированный алгоритм, выгодный всем участникам платформы Яндекс.Такси.
Это довольно сложная система, которая строит маршрут из одного пункта в другой на основе другой системы попроще - дорожного графа. Граф выглядит так же естественно, как вы наверняка себе его и представляете: каждая дорога соответствует одному или нескольким рёбрам, а перекрёстки и разветвления дорог находятся в вершинах. Этот граф - направленный (так как дороги - это тоже штука направленная).
Адрес - «вершина» виртуального графа - состоит из ребра дорожного графа и направления движения по нему:
Что происходит, когда вы заказываете поездку в приложении? Мы отправляем запрос в маршрутизатор для того, чтобы найти оптимальный маршрут от точки посадки (А) до пункта назначения (Б), который указан в заказе. Маршрутизатор, в свою очередь, проецирует точку А на граф, чтобы найти её «адрес» - комбинацию ребра и направления. То же самое происходит с точкой Б. И уже здесь проявляется первая особенность системы: процесс определения кратчайшего пути происходит не в оригинальном, «естественном» дорожном графе, а в неком «виртуальном». Его вершинами являются уже не перекрёстки, а те самые «адреса», а рёбрами - не улицы, а «манёвры», то есть переходы из одного «адреса» в другой.
Простейшим примером такой функции может быть длина рёбер, составляющих манёвр, разделённая на среднюю скорость движения по этим рёбрам, - так называемое «геометрическое время». Эта метрика хороша своей простотой, однако она зачастую не учитывает целый ряд особенностей конкретного манёвра. Возьмём для примера поворот налево. Очевидно, что совершить его со второстепенной дороги на регулируемом перекрестке - это совсем не то же самое, что свернуть на съезд, двигаясь по магистрали. Особенности каждой отдельной ситуации могут значительно увеличить время совершения всего манёвра, и чтобы их учесть, мы решили описать каждый манёвр набором признаков: длина составляющих его рёбер, геометрическое время проезда, функциональные классы дорог, наличие выделенной полосы общественного транспорта и так далее. Здесь же естественным образом возникли «признаки будущего»: например, мы можем заранее рассчитать время на прохождение манёвра с учётом пробок, которые возникнут к тому моменту, когда мы к этому манёвру приблизимся.
В итоге у нас получилось более 70 разных признаков, влияющих на «стоимость» маршрута, и их количество постоянно растёт, потому что мы постоянно добавляем новые сигналы, которые могут стать признаками и помочь в нашей задаче.
Ещё одна особенность нашего подхода в том, что исходную задачу мы разделили на две: построение маршрута и уточнение времени проезда по нему. Эти модели мы назвали, соответственно, «маршрутной» и «временнóй», и стоит рассказать подробнее, чем они друг от друга отличаются и почему нам нужно именно две модели.
Маршрутная модель служит для выбора оптимального пути из точки А в точку Б из множества вариантов, основываясь на длине маршрута и времени проезда по нему. Загвоздка здесь в том, что маршрутная модель должна выдавать ответ очень и очень быстро, потому что после неё системе нужно время, чтобы эти расчёты использовать в дальнейший цепочки процессов. Скажем, 100 миллисекунд на расчёт 1000 маневров - это слишком много, нужно на порядок меньше. Маршрутная модель должна быть как можно менее затратной в плане вычислений, поэтому она учитывает сокращённый набор признаков. А вот когда у нас уже есть оптимальный маршрут - мы хотим как можно точнее знать время проезда по нему, и здесь мы уже не так связаны быстродействием, можно и 100 миллисекунд себе позволить.
Для этого и существует временнáя модель, единственная задача которой - уточнение времени проезда по уже выбранному пути. Временнáя модель учитывает полный набор признаков для каждого маневра, а также параметры запроса пользователя из приложения: текущее местное время и различные макрохарактеристики маршрута - например, коэффициент перепробега (отношение длины реального маршрута из А в Б к расстоянию между этими точками по прямой). На выходе временнáя модель выдаёт уточнённое время проезда.
Подытожим: наша исходная задача «как наиболее точно построить маршрут и спрогнозировать время поездки по нему» свелась к нескольким шагам. Во-первых, мы перешли от «естественного» графа с вершинами-перекрестками и рёбрами-улицами к «виртуальному» графу, рёбрами которого являются манёвры, то есть переходы из «адреса» в «адрес». Каждый из этих манёвров мы описали набором из более 70 признаков. Во-вторых, для того чтобы оптимизировать работу маршрутизатора, мы решили, что предсказательных моделей будет две: маршрутная, которая быстро, но грубовато, выбирает нужный маршрут из множества возможных, и временнáя, которая уточняет время проезда по оптимальному маршруту. Теперь о том, как эти модели работают.
Такой подход оказался выигрышным не только из-за того, что он унифицировал метод машинного обучения, но и по другим причинам, в том числе и потому, что обучение временнóй модели - это задача классическая, что называется, «из учебника». У нас есть огромная база историй поездок, то есть очень много пар «маршрут - время», которую можно использовать в качестве выборки для какого-нибудь метода машинного обучения. Маршрутную модель обучить сложнее, потому что мы не можем заставить всех водителей кататься по всем вариантам маршрутов из точки А в точку Б, чтобы сравнить, какой из них быстрее. В итоге на первом этапе мы сконцентрировались именно на обучении временнóй модели.
Первой идеей было просто использовать линейную модель над суммой признаков манёвров по маршруту, а в качестве цели обучения брать реальное время проезда. Этот подход обладает естественной для задачи характеристикой - собственно, линейностью. Действительно, рассчитанное таким образом время для маршрута, состоящего, например, из двух манёвров, равно сумме времён, рассчитанных для каждого из манёвров по отдельности. Не было никаких сложностей и с интерпретацией различных признаков, что всегда приятно: если вес при признаке большой, значит признак значимый.
Тем не менее, несмотря на кучу преимуществ, первые же попытки обучить эту модель оказались огорчающими: результаты были немногим лучше «геометрического времени», потому что мы теряли много информации, заложенной в категориальных (то есть нечисленных) признаках манёвров - например, функциональный класс дорог, форма ребра, уровень дороги над землёй и другие остались «за бортом».
Вот как рассчитывается цена поездки в момент заказа:
Как мы знаем, учёт категориальных переменных - это всегда непростая задача, недаром для этого целый CatBoost . И всё же мы попробовали решить эту проблему, воспользовавшись приёмом, аналогичным N-way-split, который используют в решающих деревьях.
Учтём, что по классификации Народных Карт дороги делятся на 9 функциональных классов , а ещё бывает 5 видов конструктивных особенностей: две проезжие части, круговое движение, съезд, дублёр, разворот. К тому же на дороге или есть светофор или его нет - это ещё два значения. Итого имеем 9х5х2=90 комбинаций. Теперь для каждой такой комбинации категориальных признаков будем отдельно учитывать остальные признаки, то есть исходно поделим нашу выборку на 90 независимых фрагментов. Из-за такого дробления мы в общей сложности получили несколько тысяч признаков, потому что по сути рассматривали каждый из них 90 раз - для каждой отдельной комбинации. Даже с учётом больших обучающих выборок такая “мультипликация” привела к тому, что модель стала быстро переобучаться. Частично эту проблему удалось решить за счет L1-регуляризации (она, в отличие от L2, умеет нивелировать влияние признаков, обнуляя веса при них), но в итоге по совокупности проблем подход пришлось признать тупиковым. Правда, были и хорошие новости: такую временнýю модель уже можно было использовать в качестве маршрутной, потому что она обладала линейностью по отдельным манёврам, а значит, мы двигались в нужном направлении.
И всё-таки, проблема оставалась: как справиться с таким количеством признаков? У Яндекса есть Матрикснет - алгоритм машинного обучения, основанный на градиентом бустинге решающих деревьев, который успешно справляется с сотнями и даже тысячами признаков. Для начала мы попробовали подход «в лоб» и обучили Матрикснет на парах «маршрут - реальное время проезда». Такой метод сразу же дал хороший результат, а дальнейшая работа по наращиванию количества признаков и тонкая настройка гиперпараметров алгоритма помогли получить ощутимый прирост в качестве прогнозирования. Но, несмотря на мгновенный «выхлоп», обусловленный попросту мощью Матрикснета, были и недостатки:
Хотя такая функция очень напоминает задачу ранжирования в поиске (оптимизация поисковой выдачи как единого целого), в нужной форме такого инструмента Матрикснета среди готовых не было, поэтому нам пришлось реализовать его самостоятельно.
После некоторых мук подбора правильного темпа обучения и количества деревьев удалось получить модель, которая почти не проигрывала «чистому» Матрикснету по качеству, зато обладала линейностью. Это позволяло использовать её в качестве маршрутной модели, а также открывало доступ к лёгкому использованию категориальных признаков за счёт их оцифровки и использования CatBoost.
Последний вопрос - какие результаты мы получили, есть ли с чем сравнить? Разумеется, полный ответ потребовал бы обсуждения множества факторов и достаточно серьёзной аналитики. Но какие-то совсем простые оценки мы можем дать.
Как мы и говорили в начале, если бы наши алгоритмы работали плохо и делали цену хорошей только для пользователя, это могло бы привести к существенной потере заработка водителей и, как следствие, к их оттоку. После того, как цена стала показываться ещё до поездки, количество заказов начало активно расти - многим людям, для которых критична точная стоимость, стало психологически проще пользоваться Яндекс.Такси. Рост заказов привёл к значительному росту утилизации машин такси - то есть к доле за рабочую смену, когда водитель везёт пассажира или едет на заказ, а не тратит время вхолостую. Произошло это ещё и из-за того, что рост улучшил работу других технологий сервиса - например, цепочки заказов. Это алгоритм, который начинает искать следующего клиента ещё до того, как водитель довёз предыдущего - и ищет его в том районе, куда водитель скоро приедет с пассажиром.
Впереди нас ждёт множество мелких и крупных улучшений модели, вроде подключения CatBoost, про которые мы обязательно расскажем.
Пользоваться приложением Яндекс.Такси просто, чтобы заказать машину, достаточно выполнить 7 простых действий.
При оформлении заявки будет соответствующее поле с выбором времени. По умолчанию устанавливается ближайшее, но можно выбрать пункт «Другое», где, указать конкретное время, к которому нужно такси.
После оформления заявки в нижней части экрана появится кнопка «Отменить заказ», нажимаем – и готово.
Заказывать такси можно не только в программе, но и через сайт. Для этого необходимо зайти на него, ввести данные: адрес и время прибытия, место назначения, мобильный телефон. Также выбрать тариф (комфорт или эконом), по необходимости оставить комментарий, например, номер подъезда, чтобы водителю было легче сориентироваться. После введения информации нажать «Вызвать такси». Если все верно, на телефон придет смс-уведомление с номером и маркой автомобиля, контактами водителя.
Работает приложение Яндекс.Такси для пассажиров по наличному и безналичному расчету, можно выбрать более удобный способ.
Для телефонов на платформе Android (4.0 и выше) и iOS (версий 8.0 и новее) предусмотрена возможность расплачиваться за поездку банковской картой. Для того чтобы воспользоваться безналичным способом оплаты, нужно ее привязать к приложению.
При оформлении заказа выбрать оплату картой, и сумма автоматически спишется.
Чтобы удалить карту банка, необходимо зайти в меню, выбрать раздел «Банковская карта». Среди привязанных выбирайте ту, от которой хотите избавиться, жмите и удерживайте несколько секунд, после чего всплывает окно «Удалить» (или иконка в виде корзинки).
Обсудим самые распространенные вопросы, возникающие у пользователей.
Закрывается программа так, как и остальные приложения. Чтобы перестать пользоваться сервисом, заходим в настройки смартфона (айфона), выбираем из списка Яндекс.Такси, жмем «Остановить процесс».
Если возникают проблемы при входе в программу, следует переустановить ее и проверить Интернет-соединение. Если это не помогло, обратиться в техподдержку.
Когда заказывается Яндекс.Такси через приложение на смартфоне, программа может вылетать. Это происходит из-за недостатка оперативной памяти, нужно попробовать очистить кэш и закрыть действующие сторонние программы или игры. После чего сервис будет работать корректно.
Также приложение может вылетать из-за внутренних ошибок, которые будут исправлены в новой версии программы. Если вышеперечисленный способ не помог, то дождитесь обновления.
Обновляется приложение аналогично остальным программам, обладатели айфонов могу это сделать в App Store, а владельцы смартфонов на Android в Play Market. Нужно найти Яндекс.Такси и нажать «Обновить».
Очистить историю возможности нет. Разработчики не предусмотрели такую функцию.