Эта статья написана в продолжение к первой части и посвящена новому Date Time API, который был введен в Java 8. Я изначально хотел оформить эту тему отдельно, поскольку она достаточно большая и серьезная. Я еще сам не в полной мере начал использовать этот API в проектах, поэтому разбираться будем вместе по ходу. В принципе в переходе на новый API нет никакой срочной необходимости, более того многие еще и не начинали проекты на Java 8, а это означает, что время на освоение еще есть.
В статье я постараюсь не скатываться в банальный перевод штатной документации, больше я хотел бы сконцентрироваться на том, что мне показалось особенно важным.
Читать дальше →
Восемь лет назад я принимал участие в проектировании и разработке сервиса, который был должен обслуживать запросы пользователей со всех уголков земного шара и координировать их действия. Работая над проектом я понял, что очень часто многие важные аспекты работы со временем просто игнорируются. Иногда это действительно не очень критично: если сервис локален и им пользуются только на определенной территории, либо пользователи естественным образом разделены на почти не взаимодействующие между собой географические кластеры. Однако же, если сервис объединяет пользователей по всему миру, то без четкого понимания принципов работы со временем уже не обойтись. Представим сервис, в котором общие события (совещания например) начинаются в какое-то строго определенное время, а пользователи рассчитывают на это. Какое время им показывать, в какой момент их беспокоить уведомлениями, что такое день рождения и когда можно поздравить человека — в статье я попробую это осмыслить.
Статья не претендует на глубину и/или академичность. Это попытка систематизировать опыт и обратить внимание разработчиков на не очень очевидные аспекты.
2015-11-26 12:20:39
Погода до сих пор влияет на нашу жизнь гораздо сильнее, чем нам, возможно, хотелось бы. Мы начинаем ...
+ развернуть текстсохранённая копия
Погода до сих пор влияет на нашу жизнь гораздо сильнее, чем нам, возможно, хотелось бы. Мы начинаем утро с прогноза погоды, а в течение дня жалуемся друг другу на его точность. Раньше люди пытались предсказывать погоду на основе своих наблюдений. Если птицы низко летают, а лягушки громко квакают, будет дождь. Если небо на закате красное — будет ветер. Сейчас для прогнозирования погоды используются чрезвычайно сложные метеорологические модели, которые учитывают большую часть человеческих знаний о поведении жидкостей и газов, — и всё равно прогнозы оказываются неточными. В результате появляются новые погодные приметы: всем известно, что помыть машину — это к дождю.
Современные метеомодели представляют собой сотни тысяч строк кода и задействуют для расчётов самые мощные суперкомпьютеры. В качестве исходных данных они используют практически всю метеорологическую информацию, которую можно собрать, — данные со спутников, профессиональных метеостанций и станций радиозондирования. Тем не менее, прогнозы всё равно могут ошибаться: достаточно переоценить или недооценить значение одного из тысяч факторов, и вот вы уже не взяли с собой зонтик, потому что прогноз не предупредил о дожде. Кроме того, в большинстве случаев прогнозы делаются для города в целом, и даже самым большим городам достаётся всего один прогноз, вне зависимости от размера территории.
Задача прогнозирования погоды достаточно сильно похожа на то, чем занимается Яндекс. Мы стараемся найти закономерности в огромном количестве данных и на основе этого ранжируем сайты, рекомендуем музыку или помогаем ЦЕРНу искать редкие события среди столкновений частиц. Для этого мы используем машинное обучение. И к прогнозированию погоды тоже применили машинное обучение.
Мы разработали уникальную технологию — Метеум. Она умеет строить прогноз погоды с точностью до районов города и даже до отдельных домов. Метеум сочетает классические метеорологические модели и технологии машинного обучения. Это позволяет сконцентрировать машинное обучение на том, чтобы уточнить существующие модели и учесть локальные особенности. А следовательно — давать более точный прогноз и делать меньше ошибок.
В качестве начальной информации Метеум использует данные метеостанций и данные из других источников, которые могут уточнить локальные особенности. Например, от Яндекс.Карт мы получаем данные о том, что находится у человека под ногами — асфальт, трава или, может, песчаный пляж. Всего получается более 9 ТБ данных каждый день. Начальные данные Метеум обрабатывает с помощью традиционных метеомоделей, а результаты — с помощью технологии машинного обучения Матрикснет. Матрикснет постоянно сравнивает прогнозы погоды от разных моделей с реальной погодой за окном и выделяет ситуации, когда нужно, например, взять прогноз осадков из первой модели, скорость ветра — из третьей, температуру рассчитать как линейную комбинацию второй и четвёртой. Всего Матрикснет использует более 10 тысяч различных параметров, в том числе и такие, которые напрямую не воспринимаются как погода — скажем, профиль температуры или высоту пограничного слоя.
Когда пользователь обращается к сервису, Метеум каждый раз рассчитывает новый прогноз. Яндекс.Погода определяет, где человек находится, и показывает свежий прогноз именно для этого места. Можно выбрать любое время и любое место — главное, чтобы был известен его адрес. И посмотреть, что ожидается через час у офиса, вечером — во дворе рядом с домом, а на следующее утро — в аэропорту. Если прогноз оказался неправильным — на него можно пожаловаться, причём не только знакомым, а прямо на сервисе. Пока новая Погода работает в бета-версии, и мы очень рассчитываем на замечания пользователей. Они помогут сделать прогноз точнее.
Прогноз от Метеум появился в веб-версии Яндекс.Погоды, в обновлённом приложении для Android и совсем новой Яндекс.Погоде для iOS. Сейчас он доступен для 36 регионов России, но в дальнейшем география расширится. Полный список регионов, для которых работает Метеум, такой: Москва, Белгородская, Брянская, Владимирская, Воронежская, Ивановская, Калужская, Кировская, Костромская, Курганская, Курская, Липецкая, Московская, Нижегородская, Новгородская, Оренбургская, Орловская, Пензенская, Рязанская, Самарская, Саратовская, Свердловская, Смоленская, Тамбовская, Тверская, Тульская, Тюменская, Ульяновская, Челябинская, Ярославская области, республики Башкортостан, Марий Эл, Мордовия, Татарстан, Удмуртия, Чувашская, Пермский край.
2015-11-24 12:00:16
Сегодня мы обновили Яндекс.Карты для iOS. Это самое крупное обновление приложения за последнее время ...
+ развернуть текстсохранённая копия
Сегодня мы обновили Яндекс.Карты для iOS. Это самое крупное обновление приложения за последнее время. Мы улучшили поиск организаций, добавили фотографии мест и отзывы пользователей. Теперь Яндекс.Карты можно использовать как путеводитель по заведениям любого рода — от заправок до ресторанов.
Прежде всего, в приложении появились фильтры, упрощающие поиск организаций. С их помощью вы легко отыщете подходящее место — например, круглосуточные аптеки или кафе с американской кухней и wi-fi. Найденные объекты будут по умолчанию показаны и на карте, и списком. Вы можете отсортировать их так, чтобы увидеть ближайшие места или самые лучшие (с наиболее высоким рейтингом).
Окончательный выбор помогут сделать фотографии мест и отзывы пользователей, которые появились в карточках организаций. Здесь есть мнения не только пользователей Яндекса, но и посетителей других сайтов. Вы можете добавить к ним свой отзыв и оценить заведение. В карточке теперь указано также, сколько времени должно уйти на дорогу до места. Это тоже помогает решить, куда лучше отправиться. Понравившиеся заведения можно сохранять, а также составлять из них списки: они будут доступны и на maps.yandex.ru, и в приложении для iPhone и iPad.
Допустим, место выбрано. Осталось понять, как до него добраться. Для этого достаточно нажать на кнопку построения маршрута. В новых Яндекс.Картах варианты проезда представлены более наглядно, чем раньше. Автомобилистам приложение теперь показывает на карте сразу несколько вариантов проезда (конечно, если есть альтернатива). А для тех, кто перемещается на общественном транспорте, мы сделали подсказки более заметными.
Конечно, поиск и выбор мест невозможен без хорошей базы организаций. В последнее время мы её заметно расширили. Сейчас в ней 3,3 миллиона заведений из четырёх стран: России, Украины, Казахстана и Беларуси. Чтобы поддерживать базу в актуальном состоянии, мы обновляем её каждый день. Данные получаем из разных источников: извлекаем из интернета, узнаём напрямую от владельцев бизнесов и наших пользователей.
Новые Яндекс.Карты для iPhone и iPad доступны в App Store. Кстати, они поддерживают новые возможности iOS 9, watchOS 2 и последних моделей iPhone и iPad. В iOS 9 вы можете найти организации, которые недавно открывали в Картах, с помощью встроенного поиска устройства. На iPhone 6S и iPhone 6S Plus можно в одно касание перейти к маршрутам до дома и работы, сохранённым местам и поиску организаций поблизости — достаточно сильно нажать на иконку приложения.