Как стать автором
Обновить
64
0
Андрей Мацуленко @matsulenko

Руководитель направления «Электрички» в «Туту.ру»

Отправить сообщение

Делегаты и колбэки в Swift простым языком. Что же такое этот delegate, и как работает callback

Время на прочтение11 мин
Количество просмотров37K

В Swift при изучении UI (User Interface) каждый рано или поздно приходит к необходимости использования делегата. Все гайды о них пишут, и вроде бы делаешь, как там написано, и вроде бы работает, но почему и как это работает, не у каждого в голове укладывается до конца. Лично у меня даже какое-то время складывалось ощущение, что delegate – это какое-то волшебное слово, и что оно прям встроено в язык программирования (вот, насколько запутаны были мои мысли от этих гайдов). Давайте попытаемся объяснить простым языком, что же это такое. А разобравшись с делегатом, уже гораздо легче будет понять, что такое колбэк (callback), и как работает он.


Официант и повар


Итак, перед тем как перейти к коду давайте представим себе некоего официанта и какого-нибудь повара. Официант получил заказ от клиента за столиком, но сам он готовить не умеет, и ему нужно попросить об этом повара. Он может пойти на кухню и сказать повару: «Приготовь курицу». У повара есть соответствующие инструменты (сковорода, масло, огонь…) и навык приготовления. Повар готовит и отдает блюдо официанту. Официант берет то, что сделано поваром и несет к клиенту.


А теперь представим себе ситуацию, что официант не может прибежать на кухню и сказать повару напрямую, какое блюдо у него заказали. Не пускают его на кухню (допустим, такие правила) или кухня находится на другом этаже (устанешь бегать). И единственный способ общения – это окошко мини-лифта. Официант кладет туда записку, нажимает кнопку, лифт уехал на кухню. Приезжает обратно с готовым блюдом. Запомнили? Теперь зафиксируем ситуацию в голове, попробуем воссоздать через код и понять, как это связано с нашей темой.

Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии11

Как именно нужно читать предупреждение ФАС «Яндексу» и что оно значит для Рунета

Время на прочтение14 мин
Количество просмотров19K


Я один из многих юристов, который больше года назад участвовал в подготовке обращения в ФАС с вопросом, нормально ли, что Яндекс стал лучшим поиском по сервисам Яндекса. Собственно, ответ пришёл несколько недель назад в виде «предупреждения о прекращении действий (бездействия), которые содержат признаки нарушения антимонопольного законодательства».

Вопрос был в том, правильно ли то, что Яндекс даёт преференции своим сервисам в поиске. Суть вопроса сводилась к тому, можно ли считать отдельным рынком рынок поиска.

Дело вот в чём: если юридически поиск в интернете — это рынок, то на нём действует антимонопольное законодательство. И тогда, цитируя сам Яндекс (точнее, пост об иске против Google): «это обращение  —  признание одного неприятного факта. У нас с вами есть все шансы попасть в страну, где только одна компания будет решать, какими сервисами будут пользоваться люди». И если «мы всегда верили в конкуренцию и право выбора пользователя», то ФАС должна восстановить справедливость.

Если же поиск в интернете — это не отдельный рынок, то Яндекс — частная компания, которая в своём поиске может делать что хочет. Ведь это их поиск, их алгоритмы ранжирования и их ручные настройки. Частное дело частной компании.

Коротко: ФАС усмотрела признаки нарушений (пока де-юре не сами нарушения, это важно) в действиях Яндекса. И попросила, по сути, вернуть нейтральность в поиск, то есть обеспечить чуть более равные условия всем компаниям на рынке. В перспективе это может коснуться не только Яндекса, но и любого поиска в России.

Предупреждение ФАС это, по сути, предложение: «сделайте вот так, пожалуйста, или мы возбудим дело», поэтому давайте детально разберёмся, что же происходит.

В предупреждении обозначено, что рынок поиска есть, и это крайне важно для Рунета. Давайте посмотрим, почему.
Читать дальше →
Всего голосов 63: ↑61 и ↓2+59
Комментарии34

Расписание электричек — промежуточный отчёт перед пользователями (вами)

Время на прочтение6 мин
Количество просмотров11K


Привет! Нашим расписанием пользуется около 600 тысяч человек в день (плюс-минус, зависит от сезона), поэтому я бы просто хотел рассказать, что поменялось за прошлый год, и в очередной раз спросить, чего бы вам хотелось, что не так и чего, возможно, не хватает.

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

И вот они попросили повысить точность расписания. С их точки зрения «повысить точность» — это указывать время отправления с точностью до полуминут. Более того, похожие запросы были и от пассажиров. Дискретность расписания на железной дороге — не минута, а полминуты, то есть время отправления может быть не 14:30, а 14:30:30 или, как принято указывать в служебных расписаниях для машинистов, 14:30,5. Отправление поезда на 30 секунд раньше является грубым нарушением, локомотивную бригаду могут лишить премии. Выстаивать лишние 30 секунд, на всякий случай — вариант, обычно это не считается нарушением. Но есть шанс превысить допустимый порог опоздания по следующим станциям и тоже «попасть» на премию. В 2020 увеличилось число аналогичных просьб от пользователей. Во-вторых, отсутствие полуминут усложняло работу наших операторов при внесении специфических изменений в расписании, а их число также увеличилось. Мы доработали бэкенд и сделали в 2021 году расписание с ними.

Вопрос очистки визуала от номеров поездов и «лишних» секунд решился тоже просто: можно просто выключить это в настройках и вернуться к классическому виду расписания.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии31

Как продать электронный билет на электричку

Время на прочтение6 мин
Количество просмотров13K


Мы в Туту 17 лет занимаемся электричками. Возможно, вы видели наше расписание ещё в детстве или студенчестве. Всё это время нас спрашивают, когда уже можно будет купить билет на интересующую электричку прямо через приложение. 17 долгих лет мы ждали наступления светлого будущего, и понадобилось закрыть на карантин полпланеты, чтобы цифровые билеты стали куда более востребованными.

Причина в том, что ещё никто не придумал, как продавать их так, чтобы:

  1. С одной стороны — ровно по той же цене, что в кассе;
  2. С другой — чтобы точно обошлось без злоупотребления типа «вижу контролёра в двух шагах — покупаю билет»;
  3. Быстро, удобно и надёжно.

С третьим пунктом пока не срослось. Сейчас расскажу про то, как хитро эта схема уже работает. И скажу, что вижу все предпосылки к тому, чтобы дальше было ещё и удобно.

Давайте пройдёмся по тому, как пользователь покупает, и тому, что происходит в разных системах во время этого процесса.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии81

Сценарии заражения в конкретных городах на основе датасета передвижения людей по России

Время на прочтение17 мин
Количество просмотров56K

Статистика для Москвы в сценарии «люди стараются сидеть по домам, нет авиасообщения» — к ноябрю модель показывает 5 миллионов переболевших. Это ограниченный прогноз на основе неполных данных, ниже будут детали. За ноль принято 22 марта.

В мире было создано несколько моделей распространения инфекции, но ни одна не подходила нормально для России, либо опиралась на плотность населения без правильного графа перемещений людей. Почему? Потому что либо он получается так сложно, что вы окосеете его согласовывать, либо ни у кого в одном месте этого датасета просто нет.

Кроме нас.

Туту.ру с радостью делится данными с журналистами уже 16 лет (огромная часть новостей в духе «Заметен аномальный спрос на Анталию» — это нарезка наших информационных витрин). Но мы исторически никогда не раскрывали сами данные по перемещениям людей целыми блоками.

Мы собрали датасет передвижений людей по России за апрель 2019 и передали его в сообщество Open Data Science. Если вы их не знаете — это объединение преимущественно русских дата-сайнтистов (но со всего мира), которое перерабатывает открытые данные на полезные модели. Некоммерчески.

Ниже выводы, таблица с прогнозом по каждому крупному городу, сам датасет (если вы хотите попробовать с ним что-то сделать). Про то, как работает модель и какая математика и ограничения лежат внутри, расскажет ODS через пару часов. И выложит исходники. UPD: вот.
Читать дальше →
Всего голосов 86: ↑75 и ↓11+64
Комментарии69

«Иволга 2.0» — поезд, на котором вы поедете по МЦД

Время на прочтение10 мин
Количество просмотров58K
Сегодня запуск первых двух маршрутов МЦД. По МЦД пойдут не просто поезда, а «Иволги».


За пару месяцев до открытия МЦД на Тверском вагоностроительном.

К релизу МЦД вышел и новый релиз «Иволги», теперь у неё версия 2.0. Давайте покажу, как собирается этот поезд, и что в нём появилось интересного. Заодно немного погрузимся в особенности компоновки и проблемы, которые решают конструкторы. Сразу — самое главное: первая «Иволга» уже была хороша. Вторая — это история доработок и докручивания фич, которые не вошли в первый релиз. С точки зрения ходовой части почти ничего не поменялось.
Читать дальше →
Всего голосов 131: ↑127 и ↓4+123
Комментарии339

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность