Pull to refresh
64
0
Андрей Мацуленко @matsulenko

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

Send message

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

Reading time11 min
Views38K

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


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


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


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

Читать дальше →
Total votes 3: ↑2 and ↓1+3
Comments11

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

Reading time14 min
Views20K


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

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

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

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

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

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

В предупреждении обозначено, что рынок поиска есть, и это крайне важно для Рунета. Давайте посмотрим, почему.
Читать дальше →
Total votes 46: ↑44 and ↓2+59
Comments34

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

Reading time6 min
Views11K


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

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

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

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

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

Reading time6 min
Views13K


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

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

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

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

Давайте пройдёмся по тому, как пользователь покупает, и тому, что происходит в разных системах во время этого процесса.
Читать дальше →
Total votes 24: ↑23 and ↓1+33
Comments81

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

Reading time17 min
Views57K

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

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

Кроме нас.

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

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

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

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

Reading time10 min
Views59K
Сегодня запуск первых двух маршрутов МЦД. По МЦД пойдут не просто поезда, а «Иволги».


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

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity