Тинькофф каминг аут: Тиньков совершил фейковый каминг-аут

Содержание

Тиньков объяснил иронией заявление о своей нетрадиционной ориентации :: Экономика :: РБК

Глава банка «Тинькофф Кредитные системы» Олег Тиньков объяснил иронией запись в «твиттере» о своей нетрадиционной сексуальной ориентации. В беседе с РБК он уточнил, что хотел пошутить над главой Apple Тимом Куком

Глава банка «Тинькофф Кредитные системы» Олег Тиньков

(Фото: РБК)

«Я уже думал, что мой эпатаж в «твиттере» не вызовет такой массы статей – нет, еще могу», – пояснил свою шутку РБК Тиньков. «Поверили, что я гей; как можно поверить, в то, что я – гей, не ясно совсем», – добавил он. По его словам, таким образом он попытался иронизировать над главой Apple Тимом Куком.

В четверг в «твиттере» Тинькова появилась запись о том, что он гей. «Хорошо, теперь моя очередь раскрыть себя, вслед за моим другом Тимом. Я – гей, и горжусь этим», – написал в соцсети Тиньков, прикрепивший к этой записи фотографию с менеджером российской велокоманды Tinkoff-Saxo. В пятницу пресс-служба банка сообщила, что заявление бизнесмена – это шутка. 

Накануне глава Apple Тим Кук публично признался в своей нетрадиционной ориентации. В колонке журнала Businessweek он написал, что никогда не отрицал, что он гей. «Но в то же время до сих пор я не говорил публично о своей нетрадиционной сексуальной ориентации», – пояснил Кук. Он также отметил, что позволил себе открыто говорить о своей гомосексуальности, потому что мир за последние десятилетия изменился, и общество стало более терпимым.

Тиньков входит в рейтинг журнала Forbes топ-100 российских миллиардеров. Он является контролирующим акционером (50,9%) банка «Тинькофф Кредитные системы» и основателем бренда «Тинькофф».

Автор

Евгений Королев

Канадская биатлонистка сделала каминг-аут

Канадская биатлонистка сделала каминг-аут

Чемпионка мира среди юниоров канадка Меган Бэнкс призналась в нетрадиционной сексуальной ориентации.

— Какое-то время я скрывала часть самой себя, но больше не хочу тратить физическую и эмоциональную энергию, чтобы утаивать то, чем я горжусь. Итак, начнём: я гей. Почему я решила объявить об этом? Зачем писать в социальных сетях? Потому что я считаю, что представительство в спорте, искусстве, политике и во всех других областях имеет значение. Я знаю, что мы не живём в обществе, которое одновременно принимает и приветствует все маргинализированные сообщества… Пока. Я надеюсь, что, продолжая признавать разнообразие как нечто положительное, а не как недостаток, каждый сможет жить, как он сам захочет, при этом к нему будут относиться с добротой и признавать, что каждый человек имеет значение.

— У меня большие планы в биатлоне, и я хотела бы сделать всё, что в моих силах, чтобы тренироваться и соревноваться на высшем уровне. Необходимая часть этого — заботиться о себе и жить как можно более аутентично. Мне не нравится навязываться, но я хочу использовать привилегию, которая у меня есть как у спортсмена и образца для подражания, чтобы внести свой вклад, чтобы показать молодым спортсменам, что они могут быть теми, кем они хотят, жить без дискриминации.

— Я многим обязана всем ребятам (в особенности спортсменам топ-уровня), которые сделали каминг-аут до меня, и я думаю, что важно признать, что все они сломали некоторые препятствия и начали говорить о проблемах. Без них моё решение выступить публично и моя жизнь до этого момента, несомненно, были бы более сложными. Наконец, хочу отметить всю поддержку, которую получила, когда начала рассказывать людям о том, какая я на самом деле. Я получила столько добра и поддержки от моих друзей, семьи, товарищей по команде. Для меня действительно очень важно знать, что меня любят за то, какая я есть, так что спасибо, ребята! — написала Бэнкс на своей страничке в Instagram.

https://www.instagram.com/p/CEzjLkoDsER/

23-летняя Бэнкс является чемпионкой мира среди юниоров 2017 года, а также призером этапа Кубка IBU.

Тинькофф чемпионат России по футболу (РПЛ)

«Колпинская ракета» вновь нарядится помидором и приедет в Петербург
поболеть за «Спартак». Разбираемся, почему так происходит и стоит ли
болельщикам «Зенита» остро реагировать?

Каминг-аут

Изучая
страницы Александра Панова в соцсетях, можно прийти к двум выводам.
Первый: что-то разделило жизнь человека на «до» и «после» в 2017-м.
Второй: «Колпинскую ракету» украли и держат в плену, заменив на
клона-провокатора.

Прежде сокрушитель Фабьена Бартеза и Евгения
Плотникова публиковал фотографии семьи, с ветеранских турниров, архивные
фото игр «Зенита», «Динамо», «Сент-Этьена», «Торпедо»; кадры, где
форвард занимается ФААП (Футбольная ассоциация Александра Панова).
Подписи — спокойные. Наряды — обычные, практичные, разнообразной
расцветки.

В марте 2017-го Панов облачился в красное, забыл про
орфографию, пунктуацию, стал пользоваться «капсом», делать селфи с
бутафорским и настоящим оружием, постить околофутбольные картинки с
подписями: «ЗАРЯД ЕЩЕ МОЩНЕЙ МЫ МЯСО ВСЕХ СИЛЬНЕЙ», «ХОТЬ НАШ ДВИЖ
МОЛОДОЙ НО ДЕРЗКИЙ МЫ В ВСЕГДА В ТЕМЕ!!! СПАРТАК ВМЕСТЕ НАВСЕГДА!!!» и
т. д. «ДИРЕКТОР ФУТБОЛЬНОЙ ШКОЛЫ АЛЕКСАНДРА ПАНОВА ПАНТЕРА» — знакомит
подпись Панова в «Инстаграме».

А прошлым летом, незадолго до матча
4-го тура «Зенит» — «Спартак» (5:1), Пан взорвал инфопространство,
публично признавшись в любви к красно-белым и купив абонемент в
фанатский сектор. Сделал своеобразный «каминг-аут». В интервью «Спорт
ФМ» располневший форвард, в частности, сказал: «К сегодняшнему «Зениту» у
меня симпатий нет. <…> Готов пробить первый выезд за «Спартак» на
матч против «Зенита». Буду ходить по Санкт-Петербургу в красно-белом
шарфе и красной футболке».

Панов сдержал обещание, надев не
только шарф и футболку, но и красные штаны. Погуляв по городу в таком
виде, Александр выложил фотоотчет, где предстал в образе человека,
похожего на «овощ», рекламирующий популярный сок. После игры фанаты
«Зенита» пожурили бывшего кумира у стадиона «Санкт-Петербург». Случился
инцидент. Панов недоумевал: за что такая реакция, ведь я, дескать,
никого не предал?

Как был гопником, так и остался

В этом
году Александр анонсировал в «Инстаграм» новое путешествие в Петербург.
«ГОТОВИМСЯ НА ВЫЕЗД!!! ПОДДЕРЖИМ НАШ СПАРТАК В ПИТЕРЕ!!!», сопроводив
текст картинкой: оскалившийся хряк в ошейнике на фоне дьявольской
пентаграммы с подписью Evil Meat in the City. Tour St. Petersburg.

В
конце концов, это личное дело Панова, за кого и чем болеть, скажете вы —
и будете правы. Но на болезнь эти высказывания похожи лишь отчасти.
Провокация. Все-таки известная личность, бывший кумир Питера. Панов
объясняет смену цветов тем, что давно живет в Москве. Но многие люди,
переехавшие в другой город, продолжают поддерживать родные клубы.

«Тебе не стыдно, Саша?» — спрашивали фаны в прошлом году. Ждет ли человека в красном «теплый прием» в этом сезоне?


Не хочется много говорить на эту тему, — сказал один из авторитетнейших
фанатов зенитовского движения. — Зачем людям, которые вознесли его до
небес, как-то реагировать? Как был гопником, так и остался. Подлый
человек.

Есть ли у Панова причины обижаться на «Зенит» и были ли возможности «переобуться» раньше? Попробуем разобраться.

Экскурс в историю. Приглашение Олега Романцева. Неработающий колобок

Он
«сделал карьеру» за две недели. 26 мая 1999-го заставил говорить о себе
весь Петербург, забив два гола московскому «Динамо» в финале Кубка
России, а 5 июня дважды поразил ворота Фабьена Бартеза на «Сен-Дени»
(Франция — Россия, ОЧЕ-2000, 3:2 в нашу).

Знающие Панова люди
рассказали, что после этих подвигов нападающий считал себя «вторым
Казаченком», полагая, что заслуживает такого же отношения. Ладно, Бартез
и чемпионы мира — но он принес Петербургу первый трофей спустя 15 лет!

Через
год «Зенит» продал форварда в «Сент-Этьен» за рекордные 2 млн евро.
Переполненный «Петровский» провожал Панова, об отъезде снимали сюжеты
для ТВ, а сама «ракета», обвешанная шарфами, пробежалась по дорожкам
стадиона, размахивая многочисленными букетами. Петербург гордился,
плакал, рукоплескал.

Дальше — многообещающий старт во Франции.
Первый гол во втором матче Лиги 1. Но за полгода Пан провел семь матчей и
отправился в швейцарскую «Лозанну», где сыграл на правах аренды в
четырех матчах из 14 возможных. Позже форвард назвал причину неудачи —
возможное заражение гепатитом С (диагноз не подтвердили). «Сент-Этьен»
вылетел во вторую лигу, нападающий за полгода сыграл восемь «холостых»
матчей и вернулся в московское «Динамо», чтобы через полгода очутиться… в
петербургском, которое «гремело» в первом дивизионе.

Тогда у
Панова и затаилась первая обида на «Зенит». Ведь он считал, что,
во-первых, клуб должен был помочь в период неподтвержденного гепатита,
во-вторых, подписать с ним контракт после неудавшейся поездки в
«Сент-Этьен».

В марте 2006-го (тогда возвращение Панова в «Зенит»
могли воспринять как пошлую шутку) нападающий дал интервью редактору
отдела футбола «Спорта День за Днем» Алексею Павлюченко, в котором
заявил:

— Тренер «Спартака» Олег Романцев приглашал меня в свою
команду не один раз. Однако я обещал болельщикам, президенту «Зенита»
Виталию Мутко, что уезжать буду только за границу. Может, кому-то мои
слова и покажутся высокопарными, но я всегда ощущал себя патриотом. И
долгое время оставался верен «Зениту». Болельщики просили: «Только не
уходи в «Спартак»!» Вы же знаете, какие отношения были между фанами.
Хотя сегодня понимаю, что упустил возможность поиграть вместе с
Тихоновым, Цымбаларем, Аленичевым, Титовым. Мог стать чемпионом России,
сыграть в Лиге чемпионов.

Спустя несколько месяцев «Зенит» купил
30-летнего Панова у «Торпедо» за 400 тысяч евро. За полгода он вышел в
семи матчах — когда на пять минут, когда на семь, когда на одну. Зимой
Панова отправили обратно, в «Торпедо», игравшее лигой ниже.

Обида
крепла. Источники говорят, что Панов не считал возвращение в «Зенит»
пиар-акцией и был уверен, что принесет команде пользу. Позже Владислав
Радимов раскритиковал «ракету» в СМИ:

— Как футболист он уже к
тому времени весь «вышел». Просто так получал большие деньги. Сидел на
«банке», на тренировки с во-о-от таким пузом выходил. Это уже не
футболист был, а колобок. В 2006 году играем со «Спартаком» в Москве, за
пять минут до конца выходит Панов. На 93-й минуте не побежал за своим
защитником, тот сделал пас Быстрову и — решающий гол нам. После этого
ребята подошли к Адвокату и попросили Панова больше никогда не ставить.
Мы бьемся-бьемся, а этот колобок позволяет себе не работать на поле.

Панов
посчитал, что клуб его как минимум подвел. Причем дважды. Человек,
принесший трофей, первый за несколько лет зенитовец в сборной,
покоритель Франции, человек, обогативший казну на 2 млн. Неужели «Зенит»
ничего не дал колпинскому футболисту? Вернемся в начало 1990-х.

«Красный Октябрь»

Панов,
по собственному признанию, чинил беззаконие в Колпино, занимался
уличным разбоем, употреблял внутривенные наркотики, не появлялся на
тренировках.

Рассказывает главный тренер «Ленинградца», бывший игрок и тренер «Зенита» Борис Рапопорт:


Мы его спасли, вытащили, переселили в начале 1990-х из Колпино в
пансионат «Красный Октябрь». Игроки «Зенита» тогда заезжали туда на
предматчевый карантин, и мы договорились, что в пансионате также будут
жить некоторые игроки без контрактов. Организовали для них питание.
Очень сомневаюсь, что, если бы Саша остался в Колпино, он не только
состоялся бы как футболист, но и вообще был бы жив. Позже играл у нас с
Мельниковым в первой лиге. Но потом нас убрали, и возглавивший «Зенит»
Павел Федорович Садырин от Панова отказался. Дальше он скитался:
Вологда, Китай. А через два года, когда пришел Бышовец, Евгений Наумович
Шейнин (директор СДЮСШОР «Зенит». — «Спорт День за Днем») просто
уговорил его взять Панова. Я был свидетелем этого разговора. И у Бышовца
он заиграл! Ситуация странная, меня удивляет поведение Саши, что-то на
него негативно влияет. С ним не разговаривал десять лет, сам он на
контакт не идет… Если он приезжает сюда в красных цветах… Это демарш,
конечно. Больше желание досадить «Зениту», нежели поддержать «Спартак».
Он же не сошел с ума. Делает эти вещи сознательно. Планирует снова
приехать в Питер в красном? Ну что ж, получит! (Смеется.)

К слову,
в «Зените» Бышовца Панов заиграл не сразу. Сидел на скамейке. Тренер
перестроил игру команды, затачивая действия хавбеков под быстроногого
форварда. Хотя тренеру говорили: «Зачем брать? Его же из-за травы не
видно!»

Стоит ли обижаться

Панов — не легенда «Зенита».
Взять хотя бы статистику: 36 голов в 137 матчах за шесть сезонов.
Показатели других форвардов, которые, по мнению многих, не оставили
такого следа в истории: Саломон Рондон — 28 голов в 58 матчах за полтора
сезона, Артем Дзюба — 46 голов в 109 матчах за три сезона с хвостиком.
КПД Панова близок к КПД Предрага Ранджеловича — 4 гола в 17 матчах.

Так
откуда статус легенды и такая реакция? Несколько факторов сошлись. Не
хватавший звезд с неба «Зенит», изголодавшийся по победам Питер,
гегемония игроков «Спартака» в сборной… И тут — взрыв: Кубок! Триумф
национальной команды во Франции! И всюду солирует петербуржец. Трансфер
за границу. Позже, кстати, Панов назвал главной командой в карьере
«Торпедо», а не «Зенит».

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

Но, скорее всего, бесхитростный Панов «без
задней мысли» топит за «Спартак». Забывая, что является публичной
личностью и что его в «Твиттере» читают не только друзья. Саша,
остановись! Если Панов задумал провокацию — не поддавайтесь. Тем более
что в том году она удалась.

Использованы фото: ФК «Зенит», из архива газеты «Спорт День за Днем»

Оцените материал:


Добавьте «Спорт день за днём»
в список ваших источников

Бюджетный DI на антипаттернах / Блог компании TINKOFF / Хабр

Согласитесь, приятно бывает после утомительного трудового дня отточенным движением руки решительно закрыть рабочий workspace в Xcode, чтобы, облегченно вздохнув, открыть другой workspace — со своим домашним проектом.

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

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

Введение

Перво-наперво хочется совершить виртуальный каминг-аут и признаться, что я большой фанат паттерна MVVM. Для меня он не ограничивается сплошной стрелочкой, направленной от View к ViewModel и пунктирной — в обратном направлении. Правильно приготовленный MVVM, как мне кажется, — это инфраструктура, если хотите — фреймворк, включающий в себя, кроме реализации самого паттерна, решение для управления зависимостями, реализацию роутинга и ряд вспомогательных компонентов для упрощения жизни, здоровья и долголетия.

Именно этим и занимались первые MVVM-фреймворки, с которыми я работал в незапамятные времена, когда мобильных платформ было больше двух. Именно этим я планирую заниматься ближайшие три статьи. А начнем мы с управления зависимостями, потому что это фундамент, на котором держится весь увлекательный мир вашего iOS-приложения.

Однажды я прочитал где-то, что в любой качественной статье должно быть хорошее содержание. Вот и в этой статье пусть будет хоть что-нибудь от качественной.

Хорошее содержание

Принципы

Чтобы придать своему коду больше цельности, а самому себе — значимости, я решил, что весь код в этой и последующих статьях должен по возможности подчиняться нескольким общим принципам. Вот они:

  1. Не выпендривайся. Тупой и понятный код в большинстве случаев лучше умного и непонятного.
  2. Будь краток. Кода должно быть настолько мало, чтобы его не жалко было в любой момент выкинуть и написать заново за один день.
  3. Удобство превыше правил. Если можно облегчить себе жизнь, пожертвовав принципами SOLID, пожертвуй принципами SOLID.
  4. Получай удовольствие. Если есть разные варианты решения проблемы, выбирай более веселый.

Иметь такой список принципов очень удобно: это оправдывает все странные решения, которые я собираюсь принимать на протяжении трех статей.

Проблема управления зависимостями

Проблема управления зависимостями довольно типичная в программировании. Мало какая сущность в коде может похвастаться независимостью как твоя бывшая. Обычно все от кого-нибудь зависят. В MVVM, например, вью-контроллер зависит от вью-модели, которая подготавливает для него данные. Вью-модель зависит от сервиса, который за этими данными ходит в сеть. Сервис зависит от другого сервиса — низкоуровневой реализации сети, и так далее. Все эти сущности, которых может быть великое множество, нужно где-то создавать и как-то доставлять до потребителей. Для любой типичной проблемы, как правило, есть типичное решение — паттерн. В случае с проблемой управления зависимостями таким паттерном является Dependency Injection (DI) контейнер.

У меня нет намерения подробно объяснять, что такое DI-контейнер. Про это классно рассказывают в двух статьях из репозитория Ninject: раз, два (уберите от экрана детей, там код на С#). Еще есть небольшое объяснение в репозитории самого популярного DI-контейнера под iOS — Swinject (заметили, что Swinject — это Ninject на Swift?). Хардкорщикам могу предложить статью Фаулера от 2004 года.

Тем не менее не могу отказать себе в удовольствии немного поумничать и скажу, что DI-контейнер — это такая шляпа, из которой как кролика за уши можно достать практически любую сущность вашей программы. Если эта сущность зависит от других сущностей, а те, в свою очередь, еще от каких-то — DI-контейнер знает, что со всем этим графом зависимостей делать. Если у вас в проекте есть DI-контейнер, то на извечный вопрос «как мне прокинуть зависимость A до сущности B» всегда будет один и тот же ответ: «сущность B следует достать из контейнера, который сам рекурсивно разрешит все ее зависимости».

Решение

Существует несколько довольно популярных реализаций DI-контейнеров под iOS (Swinject, Cleanse, Dip, DITranquility, EasyDI), но использовать чужую реализацию, согласитесь, скучно. Гораздо веселее использовать мою.

Готовы немного развлечься и написать DI-контейнер с нуля? Похожую реализацию мне показал однажды один из самых крутых iOS-разработчиков, простой сибирский парень teanet, за что ему огромное спасибо. Я ее немного переосмыслил и готов поделиться с вами. Начнем с протокола IContainer:

protocol IContainer: AnyObject {
    func resolve<T: IResolvable>(args: T.Arguments) -> T
}

Привычка из прошлой жизни — я всегда пишу I перед протоколами. Буква I значит interface. У нашего интерфейса протокола всего один метод resolve(args:), который от нас принимает какие-то аргументы T.Arguments, а взамен возвращает экземпляр типа T. Как видно, не любая сущность может быть Т. Чтобы стать полноправным T, нужно реализовать IResolvable. IResolvable — это еще один протокол, о чем нам услужливо подсказывает буква I в начале имени. Он выглядит вот так:

protocol IResolvable: AnyObject {
    associatedtype Arguments

    static var instanceScope: InstanceScope { get }
    init(container: IContainer, args: Arguments)
}

Все кролики, которые хотят быть доступны из шляпы, обязаны реализовать IResolvable.

Самое главное здесь — инициализатор, принимающий сам контейнер и аргументы. Предполагается, что каждая сущность, реализуя этот инициализатор, сама достанет прямо из контейнера нужные зависимости. А если этому кролику для полноценного существования нужны еще какие-то аргументы, то пожалуйста — они тоже есть в инициализаторе.

Свойство instanceScope отвечает за область видимости, в которой будет существовать экземпляр объекта:

enum InstanceScope {
    case perRequest
    case singleton
}

Это довольно стандартная для DI-контейнеров штуковина. Значение perRequest означает, что для каждого вызова resolve(args:) будет создан новый экземпляр T. Значение singleton означает, что экземпляр T будет создан единожды — при первом вызове resolve(args:). При последующих вызовах resolve(args:) в случае singleton будет отдаваться закэшированная копия.

С протоколами разобрались, приступаем к реализации:

class Container {
    private var singletons: [ObjectIdentifier: AnyObject] = [:]

    func makeInstance<T: IResolvable>(args: T.Arguments) -> T {
        return T(container: self, args: args)
    }
}

Тут ничего особенного: кэш синглтонов будем хранить в виде словаря singletons. Ключом словаря нам послужит ObjectIdentifier — это стандартный тип, поддерживающий Hashable и представляющий собой уникальный идентификатор объекта ссылочного типа (через него, кстати, реализован оператор === в Swift). Метод makeInstance(args:) умеет на лету создавать любые экземпляры T благодаря тому, что мы обязали все T реализовать один и тот же инициализатор.

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

extension Container: IContainer {
    func resolve<T: IResolvable>(args: T.Arguments) -> T {
        switch T.instanceScope {
        case .perRequest:
            return makeInstance(args: args)
        case .singleton:
            let key = ObjectIdentifier(T.self)
            if let cached = singletons[key], let instance = cached as? T {
                return instance
            } else {
                let instance: T = makeInstance(args: args)
                singletons[key] = instance
                return instance
            }
        }
    }
}

Здесь все довольно прозаично: если T хочет быть perRequest, сразу возвращаем новый экземпляр. В противном случае нужно залезть в кэш. Что в кэше найдем — достаем, отдаем, чего в кэше не найдем — создаем, в кэш кладем, отдаем.

Вот, собственно, и все. Мы только что написали свой DI-контейнер в 50 строк кода. Но как этой штукой вообще пользоваться? Да очень просто.

Пример использования

Для примера рассмотрим хрестоматийную историю с клиентами и их заказами. Пусть мы хотим отобразить список заказов конкретного клиента на определенную дату. Заведем для наших целей две сущности: OrdersProvider и OrdersVM — эти ребята должны быть доступны из контейнера, а значит, им придется реализовать IResolvable.

Мне лениво каждый раз при реализации IResolvable имплементировать instanceScope, поэтому, прежде чем погрузиться в увлекательный мир прикладного программирования, предлагаю обмазаться парочкой полезных экстеншенов.

Полезный экстеншен номер раз:

protocol ISingleton: IResolvable where Arguments == Void { }
extension ISingleton {
    static var instanceScope: InstanceScope {
        return .singleton
    }
}

И второй такой же, но другой:

protocol IPerRequest: IResolvable { }
extension IPerRequest {
    static var instanceScope: InstanceScope {
        return . perRequest
    }
}

Теперь вместо IResolvable можно конформить более лаконичным ISingleton/IPerRequest и сэкономить тем самым несколько секунд жизни, потратив их на саморазвитие. А вот и реализация OrdersProvider подъехала:

class OrdersProvider: ISingleton {
    required init(container: IContainer, args: Void) { }

    func loadOrders(for customerId: Int, date: Date) {
        print("Loading orders for customer '\(customerId)', date '\(date)'")
    }
}

Мы предоставили required init, как того требует протокол, но, так как OrdersProvider ни от чего не зависит, этот инициализатор у нас пустой. Каждый раз, когда мы будем доставать OrdersProvider из контейнера, мы будем получать один и тот же экземпляр, потому что такова дефолтная реализация instanceScope для ISingleton.

А вот и модель представления собственной персоной:

final class OrdersVM: IPerRequest {
    struct Args {
        let customerId: Int
        let date: Date
    }

    private let ordersProvider: OrdersProvider
    private let args: Args

    required init(container: IContainer, args: Args) {
        self. ordersProvider = container.resolve()
        self.args = args
    }

    func loadOrders() {
        ordersProvider.loadOrders(for: args.customerId, date: args.date)
    }
}

Эта вью-модель не может существовать без аргументов OrdersVM.Args, которые мы получаем через required init. В этот инициализатор также попадает сам контейнер, из которого мы без лишней суеты извлекаем экземпляр OrdersProvider посредством вызова resolve().

Вызов метода loadOrders() использует ordersProvider для загрузки заказов, предоставляя ему необходимые для работы аргументы. Каждый раз, когда мы будем доставать OrdersVM из контейнера, мы будем получать новый экземпляр, потому что такова дефолтная реализация instanceScope для IPerRequest.

Финальный штрих. Чтобы получить готовый экземпляр вью-модели, просто достанем его из контейнера, вот так:

let container = Container()
let viewModel: OrdersVM = container. resolve(args: .init(customerId: 42, date: Date()))
viewModel.loadOrders()

Для справки, на момент написания этих строк, код выше производит следующий консольный вывод:

Loading orders for customer '42', date '2020-04-22 17:41:49 +0000'

Критика

Использовать или не использовать DI-контейнер из этой статьи в вашем проекте — решать не мне. Как ответственный автор, я могу всего лишь предлагать варианты и рассказывать о плюсах и минусах одинаково объективно.

Пытливый ум усидчивого читателя заметит, что реализация, представленная выше, если честно, не очень похожа на DI-контейнер. Эта реализация больше похожа на Service Locator, который, откровенно говоря, в приличном обществе принято считать не иначе как антипаттерном.

Не хочется в рамках данной статьи углубляться в тонкости отличия DI-контейнера от локатора служб, про это можно почитать у того же Фаулера. Но если грубо, то при использовании DI-контейнера ваша сущность, скорее всего, принимает в конструктор инициализатор некий набор зависимостей, закрытых интерфейсами протоколами. Примерно так:

final class OrdersVM {
    private let ordersProvider: IOrdersProvider
    init(ordersProvider: IOrdersProvider) {
       self.ordersProvider = ordersProvider
    }
}

Если вы осмелились использовать Service Locator, тогда ваша сущность, вероятно, достает зависимости из какого-нибудь сомнительного места типа статической фабрики. Например, вот так:

final class OrdersVM {
    private let ordersProvider: IOrdersProvider
    init() {
        self.ordersProvider = ServiceLocator.shared.resolve()
    }
}

Программисты недолюбливают Service Locator в первую очередь за то, что он скрывает истинные зависимости сущностей при их создании.

С практической точки зрения это означает, что нет никакой возможности понять, что OrdersVM зависит от IOrdersProvider — для этого нужно читать код инициализатора. Кроме того, OrdersVM напрямую зависит от ServiceLocator, что затрудняет переиспользование этого класса в системах, где для DI может быть выбрано другое решение.

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

Все наши сущности, если приглядеться, вообще ни капельки не зависят от абстракций. Напротив, они сами решают, какую конкретную реализацию своих зависимостей следует использовать. Например, OrdersVM достает из контейнера совершенно конкретный OrdersProvider, а не какой-нибудь протокол IOrdersProvider.

С практической точки зрения это затрудняет подмену одной реализации IOrdersProvider на другую реализацию этого протокола. Между тем, такая подмена может вам пригодиться не только в разработке, но и в рамках рефакторинга, а также при написании юнит-тестов.

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

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

Добавление новых зависимостей в существующий класс выглядит максимально лаконично и сводится к извлечению их из контейнера. Если вы пытаетесь извлечь из контейнера что-то неизвлекаемое, ваш код не скомпилируется. При резолве с аргументами невозможно передать аргументы неверного типа либо забыть передать аргументы: некорректный код не скомпилируется.

И, наконец, очень сложно забыть зарегистрировать какую-то сущность, потому что в контейнере не нужно ничего регистрировать. Многое из перечисленного для большинства «промышленных» DI-контейнеров, к сожалению, недоступно.

Вот вам смысл этого многословного раздела в виде двух списков.

Короче, минусы

  • Зависимости достаем в конструкторе прямо из контейнера (Service Locator).
  • Не получится закрыть зависимость протоколом (принцип на букву D).

Короче, плюсы

  • Простая и лаконичная реализация (50 строк кода).
  • Не надо регистрировать зависимости (вообще не надо).
  • Извлечение из контейнера никогда не сломается (совсем никогда).
  • Нельзя передать невалидные аргументы (не скомпилируется).

Если упомянутые минусы для вашего проекта не критичны, а плюсы вызывают неконтролируемый выброс дофамина — добро пожаловать на борт, нам, скорее всего, по пути.

One More Thing: автоматическое внедрение зависимостей через обертки свойств

В 2019 году в компании Apple придумали инкапсулировать повторяющуюся логику гетеров и сетеров в переиспользуемые атрибуты и назвали это обертками свойств (property wrappers). С помощью таких оберток ваши свойства волшебным образом могут получить новое поведение: запись значения в Keychain или UserDefaults, потокобезопасность, валидацию, логирование — да много чего.

Можно найти много статей о том, как сделать внедрение зависимостей с помощью оберток свойств, и это довольно весело, поэтому мы проделаем такой фокус прямо сейчас. Следите за руками.

Чтобы написать свою обертку свойства в минимальной комплектации, нужно создать класс или структуру, предоставить свойство wrappedValue и пометить все это дело атрибутом @propertyWrapper:

@propertyWrapper
struct Resolvable<T: IResolvable> where T.Arguments == Void {
    private var cache: T?

    var wrappedValue: T {
        mutating get {
            if let cache = cache {
                return cache
            }
            let resolved: T = ContainerHolder.container.resolve()
            cache = resolved
            return resolved
        }
    }
}

Из этого незамысловатого кода мы видим, что наш property wrapper называется Resolvable. Он работает со всеми типами Т, которые реализуют одноименный протокол и не требуют аргументов при инициализации.

Волшебство происходит при обращении к свойству wrappedValue: мы возвращаем закэшированное значение, если таковое имеется. Если нет — достаем это значение из контейнера и сохраняем в кэш. Чтобы наша обертка получила доступ к контейнеру, пришлось провернуть грязный трюк — поместить контейнер в статическое свойство класса ContainerHolder:

final class ContainerHolder {
    static var container: IContainer!
}

Имея в своем арсенале обертку Resolvable<T>, мы можем применить ее к какой-нибудь зависимости, например к ordersProvider:

@Resolvable
private var ordersProvider: OrdersProvider

Это приведет к тому, что компилятор сгенерирует за нас примерно такой код:

private var _ordersProvider = Resolvable<OrdersProvider>()

var ordersProvider: OrdersProvider {
  get { return _ordersProvider. wrappedValue }
}

Видно, что компилятор сгенерировал свойство ordersProvider, при обращении к которому на самом деле используется обертка, которая умеет доставать из контейнера нужную зависимость.

Теперь знакомая нам модель представления может позволить себе не извлекать из контейнера OrdersProvider в инициализаторе, а просто пометить соответствующее свойство атрибутом @Resolvable. Вот так:

final class OrdersVM: IPerRequest {
    struct Args {
        let customerId: Int
        let date: Date
    }

    @Resolvable
    private var ordersProvider: OrdersProvider
    private let args: Args

    required init(container: IContainer, args: Args) {
        self.args = args
    }

    func loadOrders() {
        ordersProvider.loadOrders(for: args.customerId, date: args.date)
    }
}

Самое время собрать все вместе и порадоваться, что все работает как прежде:

ContainerHolder.container = Container()
let viewModel: OrdersVM = ContainerHolder. container.resolve(
    args: .init(customerId: 42, date: Date()))
viewModel.loadOrders()

Для справки. Этот код производит следующий консольный вывод:

Loading orders for customer '42', date '2020-04-23 18:47:36 +0000'

Unit-тесты, раздел под звездочкой

Думаю, все согласятся, что сложно переоценить важность автоматических тестов в современной разработке. Искренне надеюсь, что вы на постоянной основе используете как минимум unit-тесты и в своих ежедневных рабочих задачах, и в домашних проектах. Лично я — нет. Может быть, по этой причине DI-контейнер из этой статьи не очень хорошо подходит для интеграции с unit-тестами. Однако, если вы, будучи в здравом уме и твердой памяти, решили пойти тернистым путем автоматизации, у меня есть для вас пара вариантов.

Чтобы немного разогреться, начнем с первого варианта, который попроще. Допустим, для нужд тестирования мы хотим замокать OrdersProvider, чтобы он не лез в сеть, а отдавал тестовые данные. Для начала закроем его протоколом:

protocol IOrdersProvider {
    func loadOrders(for customerId: Int, date: Date)
}

extension OrdersProvider: IOrdersProvider {}

Теперь во вью-модели можем сделать второй инициализатор, который будет принимать этот протокол:

final class OrdersVM: IPerRequest {
    struct Args {
        let customerId: Int
        let date: Date
    }

    private let ordersProvider: IOrdersProvider
    private let args: Args

    required convenience init(container: IContainer, args: Args) {
        self.init(
            ordersProvider: container.resolve() as OrdersProvider,
            args: args)
    }

    init(ordersProvider: IOrdersProvider, args: Args) {
        self.args = args
        self.ordersProvider = ordersProvider
    }

    func loadOrders() {
        ordersProvider.loadOrders(for: args.customerId, date: args.date)
    }
}

Такой подход позволяет в реальном приложении создавать сущности через контейнер, используя required init, а в тестах пользоваться вторым инициализатором и создавать сущности с замоканными зависимостями.

Однако граф зависимостей может быть довольно запутан, и чаще всего удобно продолжить использование контейнера даже в тестах, но при этом научиться подменять некоторые зависимости на моковые. Это плавно подводит нас ко второму, более интересному варианту.

Забегая вперед, скажу, что далее от нас потребуется хранить объекты IResolvable в некоторой коллекции. Однако если мы попробуем сделать это, то столкнемся с суровой действительностью в виде ошибки, до боли знакомой каждому iOS-разработчику: protocol ‘IResolvable’ can only be used as a generic constraint because it has Self or associated type requirements. Типичный способ как-то справиться с этой ситуацией — налить себе чего-нибудь покрепче и применить механизм с пугающим названием «стирание типов» (type erasure).

Стирание типов предполагает, что вместо неполноценного протокола IResolvable мы будем использовать самую обычную структуру AnyResolvable, не обремененную ассоциированным типом. Такую структуру можно спокойно хранить в массиве, но она, конечно, лишена полезной функциональности IResolvable. Последнее мы компенсируем с помощью замыкания. Внимание на код:

struct AnyResolvable {
    private let factory: (IContainer, Any) -> Any?

    init<T: IResolvable>(resolvable: T.Type) {
        self.factory = { container, args in
            guard let args = args as? T.Arguments else { return nil }
            return T(container: container, args: args)
        }
    }

    func resolve(container: IContainer, args: Any) -> Any? {
        return factory(container, args)
    }
}

Кода здесь немного, но он хитрый. В инициализатор мы принимаем настоящий живой тип T, который не можем никуда сохранить. Вместо этого мы сохраняем замыкание, обученное создавать экземпляры этого типа. Замыкание впоследствии используется по своему прямому назначению в методе resolve(container:args:), который понадобится нам позже.

Вооружившись AnyResolvable, мы можем написать контейнер для unit-тестов в 20 строк, который позволит нам выборочно мокать часть зависимостей. Вот он:

final class ContainerMock: Container {
    private var substitutions: [ObjectIdentifier: AnyResolvable] = [:]

    public func replace<Type: IResolvable, SubstitutionType: IResolvable>(
        _ type: Type.Type, with substitution: SubstitutionType.Type) {

        let key = ObjectIdentifier(type)
        substitutions[key] = AnyResolvable(resolvable: substitution)
    }

    override func makeInstance<T: IResolvable>(args: T.Arguments) -> T {
        return makeSubstitution(args: args) ?? super.makeInstance(args: args)
    }

    private func makeSubstitution<T: IResolvable>(args: T.Arguments) -> T? {
        let key = ObjectIdentifier(T.self)
        let substitution = substitutions[key]
        let instance = substitution?.resolve(container: self, args: args)
        return instance as? T
    }
}

Давайте разбираться.

Класс ContainerMock наследуется от обычного Container, переопределяя метод makeInstance(args:), используемый контейнером для создания сущностей. Новая реализация пытается создать подставную зависимость вместо настоящей. Если ей это не удается, она печально разводит руками и фолбечится на реализацию базового класса.

Метод replace(_:with:) позволяет сконфигурировать моковый контейнер, указав тип зависимости и соответствующий ей тип мока. Эта информация хранится в словаре substitutions, который использует уже знакомый нам ObjectIdentifier для ключа и AnyResolvable для хранения типа мока.

Для создания моков используется метод makeInstance(args:), который по ключу пытается достать нужный AnyResolvable из словаря substitutions и создать соответствующий экземпляр с помощью метода resolve(container:args:).

Использовать все это дело мы будем следующим образом. Создаем моковый OrdersProvider, переопределяя метод loadOrders(for:date:):

final class OrdersProviderMock: OrdersProvider {
    override func loadOrders(for customerId: Int, date: Date) {
        print("Loading mock orders for customer '\(customerId)', date '\(date)'")
    }
}

Создаем моковый контейнер и конфигурируем его. Вью-модель достаем из контейнера обычным образом. Контейнер создает экземпляр вью-модели, разрешая все ее зависимости с учетом подстановок:

let container = ContainerMock()
container.replace(OrdersProvider.self, with: OrdersProviderMock.self)
let viewModel: OrdersVM = container.resolve(args: .init(customerId: 42, date: Date()))
viewModel.loadOrders()

Для справки, этот код производит следующий консольный вывод:

Loading mock orders for customer '42', date '2020-04-24 17:47:40 +0000'

Заключение

Сегодня мы вероломно поступились принципом инверсии зависимостей и в очередной раз изобрели велосипед, реализовав бюджетный DI с помощью анти-паттерна Service Locator. Попутно мы познакомились с парой полезных техник iOS-разработки, таких как type erasure и property wrappers, и не забыли про unit-тесты.

Автор не рекомендует использовать код из этой статьи в приложении для управления ядерным реактором, но если у вас небольшой проект и вы не боитесь экспериментировать — свайп вправо, it’s a match <3


Весь код из этой статьи можно скачать в виде Swift Playground.

Тиньков совершил фейковый каминг-аут

Бизнесмен взбудоражил интернет шуточным признанием в нетрадиционной ориентации

Председатель Совета директоров «Тинькофф Кредитные Системы» Олег Тиньков признался в гомосексуальности вслед за главой Apple Тимом Куком. Бизнесмен написал в Twitter: «ОК, теперь моя очередь сделать каминг-аут, после моего друга Тима. Я ГЕЙ, и я горжусь этим».

Банкир также разместил фотографию, где рядом с ним находится директор велокоманды Saxo-Tinkoff Стефано Фельтрин.

Представитель банка назвала признание Тинькова шуткой. «Вы читали его твиттер? Он там постоянно шутит и троллит людей», — сказала «Русской службе новостей».PR-директор ТКС Дарья Ермолина. Отметим, что банкир женат и имеет троих детей.

 

  • Тиньков готов отдать 1% акций Tinkoff.ru дизайнеру

    Предприниматель ищет «своего Джонатана Айва»

  • Тиньков: Рекламная индустрия достаточно «мутная»

    Российский предприниматель, совладелец банка «Тинькофф кредитные системы» (ТКС) Олег Тиньков усомнился в прозрачности российского рекламного рынка. По его мнению, в рекламе есть коррупция и всей индустрии еще предстоит чистка, передает RNS.

  • Олег Тиньков последовал примеру Арнольда Уварова

    Олег Тиньков объявил конкурс на креативную идею для рекламы, которая долждна выйти в марте следующего года. Победителю обещан приз в размере 150 тысяч долларов.

  • Олег Тиньков раздал акции лучшим сотрудникам «Тинькофф Банка»

    Бизнесмен в качестве благодарности за работу подарил 4% TCS Group

  • Google совершил свое крупнейшее приобретение в Европе

    Американский технологический гигант Google совершил свое крупнейшее приобретение в Европе ― компания получила контроль над британским стартапом DeepMind, заплатив за это, по неофициальным данным, 500 млн долл.

  • Тиньков поторопился раскрыть планы

    Самоуверенность сыграла злую шутку с бизнесменом Олегом Тиньковым. 5 марта в своем твиттере он объявил о том, что намерен запустить Tinkoff Airlines. «Аэрофлот, Трансаэро и S7 — это не то. Будем переворачивать рынок…» — написал тогда он. Казалось бы, такой продвинутый интернет-пользователь, как Олег Тиньков, который первый запустил в России полностью дистанционный банк, должен был заранее позаботиться о доменных именах для своего нового проекта.

  • Олег Тиньков заинтересовался интернет-рекламой

    Предприниматель Олег Тиньков намерен инвестировать от 10 млн до 20 млн долл. в компании, работающие на рынке интернет-рекламы.Создаваемую им структуру возглавит один из создателей, ныне миноритарный акционер видеопортала ivi.ru Анна Знаменская.

  • В банке «Тинькофф. Кредитные Системы» заявление банкира о гомосексуальности назвали шуткой. 31.10.2014

    Портрет сюжета

    • ТИНЬКОВ
    • КУК
    • ТИНЬКОВА
    • ГЕЙ
    • КРЕДИТНЫЕ СИСТЕМЫ
    • КАМИНГ-АУТ
    • СЕКСУАЛЬНАЯ ОРИЕНТАЦИЯ
    • РОССИЙСКИЙ БИЗНЕСМЕН
    • ТИНЬКОФФ
    • АБСОЛЮТНАЯ ШУТКА
    • МОЙ ДРУГ
    • СВОЯ ОРИЕНТАЦИЯ
    • НЕТРАДИЦИОННАЯ ОРИЕНТАЦИЯ
    • ГОМОСЕКСУАЛЬНОСТИ
    • ОКЕЙ
    • ЕРМОЛИН
    • ФЕЛЬТРИНА
    • АНАЛОГИЧНОЕ ОТКРОВЕНИЕ
    • ВЧЕРАШНЕЕ ПРИЗНАНИЕ
    • СЕКСУАЛЬНЫЕ МЕНЬШИНСТВА

    Архив

    Смотреть за сегодня
    2012
    2011
    2010
    2009
    2008


    В банке «Тинькофф. Кредитные Системы» заявление банкира о гомосексуальности назвали шуткой
    Радиокомпания «Маяк» 18:04

    Сообщение Олега Тинькова в Twitter о собственной гей-ориентации — всего лишь шутка. Об этом сообщили в пресс-службе банка «Тинькофф. Кредитные Системы». Пост с признанием в гомосексуализме появился в Twitter-аккаунте Тинькова появился спустя несколько часов после аналогичного откровения главы компании Apple Тима Кука. «Я гей и горжусь этим», — говорилось в написанном по-английски сообщении.
           Пост сопровождался фотографией Тинькова и управляющего директора велокоманды Tinkoff-Saxo Стефана Фельтрина.



    Олег Тиньков: Я не гей, я пошутил
    Южный Федеральный 17:41

    31.10.2014 — 16:05
           31 октября, в пятницу, интернет-сообщество обсуждает вчерашнее признание российского предпринимателя Олега Тинькова, которое он сделал в своем англоязычном микроблоге. Но как оказалось, гомосексуальность основатель бренда «Тинькофф» всего лишь шутка.
           Однако многие поверили в признание бизнесмена, поскольку ранее о своей нетрадиционной ориентации заявил Тим Кук, глава корпорации Apple.
           Как заявляет пресс-служба банка «Тинькофф. Кредитные Системы» заявление Тинькова не стоит воспринимать всерьез. «Это абсолютная шутка. Стеб», — прокомментировали признание своего босса в компании.
           Напомним, Forbes считает Олега Тинькова одним из необычных бизнесменов России, и характеризует его как сумасброда и эксцентрика.



    Тиньков отправился за Тимом Куком
    МТРК Мир 15:34

    Бизнесмен признался в своей «нетрадиционной» ориентации вслед за главой Apple Тимом Куком.
           Фото: Юрий Белинский, ИТАР-ТАСС



    В банке Тинькова назвали стебом его твит о собственной гомосексуальности
    Лента.ру 15:17

    Кредитные Системы».
           «Это абсолютная шутка. Это стеб», — сообщили в пресс-службе банка.
           Представитель банка «Тинькофф. Кредитные Системы» заявила, что аккаунт микроблога, где Тиньков написал твит о своей гомосексуальности, является подлинным. Автором твита также является сам Тиньков.
           Пост с признанием в гомосексуализме появился в Twitter-аккаунте Тинькова вечером 30 октября, спустя несколько часов после аналогичного откровения главы компании Apple Тима Кука.
           «Я гей и горжусь этим», — говорилось в сообщении. Пост сопровождался фотографией Тинькова и Стефана Фельтрина, управляющего директора велокоманды Tinkoff-Saxo.
           46-летний Олег Тиньков — основатель бренда «Тинькофф», глава банка «Тинькофф.



    Тиньков в думах о капитализации обнаружил себя геем
    Фонтанка.ру 15:10

    Петербургский бизнесмен Олег Тиньков сообщил в своем твиттере, что является геем. Неожиданное для отца трех детей признание он сделал вслед за главой Apple Тимом Куком, который накануне официально заявил о своей нетрадиционной сексуальной ориентации. Пресс-служба называет заявление шуткой.
           «После того, как мой друг Тим сделал это, теперь моя очередь совершить каминг-аут. Я гей и горжусь этим», — говорится в сообщении, написанном на английском. «Под другом Тимом» Тиньков имеет в виду главу Apple Тима Кука, который накануне официально заявил о своей нетрадиционной сексуальной ориентации.
           Сам Тиньков так вчера отреагировал на это признание: «Тим Кук голубой.



    «Миллионы мужчин разочарованы». Тиньков передумал быть геем. «Это стеб»
    Ура.Ru 14:59

    Банкир Олег Тиньков признался, что его твит о нетрадиционной сексуальной ориентации был шуткой. При этом в пресс-службе банка «Тинькофф Кредитные системы» подтвердили подлинность аккаунта, где было размещено это сообщение, так же как и то, что его автором был сам Тиньков.
           «Это абсолютная шутка. Это стеб», — пояснил Тиньков «Дождю».
           Как уже сообщало «URA.Ru», сегодня ночью в твиттере Олега Тинькова появилось написанное на английском языке сообщение, в котором он совершал так называемый «coming out», то есть признавался в нетрадиционной сексуальной ориентации. «OK, now is my turn to coming out, after my friend Tim did.



    Российский банкир Тиньков повторил «подвиг» главы Apple: Я гей и горжусь этим
    MIGnews.com.ua 14:49

    Вдруг вслед за Куком о своей гомосексуальности заявил известный российский бизнесмен и банкир Олег Тиньков. Об этом он написал по-английски в своем микроблоге на Twitter.
           «Окей, теперь моя очередь совершать каминг-аут после моего друга Тима. Я гей и я горжусь этим», — написал Тиньков.
           Однако тут же PR-директор банка «Тинькофф» Дарья Ермолина заявила, что признание Тинькова в гомосексуализме было шуткой. «Он шутит. Вы читали его твиттер? Он там постоянно шутит и троллит людей», — рассказала Ермолина.



    Олег Тиньков вслед за главой Apple признался, что он гей
    Комсомольская правда 14:46

    Однако чуть позже заявил, что это была шутка
           Известный российский бизнесмен Олег Тиньков вслед за главой американской корпорации Apple публично объявил в интернете о своей нетрадиционной сексуальной ориентации.
           — Окей, теперь моя очередь совершать каминг-аут после моего друга Тима. Я гей и я горжусь этим, — написал он.
           Однако спустя время банкир признался, что всего лишь пошутил, не предоставив блогерам возможности подольше порассуждать о себе.
           — Это абсолютная шутка. Это стеб, — пояснил он в своем микроблоге Twitter.
           OK, now is my turn to coming out, after my friend Tim did. I am GAY, and proud of it.



    Признание Тинькова в гомосексуализме было шуткой
    Газета.ru 14:41

    Газета.Ru»
           Пиар-директор банка «Тинькофф» Дарья Ермолина заявила, что признание бизнесмена Олега Тинькова в гомосексуализме было шуткой. Об этом сообщает «Русская служба новостей».
           «Он шутит. Вы читали его твиттер? Он там постоянно шутит и троллит людей», — рассказала Ермолина.
           «Окей, теперь моя очередь совершать каминг-аут после моего друга Тима.



    Российский бизнесмен Олег Тиньков признался в своей гомосексуальности
    Правда. Ру 14:24

    Это признание он совершил вслед за главой компании Apple Тимом Куком, пишет «Дождь».
           «Окей, теперь моя очередь совершать каминг-аут после моего друга Тима. Я гей и я горжусь этим», — написал Тиньков.
           Накануне о своей гомосексуальности в интервью журналу Bloomberf BusinessWeek заявил глава компании Apple Тим Кук.
           «До сих пор я не признавался публично в своей ориентации. Теперь же я хочу внести ясность: я горжусь тем, что я гей, и считаю это одним из самых больших подарков от Господа», — заявил Кук.



    Признание бизнесмена Тинькова в нетрадиционной ориентации было шуткой
    Русская служба новостей 14:17

    Тинькова в своей нетрадиционной ориентации было шуткой, сообщила «Русской службе новостей» PR-директор банка «Тинькофф» Дарья Ермолина.
           «Он шутит. Вы читали его Twitter? Он там постоянно шутит и троллит людей», — отметила PR-директор.
           Известный российский бизнесмен и банкир Олег Тиньков сообщил о своей гомосексуальности в пятницу. Он написал об этом в Twitter. Пост опубликован на английском языке.
           «Окей, теперь моя очередь совершать каминг-аут после моего друга Тима. Я гей и я горжусь этим», — заявил Тиньков.
           Глава Apple Тим Кук признался в нетрадиционной сексуальной ориентации накануне. Топ-менеджер объявил об этом в интервью изданию Bloomberg Businessweek.



    Банкир Тиньков саморазоблачился вслед за главой Apple
    Вести.Ru 14:06

    Российский бизнесмен Олег Тиньков признался в своей нетрадиционной сексуальной ориентации вслед за своим товарищем Тимом Куком — исполнительным директором Apple. Кук накануне опубликовал свою колонку в журнале Businessweek, в которой признался, что он гей и считает это божьим даром.
           Кук заявил, что никогда не выставлял свою ориентацию напоказ, но решил заявить об этом публично, когда понял, что это может поддержать других представителей секс-меньшинств.
           Тиньков заявил о своей ориентации в «Твиттере». «Хорошо, теперь моя очередь совершить каминг-аут, вслед за моим другом Тимом. Я гей и я горжусь этим», — написал он.



    Глава банка «Тинькофф» совершил каминг-аут вслед за Куком
    Утро.ru 13:59

    Дождь
           Известный российский бизнесмен и банкир Олег Тиньков публично заявил о своей гомосексуальности вслед за главой компании Apple Тимом Куком. Об этом он написал по-английски в своем Twitter. «Окей, теперь моя очередь совершать каминг-аут после моего друга Тима. Я гей, и горжусь этим», — написал Тиньков



    Олег Тиньков заявил, что он гей
    Деловой квартал 13:58

    Сообщение появилось на следующий день после того, как в гомосексуальности признался Тим Кук.
           Москва, 31 октября. Известный российский бизнесмен Олег Тиньков в микроблоге Twitter сделал англоязычную запись, свидетельствующую о его гомосексуальных наклонностях, передает «Эхо Москвы».
           «Окей, теперь моя очередь совершать каминг-аут после моего друга Тима. Я гей и я горжусь этим», — написал Олег Тиньков.
           Известно, что бизнесмен женат и имеет трех детей. Именно поэтому пользователи сети сделали вывод, что Тиньков пошутил.
           DK.RU напоминает, вчера, 30 октября, глава корпорации Apple Тим Кук публично признался в том, что он гей. Руководитель также отметил, что гордится этим.



    В Твиттере бизнесмена Олега Тинькова сообщается, что он гей
    Rambler 13:26

    В Твиттере российского бизнесмена Олега Тинькова появилось сообщение, что он является геем. «Теперь моя очередь сделать каминг-аут, после того как мой друг Тим сделал это. Я гей и горжусь этим», — говорится в Твиттер-аккаунте. По информации из открытых источников, у Олега Тинькова есть жена Рина и трое детей — Дарья, Павел и Роман. В своем ЖЖ бизнесмен в 2009 году высказывал критику в адрес людей с нетрадиционной ориентаций. Напомним, накануне о том, что он гей заявил главой Apple Тимом Куком. Сегодня стало известно, что на фоне этого откровения акции Apple показали рост.


    Тим Кук и еще девять открытых геев-бизнесменов. Фото | Новости

    Тим Кук

    CEO Apple

    Автор американского Forbes Тим Уорстэлл в мае 2014 года сообщал, что Кук является открытым гомосексуалистом. А в конце октября Кук призвал власти своего родного штата Алабама приложить больше усилий по защите прав ЛГБТ-сообщества. В 2013 году он в колонке для газеты The Wall Street Journal призвал конгресс США принять закон, запрещающий дискриминацию при трудоустройстве. В ней он рассказывал, что гомосексуальность дала ему понимание о том, с каким вызовами каждый день сталкиваются принадлежащие к меньшинству люди. «Это также предоставило мне кожу носорога, иметь которую полезно, если вы генеральный директор Apple», — заметил он.

    Ориентация не влияла на отношение к нему коллег из Apple, многие из которых знали о ней. «Конечно, я имею счастье работать в компании, которая любит творчество и инновации и знает, что может только процветать, признавая различия людей. Не всем так везет», — написал он.

    Следующий слайд

    Питер Тиль

    Инвестор

    Сооснователь PayPal и первый профессиональный инвестор в Facebook, Питер Тиль является и владельцем технологического стартапа Palantir (оценивается в $1 млрд). 46-летний Тиль финансирует ЛГБТ-группу GOProud. О своей ориентации он рассказал только в 2003 году, когда ему было 35 лет.

    Следующий слайд

    Лорд Джон Браун

    Экс-глава British Petroleum

    В ВР Браун отработал 41 год. При нем компания приняла политику равноправия по отношению к представителям сексуальных меньшинств. В июле 2014 года в интервью немецкому изданию Die Welt Браун призвал европейские компании направлять больше сотрудников-геев в Россию. По словам Брауна, в некоторых областях геи «показывают даже лучшие результаты, нежели обычные сотрудники, поскольку они работают намного напряженнее и постоянно что-либо доказывают себе».

    Следующий слайд

    Крис Хьюз

    Инвестор, один из основателей Facebook

    В 2004 году во время учебы в Гарварде Крис Хьюз совместно с Марком Цукербергом, Дастином Московицем и Эдуардо Саверином основал социальную сеть Facebook. В 2007 году он покинул соцсеть, чтобы принять участие в предвыборной кампании Барака Обамы. Хьюз занимался разработкой сайта Барака Обамы. В январе 2011 года в Нью-Йорке на приёме в поддержку брачного равноправия Крис и его партнер объявили о помолвке.

    Следующий слайд

    Антонио Симос

    Глава банковского подразделения HSBC в Великобритании

    Симос – один из руководителей HSBC в Великобритании, ему подчиняются около 50 000 человек. В 2013 году получил премию как человек года от влиятельной международной ЛГБТ-организации OUTstanding. Симос ведет активную кампанию в качестве представителя сексуальных меньшинств. Например, дал серию интервью, каково быть открытым геем в банковском бизнесе. Бывший глава BP Джон Браун назвал Симоса примером для подражания в своей книге «Стеклянный чулан» (‘The Glass Closet’).

    Следующий слайд

    Кристофер Бэйли

    Главный креативный и исполнительный директор в Burberry

    В подчинении Кристофера Бэйли, который руководит работой британского бренда по всему миру – более 11 000 сотрудников. Он начал работать в Burberry в качестве директора по дизайну и довольно быстро сделал карьеру. В 2013 году получил награду «Лучший мужской дизайнер года» на British Fashion Awards, и был выбран дизайнером года на GQ Men of the Year Awards в 2014 году.

    Следующий слайд

    Пол Рид

    Исполнительный директор в BP Integrated Supply and Trading

    Рид с 2009 года является участником сообщества BP Pride, объединяющей ЛГБТ-сотрудников компании.

    Следующий слайд

    Пьер Лэнди

    Заместитель генерального советника в Yahoo

    Отвечает за деятельность компании в Европе, на Ближнем Востоке и в Африке. Спонсирует по всему миру инициативы сотрудников с нетрадиционной сексуальной ориентацией.

    Следующий слайд

    Алекс Шульц

    Вице-президент по развитию Facebook

    В подчинении Шульца – более 100 человек, в том числе половина команды аналитиков соцсети, все маркетологи, и отдел международного развития, который занимается локализацией сервиса. Шульц регулярно рассказывает на конференциях о своем «камингауте» и о том, что хорошего и плохого в том, чтобы быть открытым геем в бизнесе.

    Следующий слайд

    Энтони Уотсон

    Управляющий директор, руководитель информационного департамента Barclay`s

    38-летний Этони Уотсон является влиятельным членом нескольких международных ЛГБТ-организаций, среди которых – американская адвокатская группа GLAAD, благотворительные и образовательные Stonewall и Diversity Role Models, которые занимаются защитой прав представителей нетрадиционных меньшинств. Регулярно дает интервью ведущим изданиям о том, что значит быть геем в бизнесе и что делать тем, кто еще открыто не заявил о своей сексуальной ориентации.

    Следующий слайд

    CyclingQuotes.

    com Тинькофф-Саксо полон оптимизма после третьего дня в Британии

    На третьем этапе Тура Британии было решено еще одно решение в спринте, и Элиа Вивиани одержала победу. Майкл Мёрков из «Тинькофф-Саксо» упустил первые позиции, заняв 16-е место на сцене, в то время как директор по командным видам спорта Ники Соренсен заметил явные признаки улучшения благодаря хорошей поддержке команды.

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

    «Я думаю, что ребята сегодня хорошо выступили. Хотя Мёркёв упустил лучший результат в финальном спринте, команда его здорово поддержала, и я определенно заметил некоторые улучшения в их манере езды сегодня. С такими лучшими спринтерами, как Вивиани, Грайпель и Кавендиш, определенно нелегко бороться за первые места на этапе. В конце концов Мёркёв был там, но все получилось не так, как мы могли надеяться », — говорит Ники Соренсен о гонке на 216-километровом этапе от Кокермаута до Замка Флорс, выигранном Элиа Вивиани.

    Тинькофф-Саксо финишировал четырьмя парнями в уничтоженной основной группе, состоящей всего из 50 гонщиков. Пелотон держал высокий темп, а команды спринтеров контролировали отрыв.

    «У нас был ранний отрыв шести гонщиков, при этом один из них отставал только примерно на 1:30» в GC. Это означало, что у перерыва действительно не было шансов, так как спринтеры были нацелены на эту сцену, а лучшие команды GC не хотели их отпускать », — говорит Ники Соренсен, прежде чем подробно рассказать о завтрашнем движении от Эдинбурга до Блита.

    «Завтра, скорее всего, будет день для спринтеров, где они сойдутся лицом к лицу в финальном групповом спринте за победу. Мы знаем, что Мёркёв быстр, и Трусов тоже. Они, естественно, встретятся с некоторыми большими фаворитами, но теперь мы сядем и посмотрим, как мы можем подойти к сцене наилучшим образом. На следующий день мы встретимся на сцене королевы с финишем на вершине горы. На мой взгляд, Крис Анкер идет хорошо, и я считаю, что то же самое можно сказать и о Кисерловски », — завершает Ники Соренсен.

    Эдоардо Зардини идет впереди …

    Эдоардо Зардини (Bardiani CSF) штурмом одержал победу на The Tumble и вырвался в абсолютное лидерство Тура Британии на третьем этапе.

    Зардини атаковал в самом начале подъема, а затем на последних нескольких километрах оторвался от Николаса Роша (Тинькофф-Саксо) и соло к победе.

    Еще дальше Михал Квятковски (Omega Pharma-Quickstep) сильно ударил в конце культового подъема и занял второе место, а занявший пятое место сэр Брэдли Виггинс (Team Sky) также повысил свои амбиции по защите титула, который он впервые выиграл в прошлом году.

    Эдоардо Зардини празднует свою победу на The Tumble — победа, которая помещает его в общую желтую майку (фото: Саймон Уилкинсон / SWpix.com)

    Детали этапа

    Отрыв сформировался в самом начале этапа, в пределах первых десяти километров, чтобы преодолеть первый категоризованный подъем дня впереди пелотона.

    Марк МакНалли («Цепная реакция»), участвующий в гонке в майке «Король гор», закрепил свое лидерство, приняв участие в раннем движении из шести человек, в котором также были представлены национальные команды Великобритании.

    Чемпион серии

    Elite Road Series Янто Баркер (Raleigh-GAC), Том Стюарт (Madison-Genesis) и Майк Куминг (Rapha Condor JLT) — все разделились, а Мануэле Боаро (Тинькофф-Саксо) и Себастьян Лендер (BMC Racing) завершили борьбу. Движение.

    Боаро, который до сих пор предпринял несколько неудачных попыток ускользнуть от внимания публики в гонке этого года, наслаждался своим временем на дороге, опередив шестерку на первом подъеме, а МакНелли последовал за ним на втором.

    Он сделал то же самое на восхождении третьей категории в Найтоне, за ним снова последовал МакНелли с пелотоном, возглавляемым Team Sky и Omega Pharma-Quickstep, гарантируя, что их лидерство никогда не выросло до такой степени, которая могла бы считаться неуправляемой.

    Garmin-Sharp также добавил огневую мощь в погоню, которая удерживала разрыв от двух до трех минут на протяжении всего этапа.

    Впереди Куминг сделал ход первым — после того, как Лендер провел шестерку через вторую промежуточную точку спринта.

    Рафа Кондор из JLT ускорился, чтобы вывести небольшое преимущество, когда Стюарт и Боаро погнались за ним.

    Темп оказался непосильным для Баркера, Макнелли и Лендера, которые вскоре сели и вернулись к группе, в которой Марк Кавендиш был одним из лидеров гонщиков.

    Тем не менее, Куминг, которого поймали Стюарт и Боаро, продолжал хорошо работать, пытаясь сохранить свое преимущество.

    Поскольку дороги становились все более и более неровными по мере приближения к The Tumble, их отрыв продолжал падать, пока Боаро не разогнался на последних 20 километрах.

    Итальянец восстановил свое преимущество до более чем минуты: Омега Фарма-Квикстеп, Гармин-Шарп и Team Sky продолжали преследовать — Марк Реншоу в желтой майке, все еще в колесах своих товарищей по команде впереди. .

    К тому времени, когда они достигли нижних пандусов The Tumble, он, однако, был отброшен назад, когда люди GC жестко выехали на позицию на подходе к «Iron Mountain».

    Зардини был одним из первых атаковавших гонщиков, к которому присоединился Джек Бауэр (Garmin-Sharp), в то время как гонщики, включая Реншоу, быстро вылетели из спины.

    Бауэр проиграл испытание, потеряв колесо Зардини, поскольку итальянец в одиночку продолжал гонку.

    Сэр Брэдли Уиггинс (Team Sky) возглавил погоню, хотя он, казалось, постепенно угасал по мере того, как проходили километры, в то время как Зардини продолжал создавать брешь в группе.

    Следующим ответил Роше, с очевидной легкостью догнав и обогнав итальянца, а Зардини слегка приподнялся, довольный тем, что ирландец открыл собственное преимущество.

    Однако, когда Роше оглянулся через плечо, Зардини снова ударил ногой — быстро сократив расстояние в нескольких метрах между ними и снова попав вперед.

    На последних двух километрах Рош исчез, позволив Зардини вырваться наружу, когда он включил средний десятипроцентный уклон.

    Позади, погоня продолжалась стремительно — впереди Квятковски и возродившийся Виггинс во главе с товарищем по команде Дэвидом Лопесом, но Зардини не удалось остановить.

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

    Еще дальше Квятковски перешел на Рош и обошел его мощным финальным ударом, чтобы повысить его собственные общие амбиции, в то время как Виггинс финишировал пятым — сразу после Дилана Тьюнса (BMC Racing).

    Это оставляет GC широко открытым, с Зардини впереди, но гонка на время в Уайтхолле, Лондон, вероятно, окажется решающей, поскольку Виггинс и Квятковки все еще находятся в охоте.

    Tour of Britain 2014: третий этап — результат

    1) Эдоардо Зардини (Италия) — Бардиани-CSF — 4.35.02 часа
    2) Михал Квятковски (Польша) — Омега Фарма-Квикстеп +9 ”
    3) Николас Рош (IRL) — Тинькофф-Саксо +11”
    4) Дилан Теунс (BEL) — BMC Racing — ST
    5) Сэр Брэдли Уиггинс (GBR) — Team Sky +14 ”
    6) Джованни Висконти (Италия) — Movistar — ST
    7) Дэвид Лопес (ESP) — Team Sky — ST
    8) Себастьян Райхенбах (SUI) — IAM Cycling +16 ”
    9) Ион Изагирре (ESP) — Movistar — ST
    10) Леопольд Кениг (Чехия) — Team NetApp-Endura

    Общая классификация

    1) Эдоардо Зардини (Италия) — Бардиани-CSF — 11. 30.21 часов
    2) Михал Квятковски (Польша) — Omega Pharma-Quickstep +13 ”
    3) Николас Рош (IRL) — Тинькофф-Саксо +17”
    4) Дилан Теунс (Белоруссия) — BMC Racing +21 ”
    5) Сэр Брэдли Уиггинс (Великобритания) — Team Sky +24 ”
    6) Дэвид Лопес (ESP) — Team Sky — ST
    7) Ион Изагирре (ESP) — Movistar +26”
    8) Леопольд Кениг (CZE) — Team NetApp- Endura
    9) Себастьян Райхенбах (SUI) — IAM Cycling
    10) Джованни Висконти (Италия) — Movistar +37 ”

    Tour of Britain: Эдоардо Зардини лидирует с победой на третьем этапе, а Брэдли Уиггинс финиширует пятым | Новости велоспорта

    Последнее обновление: 10.09.14, 10:18

    Эдоардо Зардини оторвался от удара 1.3км от финиша

    Эдоардо Зардини из Италии вышел в лидеры Турне Британии после победы на финише на высшем уровне на третьем этапе в игре The Tumble соло, когда сэр Брэдли Виггинс оправился от падения и занял пятое место.

    Зардини изначально участвовал в атаке из трех человек в конце финального подъема, но позже перешел в соло-лидерство со вторым ускорением на 1,3 км, и его не удалось поймать.

    Гонщик Bardiani-CSF пересек залитую солнцем финишную черту в Южном Уэльсе на девять секунд впереди занявшего второе место Михала Квятковски и на 11 секунд впереди занявшего третье место Николя Роша.

    Виггинс был исключен из основной группы преследования чуть менее чем в 2 км от финиша, но товарищ по команде Team Sky Дэвид Лопес в конце концов пересек финишную черту на 14 секунд ниже победителя.

    Набрав десять дополнительных секунд для своей победы, Зардини теперь открывает 13-секундное преимущество над Квятковски, занявшим второе место, с отставанием на 17 секунд на третьем и Уиггинс на 24 секунды на пятом.

    «Я просто прошелся по нему»

    Виггинс сказал: «Я не обратил на них [нападавших] никакого внимания.Я знал восхождение, и я знал, что он вернется ко всем в конце, как вы видели — Роше и это действительно умерло. Я проходил это восхождение несколько раз и знал, что это сложно, поэтому я просто прошел его от А до Б.

    «Это все, ради чего нужно играть. Гонка на время [на этапе 8а] составляет 8 км, что похоже на трасса преследования, которая предпочтет меня по сравнению с другими гонщиками. Квятковски — хороший тайм-триаллист — она ​​будет напряженной. Пока она будет стоять в таком состоянии, у нас будут хорошие шансы.»

    На 179,9-километровом этапе гонщики совершили три подъёма по категориям в начале дня, прежде чем закончиться единственным финишом на вершине гонки в этом году, крутым подъёмом первой категории протяжённостью 4,1 км.

    Отрыв из шести человек в составе Марка МакНалли (Пост-цепная реакция), Томаса Стюарта (Мэдисон Генезис), Себастьяна Ландера (BMC Racing), Майкла Куминга (Рафа Кондор, JLT), Янто Баркера (Роли) и Мануэле Боаро (Тинькофф-Саксо). чтобы отойти в сторону и создать разрыв почти в три минуты, но они не смогли удержать преследующий пелотон, и последний из них был пойман с 6. Осталось 9 км.

    Сэр Брэдли Виггинс (слева) пересек финишную черту на 14 секунд ниже победителя на пятом месте

    Тинькофф-Саксо затем повел основную группу вверх по склонам к Тамбл, но как только подъем начался, Джек Бауэр (Garmin- Шарп) вырвался из стаи, за ними последовали Зардини и Крис Юул-Йенсен (Тинькофф-Саксо).

    Уиггинс отступает. то, что осталось от преследующей стаи, а Виггинс оказался брошенным во второй группе.

    Зардини сумел вернуться к утомляющему Роше, и, почувствовав, что он уязвим, итальянец атаковал и мгновенно открыл достаточно большой разрыв, чтобы гарантировать ему вторую победу в сезоне.

    Виггинс тем временем получил помощь от товарища по команде Лопеса, который был в первой группе погони, но не спешил ждать своего лидера, и действующий чемпион впоследствии хорошо сплотился, чтобы уменьшить свои потери и твердо занять место в общем зачете.

    Зардини сказал позже: «Я знал, что это восхождение имеет репутацию, возможно, лучшего в Британии, и оно оправдало свою репутацию. Это было очень сложно, но для меня сегодня это было прекрасное восхождение.

    « Я никогда не был в беде, когда ко мне подошел Николас.После атаки я стал наращивать свои усилия, потому что знал, что еще нужно сделать. Я позволил ему пройти, и, возможно, я пошутил, что немного устал, но на самом деле я все время чувствовал себя прекрасно и вскоре решил вернуться в атаку. Я чувствовал себя фантастически и смог насладиться моментом и всей поддержкой болельщиков наверху ».

    Результат третьего этапа

    1 Эдоардо Зардини (Италия) Бардиани-CSF, 4:35:02
    2 Михал Квятковски (Pol) Omega Pharma — Quick-Step, +9
    3 Nicolas Roche (Ire) Tinkoff-Saxo, +11
    4 Dylan Teuns (Bel) BMC, +14
    5 Sir Bradley Wiggins (GB) Team Sky, то же время
    6 Giovanni Visconti (Ita) Movistar, st
    7 David Lopez (Spa) Team Sky, st
    8 Sebastien Reichenbach (Swi) IAM Cycling, +16
    9 Ion Izagirre (Spa) Movistar, st
    10 Леопольд Кениг (Чехия) NetApp -Endura, st

    Общая классификация

    1 Эдоардо Зардини (Италия) Бардиани-CSF, 11:30:21
    2 Михал Квятковски (Польша) Omega Pharma — Quick-Step, +13
    3 Николя Рош (Ирландия) Tinkoff-Saxo, +17
    4 Dylan Teuns (Bel) BMC, +21
    5 Sir Bradley Wiggins (GB) Team Sky, +24
    6 David Lopez (Spa) Team Sky, то же время
    7 Ion Izagirre (Spa) Movi star, +26
    8 Леопольд Кениг (Чехия) NetApp-Endura, st
    9 Sebastien Reichenbach (Swi) IAM Cycling, st
    10 Giovanni Visconti (Ita) Movistar, +37

    USA Pro Challenge 2014, результаты этапа 7

    :90

    8329

    9018 47

    9018RIER

    S

    9018 Factory Racing

    9018 9018 9018 +44: 57

    901 88131

    901 88 25

    89

    9189

    2

    903 92

    : 38

    Garmin Sharp

    9:05

    9018

    Belly Belly Maxxis

    9018 8 74

    12188

    Велоспорт

    9018 9018 Condor JLT

    9018 208 Rapha Condor JLT

    2

    : 08

    9018 59:49

    Tanner 9018B

    Команда разработчиков KeeganBissell

    12188

    8

    Спорт CLap Команда

    9018 Команда разработчиков

    Команда разработчиков спортивной одежды DionHincapie

    Conorristian

    PORTER ElliottLapha Condor 9018 JLT

    :

    1 13 +7: 07 36 HOWES AlexGarmin Sharp 26 Garmin Sharp 20 30 2
    2 45 +42: 51 77 REIJNEN KielUnitedHealthcare Pro Cycling Team 28 UnitedHealthcare Pro Cycling Team 14 9
    3 21 +15: 48 6 SCHÄR MichaelBMC Racing Team 27 BMC Racing Team 8 12 ,,

    0:00

    4

    3 +1: 45 141 ȚVETCOV SergheiJelly Belly p / b Maxxis 25 Jelly Belly p / b Maxxis 7 7 ,,

    0:00

    5 4 +1: 49 11 MAJKA RafałTinkoff — Saxo 24 Tinkoff — Saxo 6 9208 9

    6 1 +0: 00 1 VAN GARDEREN TejayBMC Racing Team 26 BMC Racing Team 5 3 ,,

    0:00 9208 7

    48 +46: 37 123 ANTHONY JesseOptum p / b Kelly Benefit Strategies 29 Optum p / b Kelly Benefit Strategies 4 2 9208 9018:00

    8 22 +16: 50 2 BOOKWALTER BrentBMC Racing Team 30 BMC Racing Team 2 1 ,,

    89 0:00

    ,,

    89 0:00

    188 9 19 +14: 02 32 ACEVEDO JanierGarmin Sharp 28 Garmin Sharp ,,

    0:00

    10 43121 JONES CarterOptum p / b Kelly Benefit Strategies 25 Optum p / b Kelly Benefit Strategies ,,

    0:00

    11 25 DIDIER LaurentTrek Factory Racing 30 Trek Factory Racing«

    0:00

    12 12 Группа разработчиков 22 Группа разработчиков Bissell ,,

    0:00

    13 33 +27: 26 81 MEGÍAS JavierTeam Ново Нордиск 30 Команда Ново Нордиск ,,

    0:00

    14 10 +5: 35 17 Тинькофф — Saxo ,,

    0:00

    15 17 +9: 26 22 SCHLECK FränkTrek 9018 9018 Factory Racing«

    0:00

    16 2 +1: 32 31 DANIELSON TomGarmin Sharp 36 Garmin Sharp«

    17 68 +59: 48 78 SUMMERHILL DanielUnitedHealthcare Pro Cycling Team 25 UnitedHealthcare Pro Cycling Team«

    0:00

    18 6 +3: 31 101 ROSSKOPF JoeyHincapie Sportswear Development Team 24 Hincapie 9018 Sportswear Team Development39 0:00

    19 7 +3: 35 53 HUZARSKI BartoszTeam NetApp — Endura 33 Team NetApp — Endura:00

    20 18 +10: 01 158 Команда разработчиков ZEPUNTKE RubenBissell 21 Команда разработчиков Bissell ,,

    0:00

    154 Команда разработчиков EATON DanielBissell 21 Группа разработчиков Bissell ,,

    0: 0 0

    22 5 +3: 11 23 BUSCHE MatthewTrek Factory Racing 29 Trek Factory Racing ,,

    89 0:00

    11 +5: 51 95 KYER JulianTeam SmartStop 26 Команда SmartStop ,,

    0:00

    24 41 + 57 MÜHLBERGER GregorTeam NetApp — Endura 20 Team NetApp — Endura ,,

    0:00

    25 52 Велоспорт 31 Drapac Professional Cycling ,,

    0:00

    26 20 +14: 35 ЯРАМИЛЛО Даниэль Джамис — Хагенс Берман 23 Джамис — Хагенс Берман«

    0:00

    27 30 RR — Hagens Berman 24 Jamis — Hagens Berman ,,

    0:00

    28 9 +3: 44 5 HERMANS Racing Team HERMANS BenB9

    BMC Racing Team ,,

    0:00

    29 59 +55: 50 135 JACQUES-MAYNES BenjaminJamis — Hagens Berman8 35-189 ,,

    0:00

    30 42 +40: 49 54 KONRAD PatrickTeam NetApp — Endura 22 Команда NetApp — Endura«

    0:00

    31 54 +54: 11 98 TORCKLER MichaelTeam SmartStop 27 Team

    0:00

    32 31 +26: 41 55 MACHADO TiagoTeam NetApp — Endura 28 Team NetApp — Endura:00
    33 23 +19: 36 7 STETINA PeterBMC Racing Team 27 BMC Racing Team ,,

    0:00

    9018 9018 9018 9018 9018

    +23: 20 21 VOIGT JensTrek Factory Racing 42 Trek Factory Racing ,,

    0:00

    35 +20: 39 52 DE LA CRUZ DavidTeam NetApp — Endura 25 Team NetApp — Endura 0:14

    0:14

    36

    +58: 17 142 BURNETT IanJelly Belly p / b Maxxis 27 Jelly Belly p / b Maxxis ,,

    0:14

    37 7:32 18 POLJAŃSKI PawełTinkoff — Saxo 24 Tinkoff — Saxo ,,

    0:14

    38

    268 BRITTON RobTeam SmartStop 29 Team SmartStop ,,

    0:14

    39 15 +7: 49 28 ZTOIDL

    Factory Racing 26 Trek Factory Racing ,,

    0:14

    40 16 +8: 43 71 EUSER LucasUnitedHealthcare Procare188 Cycling Team ,,

    0:14

    41 32 +27: 02 12 ROGERS MichaelTinkoff — Saxo 34 Tink189
    39: Saxo 0:23

    42 50 +49: 39 74 DAY BenjaminUnitedHealthcare Pro Cycling Team 35 UnitedHealthcare Pro Cycling Team 1
    43 62 +58: 08 133 ПРИГОТОВЛЕНИЕ MattJamis — Hagens Berman 35 Jamis — Hagens Berman 1:14

    1:14

    44 60 +56: 26 33 DEKKER ThomasGarmin Sharp 29 Garmin Sharp 4

    08

    45 85 +1: 06: 19 3 EIJSSEN YannickBMC Racing Team 25 BMC Racing Team 9208

    4:09 46

    86 +1: 06: 24 43 КОРОЛЬ ЭдвардКэннондейл 31 Каннондейл ,,

    4:08

    47 76 ГРОМКО JeffUnitedHealthcare Pro Cycling Team 36 UnitedHealthcare Pro Cycling Team ,,

    4:08

    48 95 : 12: 07 8 ZABEL RickBMC Racing Team 20 BMC Racing Team ,,

    4:08

    49 24 37 37

    KING BenGarmin Sharp 25 Garmin Sharp ,,

    4:08

    50 78 +1: 03: 30 153 Команда разработчиков Команда разработчиков Bissell ,,

    4:08

    51 34 +28: 49 35 GAIMON PhillipGarmin Sharp ,

    4:08

    52 35 +30: 42 122 ANDERSON RyanOptum p / b Kelly Benefit Strategies 27 Optum p / b Kelly Benefit Strategies ,,

    4:08

    53 39 +35: 43 14 GULDHAMMER RasmusTinkoff RasmusTinkoff — Saxo ,

    4:08

    54 90 +1: 09: 15 15 ГАНСЕН ЙесперТинькофф — Саксо 23 Тинькофф — Саксо
    55 66 +59: 09 24 IRIZAR MarkelTrek Factory Racing 34 Trek Factory Racing ,,

    4:08

    +57: 08 26 ROULSTON HaydenTrek Factory Racing 33 Trek Factory Racing ,,

    4:08

    57103 +1: 16: 03 63 KERBY JordanDrapac Professional Cycling 22 Drapac Professional Cycling ,,

    4:08

    58 37:29 56 MENDES JoséTeam NetApp — Endura 29 Team NetApp — Endura ,,

    4:08

    59 27

    BUTLER Команда разработчиков спортивной одежды ChrisHincapie 26 Группа разработчиков спортивной одежды Hincapie ,,

    4:08

    60ANG 79 +1: 039018: 34 30 Cannondale ,,

    4:08

    61 65 +59: 07 38 MANNION GavinGarmin Sharp 23 Garmin Sharp ,,

    4:08

    62 81 +1: 04: 13 Zotiz Стратегии 37 Optum p / b Kelly Benefit Strategies ,,

    4:08

    63 38 +32: 57 127 ZIRBEL Стратегии 35 Optum p / b Kelly Benefit Strategies ,,

    4:08

    64 64 +58: 49 144 LEMUS belly 22 Jelly Belly p / b Maxxis ,,

    4:08

    65 57 +55: 20 126 SELANDER BjornOptum efit Strategies 26 Optum p / b Kelly Benefit Strategies ,,

    4:08

    66 82 +1: 04: 38 73 Команда 29 UnitedHealthcare Pro Cycling Team«

    4:08

    67 55 +54: 51 136 MILLER HARSAGENJAMIS Джамис — Хагенс Берман ,,

    4:08

    68 100 +1: 14: 19 91 KOCJAN JureTeam SmartStop 29 SmartStop 29 SmartStop 29 SmartStop 29 SmartStop ,,

    4:08

    69 71 +1: 00: 46 92 BELL ZachTeam SmartStop 31 Team SmartSt op ,,

    4:08

    70 99 +1: 14: 10 145 FISHER SteveJelly Belly p / b Maxxis 24 Belly J Maxxis ,,

    4:08

    71 76 +1: 02: 42 147 RATHE JacobJelly Belly p / b Maxxis 23 ,,

    4:08

    72 98 +1: 13: 42 137 ROMERO Luis AlbertoJamis — Хагенс Берман 35 ,,

    4:08

    73 47 +44: 58 13 БЕЛТРАН Эдуард Тинькофф — Саксо 24 Тинькофф — Саксо
    96 +1: 12: 11 58 SCHWARZMANN MichaelTeam NetApp — Endura 23 Team NetApp — Endura ,,

    4:08

    75189

    75189

    53 +53: 57 34 FAIRLY CalebGarmin Sharp 27 Garmin Sharp ,,

    4:08

    76 56 KOHLER MartinBMC Racing Team 29 BMC Racing Team ,,

    4:08

    77 89 +1: 06: 53 68 27 Drapac Professional Cycling ,,

    4:08

    78 36 +31: 33 65 NORRIS LachlanDra pac Professional Cycling 27 Drapac Professional Cycling ,,

    4:08

    79 43 +41: 08 114 HANDLEYor JRapha Rapha Condor JLT ,,

    4:08

    80 44 +42: 28111 CARTHY HughRapha Condor JLT 208 ,

    4:08

    81 67 +59: 26 64 LAPTHORNE DarrenDrapac Professional Cycling 31 Drapac Professional Cycling
    82 88 +1: 06: 34 62 CANTWELL JonathanDrapac Professional Cycling 32 Drapac Prof эссионал Велоспорт ,,

    4:08

    83 77 +1: 03: 16 47 SALERNO CristianoCannondale 29 29 29
    84 58 +55: 38 41 BASSO IvanCannondale 36 Cannondale ,,

    4189 9018

    +1: 01: 39 66 PHELAN AdamDrapac Professional Cycling 23 Drapac Professional Cycling ,,

    4:08

    86 51 51103 CARPENTER Команда разработчиков спортивной одежды RobinHincapie 22 Команда разработчиков спортивной одежды Hincapie ,,

    4:08

    87 93 +1: 10: 56 48 ВИВИАНИ ЭлияКаннондейл 25 Каннондейл ,,

    4:08

    155 ORAM Команда разработчиков JamesBissell 21 Группа разработчиков Bissell ,,

    4:08

    89 97 +1: 12: 9018 51 KÖNIG LeopoldTeam NetApp — Endura 26 Team NetApp — Endura 5:40

    5:40

    90 75OHOR: 01 488 9018 M MatejCannondale 19 Cannondale 6:49

    6:49

    91 87 +1: 06: 32 75 JONES dHealthcare Pro Cycling Team 35 UnitedHealthcare Pro Cycling Team ,,

    6:49

    92 37 +32: 29 151 Команда разработчиков Bissell ,,

    6:49

    93 73 +1: 01: 32 156 SWIRBUL ,,

    6:49

    94 83 +1: 05: 43 143 CARLSEN KirkJelly Belly p / b Maxxis 27 Jelly Belly

    11:06

    11:06

    95 113 +1: 32: 13 146 FRETER JohnathanJelly Belly p / b Maxxis 9018 9

    22 Jelly Belly p / b Maxxis ,,

    11:06

    96 101 +1: 14: 44 67 SULZBERGER

    SULZBERGER Bernard Drapac Professional Cycling ,,

    11:06

    97 80 +1: 03: 54 42 WURF CameronCannondale : 50

    12:50

    98 92 +1: 10: 37 27 WATSON CalvinTrek Factory Racing 21 Trek Factory Racing ,, 9000

    99 109 +1: 22: 57 44 KOCH MichelCannondale 22 Cannondale ,,

    12:50 9 0005

    100 94 +1: 11: 59 83 HENTTALA JoonasTeam Novo Nordisk 22 Команда Ново Нордиск 920 9000 9050 12:18 112 +1: 31: 59 85 AMBROSE ScottTeam Novo Nordisk 19 Team Novo Nordisk ,,

    12:50

    102 1:41:14 86 PERRY AaronTeam Novo Nordisk 26 Team Novo Nordisk ,,

    12:50

    103 107 87 PLANET CharlesTeam Novo Nordisk 20 Team Novo Nordisk ,,

    12:50

    104 114 +1: 37: 15 88189

    VERSCHOOR MartijnTeam Novo Nordisk 29 Team Novo Nordisk ,,

    12:50

    105 72 +1: 01188: 17K Oscar 25 Команда разработчиков спортивной одежды Hincapie ,,

    12:50

    106 91 +1: 09: 48 105 LEWISwear JoeHincapie Sports Team Команда разработчиков спортивной одежды Hincapie ,,

    12:50

    107 84 +1: 05: 51 106 MAGNER 106 MAGNER

    Команда разработчиков спортивной одежды ,,

    12:50

    108 104 +1: 17: 07 107 SKUJIŅŠ Команда разработчиков спортивной одежды TomsHincapie 23 Команда разработчиков спортивной одежды Hincapie ,,

    12:50

    ITH 109 49

    9018 21 Команда разработчиков спортивной одежды Hincapie ,,

    12:50

    110 108 +1: 20: 21 115 34 Rapha Condor JLT ,,

    12:50

    111 106 +1: 18: 26 117 PORTER ElliottLapha ,,

    12:50

    112 102 +1: 15: 54 124 9018 9

    CANDELARIO AlexOptum p / b Kelly Benefit Strategies 39 Optum p / b Kelly Benefit Strategies ,,

    12:50

    113 110 125 FRIEDMAN MichaelOptum p / b Kelly Benefit Strategies 31 Optum p / b Kelly Benefit Strategies ,,

    12:50

    114 105: 11 132 LEECE StephenJamis — Hagens Berman 22 Jamis — Hagens Berman ,,

    12:50

    115 111 VAN HOOYDONCK NathanBissell Команда разработчиков 18 Команда разработчиков Bissell ,,

    12:50

    DNF 113 CUMING MichaelRapha Condor JLT 23 Rapha Condor JLT
    DNF 116 MOSES ThomasRapha Condor 9018 9018 9018 9018 9018 9018 Rapha Condor JLT 9018 9018 9018 DNF 134 CRANE IanJamis — Hagens Berman 24 Jamis — Hagens Berman

    Саган в погоне за первой 1000-й победой в качестве чемпиона мира в Туре 9 в Абу-Дха

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

    Он ездил в тур по Абу-Даби и покажет там цвета. «Я заинтригован этой новой гонкой в ​​Абу-Даби; Велоспорту всегда приятно посещать новые места и заводить новых поклонников », — сказал он перед стартом в четверг.

    «Это будет моя первая гонка в майке чемпиона мира, и я сделаю все возможное, чтобы ее почтить».

    Саган выиграл золото в Ричмонде с великолепно рассчитанной атакой в ​​финале чемпионата мира. Успех с лихвой компенсировал недовольство соперников в этом сезоне и, как он надеется, стал катализатором, который позволил превратить гораздо больше подиумов в победы.

    «Наша цель — выиграть этап с Питером Саганом», — сказал спортивный директор «Тинькофф-Саксо» Тристан Хоффман, поставив перед собой высокие цели.

    «Эта гонка завершает сезон 2015 года, и мы входим в нее с надеждой оставить свой след в действии. Здесь будет не только приятно выиграть, но и будет особенным случаем, ведь Питер впервые будет ездить в своей радужной майке ».

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

    «Однако у Питера есть первоклассный руководитель в Беннати, и команда мотивирована».

    В этом году гонка была добавлена ​​в календарь, и в ней примут участие несколько лучших гонщиков и сильные команды. Они также будут надеяться завершить сезон на высоких и столь агрессивных гонках.

    За Саганом будут наблюдать не в последнюю очередь из-за его новой майки, но он также находится в превосходной форме.

    Хоффман оценил маршрут и объяснил основные моменты.

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

    «Если есть ветер, ровные участки могут стать очень твердыми. Мы должны быть в первых рядах, но мы увидим, каким будет наш точный подход в зависимости от того, как будут развиваться этапы ».

    Стартовые списки национальных чемпионатов Великобритании по шоссейным дорогам

    9

    Alex

    9018 (Catford CC Equipe / Banks) Equipe / Banks)

    SC Duranguesa)

    Hales

    Bikes 189 ILLI 9028 (ILLI)

    9018 9018 9018 Jonathan Condor208 JL Алистер Слейтер (JLT Condor)

    Холмс

    9 9018 (Metaltek Kuota Racing Team)

    9018 май

    928
    (Metaltek Kuota Racing Team)

    Cycling Team) 81

    One Pro Cycling

    Адам Кенуэй (Rale

    Richardswell 100

    90 188109

    119

    901 88 Эндрю Дислей (Team KTM)

    125

    132

    Team Wiggins

    ОАЭ) Чарли

    146 928 Toucy)

    Zappi Racing Team )

    Питер Киббл (Zappi Racing Team)

    1 Адам Блайт (Aqua Blue Sport)
    2 Марк Кристиан (Aqua Blue Sport)
    3 Эндрю Фенн (Aqua Blue Sport)
    4 Дэниел Пирсон (Aqua Blue Sport)
    5 Ангус Клэкстон (100% ME)
    6 Адам Хартли (100% ME)
    7 (100% ME)
    8 Reece Wood (100% ME)
    9 Марк Стюарт (Пост — ChainReaction)
    10 Александр Брейбрук (AVC Aix-En )
    11 Christopher Lawless (Axeon Hagens Berman CT)
    12 Nic McKibbin (Bath Cycling Club)
    13 Dexter Gardia s (BIKE Channel Canyon)
    14 Sam Lowe (BIKE Channel Canyon)
    15 Роберт Партридж (BIKE Channel Canyon)
    16 Alexandar Richards9 (Alexandar BIKE

    Channel 18)

    17 Макс Стедман (BIKE Channel Canyon)
    18 Harry Tanfield (BIKE Channel Canyon)
    19 Jake Womersley (BIKE Channel Canyon) 9289

    Лоупен

    Catford CC Equipe / Banks)
    21 Lloyd Chapman (Catford CC Equipe / Banks)
    22 Matthew Clements (Catford CC Equipe / Banks)
    23
    24 Callum Ferguson (Catford CC Equipe / Banks)
    25 George Fowler (Catford CC Equip e / Banks)
    26 Will Fox (Catford CC Equipe / Banks)
    27 Джошуа Хаас (Catford CC Equipe / Banks)
    28 James Equipe / Catford CC Бэнкс)
    29 Майк Рэгг (CC Luton)
    30 Деклан Хадсон (Clay Cross Road Team)
    31 Оливер Джонс (Cycle Team OnForm)

    Бен Хетерингтон (Cyclesport. se — Memil Pro Cycling)
    33 Лиам Бромили (Велоспорт Шеффилд Гигант Шеффилд)
    34 Николас Купер (DFL In-Gear Development)
    35/
    36 Джейми Флетчер (Ellan Vannin CC / Appleby)
    37 Karl Baillie (Giant Store Rutland / Wattbike)
    ren 38 9018 CC)
    39 Louis Modell (Hennebont Cyclisme)
    40 Джеймс Маклафлин (Hrinkow Advarics Cycleang)
    41 Леон- Ян Бибби (JLT Condor)
    43 Эдмунд Брэдбери (JLT Condor)
    44 Грэм Бриггс (JLT Con dor)
    45 Рассел Даунинг (JLT Condor)
    46 Мэтью Гибсон (JLT Condor)
    47 Джеймс Галлен 8 9018 9018 9018 9018 Steve JLT Кондор (JLT Condor)
    49 Эдвард Лаверак (JLT Condor)
    50 Томас Мозес (JLT Condor)
    51
    53 Кинси Макилкуэм (KTM Impsport RT)
    54 Крис Фэллон (Kuota — Spinergy — GSG)
    Leaderman (Leopard

    ) 55
    56 Эндрю Брюс (Leslie Bike Shop / Bikers Boutique)
    57 Джеймс Шоу (Lotto Soudal)
    58 Мэтт Кроншоу (Мэдисон Генезис)
    59 Джо Эванс (Мэдисон Генезис)
    60 Ричард Хэндли (Мэдисон Генезис)
    61 Мэдисон Генезис

    Мэдисон Генезис

    62 Тобин Хортон (Мэдисон Генезис)
    63 Грифад Льюис (Мэдисон Генезис)
    64 Джонатан МакЭвой Алекс (Мэдисон Генезис 9 Мэдисон Генезис 9
    66 Эрик Роусел (Мэдисон Генезис)
    67 Коннор Свифт (Мэдисон Генезис)
    68 Энди Браун (Metaltek Kuota Racing Team8

    70 Дэн Флиман (Metaltek Kuota Racing Team)
    71 Лиам Холохан (Metaltek Kuota Racing Team)
    72 Стивен Лоули (Metaltek Kuota Racing Team)
    73 Рис Ллойд (Metaltek Kuota Racing Team)
    75 Том Маззоне (Metaltek Kuota Racing Team)
    76 Берти Ньюи (Metaltek Kuota Racing Team)
    77 Джордж Пима (Джордж Пота) )
    78 Алекс Даусет (Movistar Team)
    79 Майкл Куминг (Neon-Velo Cycling Team)
    80 Elliott Porter (Neon-
    Томас Бейлис (One Pro Cycling)
    82 Уильям Харпер (One Pro Cycling)
    83 Георг e Harper (One Pro Cycling)
    84 Kristian House (One Pro Cycling)
    85 Джошуа Хант (One Pro Cycling)
    86 Thomas Stewart
    87 Сэмюэл Уильямс (One Pro Cycling)
    88 Питер Уильямс (One Pro Cycling)
    89 Джек Стивенсон (вне седла)
    Джонс (Polartec Fundacion Contador)
    91 Бен Джоугин (Pro Vision Race Team)
    92 Джон Арчибальд (Pro Vision Scotland)
    93
    94 Грант Мартин (Raleigh GAC)
    95 Fraser Martin (Raleigh GAC)
    96 Ryan Perry (Rale igh GAC)
    97 Тристан Роббинс (Raleigh GAC)
    98 Киран Брэди (Richardsons-Trek RT)
    99 Oliverons 18 Maxwell Джез Макканн (Richardsons-Trek RT)
    101 Joshua Outram (Richardsons-Trek RT)
    102 Люк Райан (Richardsons-Trek RT) Джордж Вуд 9 Джордж Вуд (Richardsons-Trek RT)
    104 Габриэль Каллэй (SEG Racing Academy)
    105 Стивен Уильямс (SEG Racing Academy)
    106 Spirit Burnost
    107 Эдвард Клеменс (Spirit Tifosi Racing Team)
    108 Дуглас Коулман (Spirit Tifosi Racing Team)
    Кристофер Дредж (Spirit Tifosi Racing Team)
    110 Стэнли Кеннетт (Spirit Tifosi Racing Team)
    111 Энтони Мойе (Spirit Tifosi Racing Team) 112 Passfield (Spirit Tifosi Racing Team)
    113 Патрик Кларк (Team B38 / Underpin Racing)
    114 Archie Cross (Team B38 / Underpin Racing)
    115 Team Kieran B38 / Underpin Racing)
    116 Марк Кавендиш (данные о командном измерении)
    117 Скотт Туэйтс (данные о командном измерении)
    118 Алекс Оти (команда 9018TM) Питер Барушевичус (Команда КТМ)
    120 Юджин Кросс (Команда КТМ)
    121
    122 Адам Робинсон (Team KTM)
    123 Fraser Rounds (Team KTM)
    124 Джулиан Варлей (Team 9018TM) Сэм Брэнд (команда разработчиков Novo Nordisk)
    126 Джонатан Диббен (Team Sky)
    127 Owain Doull (Team Sky)
    128 Tao )
    129 Питер Кенно (Team Sky)
    130 Люк Роу (Team Sky)
    131 Ян Стэннард (Team Sky)
    Команда Уиггинса)
    133 Эшли Деннис (Команда Уиггинса)
    134 Натан Дрейпер (Команда Уиггинс)
    135 Sa Мюэль Харрисон (Команда Уиггинса)
    136 Рис Хауэллс (Команда Уиггинса)
    137 Дилан Керфут-Робсон (Команда Уиггинс)
    138 К2018

    139 Christopher Latham (Team Wiggins)
    140 Robert Scott (Team Wiggins)
    141 Andrew Tennant (Team Wiggins)
    148
    143 Джои Уокер (команда Уиггинс)
    144 Оливер Вуд (команда Уиггинс)
    145 Бен Свифт (команда
    147 Брэдли Стоукс (Velo Schils — Interbike RT)
    148 Джеймс Уилкинсон (Vetrapo Cyc ling Team)
    149 Ryan Coulton (Колесная база Altura MGD)
    150 Джоэл Льюис (Колесная база Altura MGD)
    151 MGD

    Leviase 9018 9018 Leviase Moody 152 Alfie Moses (Wheelbase Altura MGD)
    153 Evan Oliphant (Wheelbase Altura MGD)
    154 Scott Auld (Zappi Racing Team)
    156 Пол Дабл (Zappi Racing Team)
    157 Оуэн Дадли (Zappi Racing Team)
    158 Бен Харди (Zappi Racing Team) 15189 9018 9189
    160 Fraser Turgoose

    Британский Марк МакНалли увеличивает лидерство в KoM, играя за Zardini t. одерживает сольную победу на The Tumble

    Британец Марк МакНалли продемонстрировал еще одно боевое выступление, чтобы укрепить свое лидерство в соревнованиях Skoda King of the Mountain: Эдуардо Зардини из Bardiani Valvole стал лидером гонки Friends Life Tour of Britain после решительной сольной победы на финише на вершине Tumble.

    МакНелли получил перерыв и, стабильно набирая очки на трех промежуточных подъемах, продолжил боевые действия, которые он видел до сих пор в каждом отрыве.

    Сэр Брэдли Виггинс из Team Sky ограничил свои потери на крутом финише за пределами Абергавенни, чтобы опередить лидера в генеральной классификации в пределах 24 секунд.

    На третьем этапе гонщики встретились в 179,9 км от Ньютауна на реке Северн и завершились финалом на вершине горы на The Tumble недалеко от Абергавенни.Между ними лежали три категорированных подъема на Долфор, Найтон и Нищий Буш, а также точки спринта Йодль в Лисвене, Абергавенни и Монмуте.

    В дневном отрыве участвовали четыре британских гонщика, Майк Каминг (Rapha Condor JLT), Том Стюарт (Madison Genesis), победитель серии Elite Road Янто Баркер (Team Raleigh) и участник гонки Марк МакНалли (An Post Chain Reaction). ) к ним присоединились профессионалы континентальной Европы Себастьян Ландер (BMC Racing) и Мануэле Боаро (Тинькофф Саксо).

    МакНелли был в гуще событий с первого этапа, в каждом перерыве гонки до сих пор и закончил день лидером конкурса Skoda King of the Mountains, заняв три вторых места на подъемах Долфор, Найтон. и куст нищего.

    Отрыв группы побега увеличился до двух с половиной минут, после чего отрыв начал падать — оставалось около 90 километров.

    Но временное затишье привело к тому, что свинцовый воск и убыль, прежде чем пелотон начал нажимать на педаль акселератора и начал неизбежный улов, поскольку потенциально решающий для гонки подъем The Tumble вырисовывался, греясь в лучах позднего летнего солнца.

    Боаро и Лендер разделили трофеи в спринтерских соревнованиях Йодель, Боаро сделал первый галоп в Лисвене, а Ландер выиграл в Абергавенни и Монмуте.

    После непродолжительной попытки Боаро и Лендера сбежать, Куминг контратаковал в одиночку, но вскоре к нему присоединились всадник Тинькофф Саксо и Стюарт, и, оставив меньше 40 километров, у троицы было две минуты и десять секунд на пелотоне. .

    Чувствуя опасность, команды претендентов на генеральную классификацию начали выходить вперед и преследовать, Марк Кавендиш сменил спринт на обязанности рулера, работая на своего главного соперника Михала Квятовски, а Team Sky скопила позади сэра Брэдли Виггинса.

    Вскоре лидерство упало, оставив меньше минуты на 25 километрах, и когда британский дуэт Стюарта и Куминга начал колебаться, Буро ушел в одиночку, проехав всего 13 километров, прежде чем гонка достигла основания The Tumble.

    С остатками дневного перерыва, оставшимися до конца 12 километров, Буро продолжал идти один, но был пойман за шесть километров, и битва при Кувырке началась.

    Британский Tao Geoghegan-Hart был доставлен к подножию подъема, но вскоре его затопили райдеры Tinkoff Saxo и Omega Pharma-Quick Step, которые выехали на крутые склоны у подножия подъема.

    К атаке Джека Бауэра из Garmin Sharp присоединился Зардини (Бардиани Валволе), двое идущих чисто по крутым склонам под деревьями.

    Но за три километра до конца Бауэр сел, оставив Зардини идти в одиночку с 15-секундным преимуществом на поле. Николас Рош (Тинькофф Саксо) вышел на лидирующую позицию, а пелотон оказался позади.

    Роше попытался сбросить Зардини, но итальянец вернулся за руль Роша, прежде чем атаковать с приближением огненных румян, всадник Бардиани соло прочь, чтобы одержать прекрасную победу, а вместе с ней и майку лидера Friends Life.

    Сэр Брэдли Виггинс, который был исключен из группы преследования, помог выйти на финишную прямую товарищ по команде Дэвид Лопес, финишировавший пятым и сохранивший контакт в генеральной классификации.

    После этапа Бен Свифт, занявший второе место в Лландидно и лидер по набранным очкам, прокомментировал выступление Team Sky и их перспективы на оставшуюся часть гонки.

    «Мы хотели сохранить Брэдли в споре и ограничить наши потери, — сказал Свифт, обращаясь к Team Sky. — Мы все вместе хорошо ехали.В «Кувырке» произошла небольшая суматоха, и мы немного потеряли друг друга, но Брэдли проделал отличную работу.

    «Это будет сложно, но после ферзевого этапа здесь следует вернуться к более регулярному формату, когда команда в желтой майке контролирует гонку. Omega Pharma — Quick-Step сегодня отлично поработала. Мы просто будем держаться как единое целое ».

    Четвертый этап в среду проходит 184,6 км от Вустера до Бристоля. Следите за обновлениями всех этапов Тура Британии на веб-сайте British Cycling.

    Результаты

    Третий этап
    Генеральная классификация после третьего этапа

    .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *