Русский
Русский
English
Статистика
Реклама

Футбол

Вера Глушкова Вирус кибернетики витал над городом Киевом

05.08.2020 20:10:52 | Автор: admin


Во второй части интервью музейному проекту DataArt старший научный сотрудник киевского Института кибернетики Вера Глушкова вспоминает, как жили студенты 1970-80-х, рассказывает о знаменитой Кибертонии, о футбольной кибернетике Валерия Лобановского и о том, что значит быть дочерью знаменитого ученого.

На фото Вера Глушкова (в центре) с семьей в Болгарии, слева ее отец академик Виктор Глушков. Первую часть интервью Веры Викторовны читайте здесь.

Студенческие будни


В какой момент стало понятно, что вы пойдете по стопам отца?

С самого начала. Может, я не сильно и хотела, мне нравились иностранные языки, но родители сказали: Надо идти туда.

То есть отец на вас повлиял?

Нет, он просто давал советы, никогда не заставлял, потому что считал, что человек должен выбирать сам. А вот мама наоборот.


Валентина Михайловна и Виктор Михайлович родители Веры Глушковой

Где вы учились после школы?

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

Как на вашей жизни сказывалось то, вы дочь Глушкова? Это помогало?

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

У нас на экономкибернетике учились в основном девочки. Когда переезжали из старого красного корпуса университета в новый кибернетический, нас часто посылали заниматься строительными и уборочными работами. Помню, отправили нас во двор после пары, дали по лопате в руки и сказали, что надо вырыть канаву. Ну а девочки что? Встали, двадцать сантиметров копнули и ля-ля-ля. Через полчаса приходит наш куратор Федор Хворостяный. Роста он был небольшого, мне по плечо. Посмотрел на это дело исподлобья, взял лопату и буквально за 15 минут вырыл канаву, которую мы полчаса ковыряли.


Здание факультета кибернетики Киевского государственного университета было построено в 19761978 гг. Источник фото: pastvu.com

Или другой эпизод. У нас очень долго не работало в новом здании факультета отопление. В корпусе было + 8 градусов, а мы сдавали экзамен профессору Белову, достаточно сложная математика была. Заходим, он и говорит: Все шубы сняли, потому что у вас там шпаргалки. Сняли, написали, стуча зубами, подходим с зачетками. Он их забирает и говорит: Пока не принесете справку от коменданта, что вы два часа отработали на уборке территории, зачетки не верну.

Такими советские студенческие будни были. Подметали улицы перед институтом, любили на овощные базы ездить. Работа не пыльная, а овощи и фрукты разрешали брать, сколько унесешь. В колхозы ездили помогать. Летом это очень неплохо было: на природе, продукты натуральные свежие, речка. А вот на 1-м курсе, помню, ездили в ноябре. Нас отправили на две недели спасать морковку и бурячок. Они померзли, снег выпал. Из-за холода мы спали не раздеваясь, в шубах. С утра вставали, ехали в поле и работали до вечера. Если морковку надо было только собирать ее трактор из мерзлой земли выкапывал, то бурячок я пыталась ногой выковыривать. Иногда по полбурячка отлетало. Когда совсем грязные стали через неделю, ночью вместо сна ездили домой мыться и с утра уже были на работе. Нормально все к этому относились.

Ремейк Кибертонии


Как строилось ваше обучение? Вы видели машины?

В корпусе библиотеки стояла М-220, и весь университет, кроме гуманитариев, ходил туда считать. Я очень благодарна своему преподавателю по программированию Бодрику, часто его вспоминаю. Пара по программированию была первой в субботу, и многие студенты на нее не ходили. Спать же хочется, тем более, у нас в те времена можно было безнаказанно пропускать до 60 часов. Помню, иду по коридору университета, ловит меня Бодрик и говорит: Глушкова, я, конечно, понимаю, что у вас будильник не работает, но, если не заработает ваша программа, зачет не поставлю. Программировать на Фортране я научилась.


M-220 полупроводниковая ЭВМ, разработанная в 1968 году. Производилась на Московском заводе счетно-аналитических машин и Казанском заводе ЭВМ до 1974 года

Каким был доступ к ЭВМ? Как обычно, сдавали перфокарточки через окошко?

Мы больше на реперфораторе работали, научились нарезать перфокарты вручную. Если просто отдать набивать, нужно выстоять большую очередь к окошку, да и процесс набивки был длительным. Поэтому сами бритвочкой дырочки нарезали, потом в реперфоратор клали, а под эту с дырочками целую перфокарту. Она уже ровно пробивалась. Если получится хоть немного криво, не прочитается. К концу я уже все коды знала на память. Еще моим тайным оружием была подружка Света. Очереди были большие, больше одного раза за день колоду не прогоняли, а Света обладала актерским дарованием могла плакать. Она заходила и с порога начинала рыдать: Нам не поставят зачет, если вы не пропустите наши колоды без очереди. И так по три раза в день.

Воспользоваться положением отца не считали возможным? Хотя бы на работе у него что-то посчитать, например?

Боже упаси! Отец на это никогда бы не пошел. Каждый должен заниматься своим делом, а у него их было столько, что просить его о чем-то желания не возникало. Если мы что-то делали, то для общего блага, а не для моего личного. Например, ремейк Кибертонии в Университете на день факультета.

1960 годы в СССР время расцвета разнообразных студенческих и научных капустников. В это время в киевском Институте кибернетики появилась сказочная страна Кибертония. Сначала это был новогодний вечер, затем начались гастроли с юмористическими выступлениями по разным площадкам Киева. Сотрудники института выступали в Театре юного зрителя, в Октябрьском дворце. Их снимало телевидение, о виртуальной стране Кибертонии писали украинские газеты. По сути, наш институт в те годы был одним из интеллектуальных драйверов страны.


Институт Кибернетики в Киеве, 1960-е гг. Источник фото: cyberua.info

Кибертонию на день факультета мы делали по образу и подобию. Подготовка начиналась за несколько месяцев до события, Оля, моя старшая сестра, ездила общаться с участниками Кибертонии 1960-х. По-моему, в день факультета 5 мая не учился весь университет все прибегали посмотреть, как кибернетики празднуют. У нас были парад, пародийная программа Время, аукцион, свои деньги кибы, мы их печатали целый месяц на перфокартах с четырьмя степенями защиты. А я и еще фальшивые деньги делала.

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


Пригласительный билет на новогодний вечер, сделанный в виде паспорта Кибертонии

Говорят, за кибы ту самую валюту кого-то наказали?

Владимира Петровича Шевченко, замдекана, вызывали в партком: Что там за деньги у вас?! Он сумел отбиться. Были мероприятия конференция, аукцион на которые можно было только за кибы пройти. Просто обычные деньги менялись в эквиваленте. В холле факультета стояли обменные пункты, в которых можно было также купить сувенир за перфокарточные деньги.


Банковские билеты Кибертонии иногда до сих пор всплывают на аукционах. Фото с торговой площадки auction.ru

Как-то все слишком демократично для 19701980-х годов.

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

БЭСМ-6 и первая персоналка


Когда вы впервые увидели ЭВМ воочию, каковы были ощущения?

Особых эмоций не помню. На БЭСМ-6 я стала ходить, когда писала диссертацию в 1984-м. Университет окончила в 81-м, потом с дочкой сидела она у меня родилась после 5-го курса. Когда вышла на работу, начала считать свою задачу. БЭСМ-6 замечательная машина, она как персоналка. Заходишь, работаешь и никаких проблем. А рядом у нас ЕС стояла. Там постоянно крики, слетающие барабаны, что-то не работает. У нас такого не было, одно удовольствие.

У вас были видеотерминалы?

Да, каждый сидел за своим.

Помните свой первый персональный компьютер?

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

Какой была первая персоналка на работе?

Первым пришел Нейрон, наш отечественный. Это были 1980-е. Так как вначале машина была одна, приходил на ней играть и работать весь отдел, даже по ночам люди оставались. Очень любили гонять Digger, даже чемпионаты по нему были. Рисовали на Нейроне рисунки, писали музыку, соревновались, кто лучше сделает программу. Шахматную, например.


Нейрон И9.66 советский IBM PC/XT-совместимый персональный компьютер. Разработан в Киевском НИИ Радиоизмерительной Аппаратуры в середине 1980-х годов, выпускался семи лет. Фото ПК из коллекции Сергея Фролова

Вирус кибернетики


Экономическая кибернетика, которой вы занимались, свежее на тот момент направление?

Очень многие направления тогда были новыми. В Институте кибернетики было, например, три медицинских отдела, один из отделов медкибернетики возглавлял Николай Амосов очень известный в СССР кардиохирург. Он делал операции больным с пороком сердца, были нужны аппараты. Кроме того, в институте он еще две темы вел. В частности тему моделирования личности.


Николай Амосов автор новаторских методик в кардиологии и торакальной хирургии, работ по проблемам геронтологии, искусственного интеллекта и планирования социальной жизни

Отец, если в мире появилось что-то новое, сразу создавал отдел или группу, и люди начинали по этим направлениям работать. Иногда сами направления для новых отделов определяли. Чего только в институте не было! Братья Владимир и Михаил Диановы сделали очень точные расчеты по комете Галлея. Были отделы химической кибернетики и прогнозирования политики сейчас это одно из моднейших направлений. Там с точностью до дня вычислили начало одного из арабо-израильских кризисов. Помню, отец радовался: Точно предсказали!

Отдельная история футбольная кибернетика. Занимался ею Валерий Лобановский, знаменитый тренер, у которого было техническое образование. Сначала он учился в Киевском политехническом, потом, когда в Черноморце играл, окончил политехнический в Одессе. Он первым в мире начал обсчитывать командную игру как модель. Как я понимаю, это была новая тенденция, потому что выжимать результат простым увеличением количества тренировок не получалось. Надо было что-то придумывать, и решили решать проблему математическим путем, оптимизировать игру как кибернетический объект.


И сам Виктор Глушков, и многие его сотрудники любили футбол. На фото в центре Наум Шор заведующий отделом негладкой оптимизации Института кибернетики

Тогда уже обсчитывали спортсменов из индивидуальных видов спорта. У нас первым этим направлением стал заниматься завкафедрой института физкультуры Петровский, который обсчитал Валерия Борзова выдающегося спринтера, чемпиона Олимпийских игр. И Петровский с помощью применения математических моделей выводил его на пик формы к важным соревнованиям. Кстати, он пришел к выводу, что не нужно увеличивать количество тренировок. Можно даже уменьшить, просто должен быть определенный ритм. Это дает гораздо больший эффект.


Валерий Лобановский и Олег Базилевич

В 1974 году Зеленцов, Базилевич и Лобановский создали научный центр при киевском Динамо и начали обсчитывать не только каждого футболиста, чтобы приводить его в оптимальную физическую форму на время матчей, но и стратегию, и тактику игры. Лобановский обратился за помощью к Глушкову, они пять часов разговаривали. Мне рассказывали, что отец предложил понятие динамический стереотип, касающееся наигранных ситуаций в футболе. Лобановский внимательно изучал игру соперников, учитывал все тонкости. Потом это все заносили в модель и обсчитывалось. Один аспирант Института кибернетики даже написал книгу с Базилевичем по поводу применения математической теории игр (это отдельная математическая дисциплина) для футбола.

В 1974-м они начали работать в этом направлении, а в 1975-м взяли Суперкубок УЕФА. В 1990-х Лобановский напишет, что мы изобрели футбольную кибернетику. Мой зять делал документальный фильм Лобановский навсегда, где Платини и другие известные футболисты много говорят о его интеллектуальном футболе. Иностранцы приезжали у него учиться. Как мы отмечали в одной статье, вирус кибернетики витал над городом Киевом.

Мемориальная комната


Чему была посвящена ваша диссертация?

Ее тема задача коммивояжера для движущихся объектов. Нынешние GPS-навигаторы, которые в машинах стоят, для статических объектов, а я впервые поставила задачу для динамических. Оптимальный объезд движущихся объектов. Кстати, в реферативном журнале математики писали, что подобная задача мною была поставлена впервые.

Когда защитились, какими проблемами занимались?

В 1991 году в связи с темой моей диссертации меня записали на программу СОИ Стратегическая оборонная инициатива это военный космос. Но Союз распался, и космос для нас, к сожалению, накрылся.

В дальнейшем я работала по Чернобыльской тематике. После смерти отца институт поделили на несколько научно-исследовательских центров. Я перешла в один из них к Марку Железняку. Сейчас Марк Железняк работает в университете Фукусимы по приглашению японской стороны, а тогда мы занимались Чернобылем. Три группы рассчитывали распространение радионуклидов по Днепру после Чернобыльской аварии: москвичи, ленинградцы и наши. Группа Железняка рассчитала точнее всех, она была лучшей по гидромеханике, потом ее приглашали на различные международные проекты. Мы участвовали в проекте Родос это разработка системы поддержки принятия решений по ликвидации последствий ядерных аварий в Европе. Я занималась программой эвакуации населения. Делалось это на деньги европейских налогоплательщиков, а курировали нас товарищи из Европарламента. Это было уже в 1990-х.

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

После кризиса конца 1990-х, когда у нас в Академии наук прекратили зарплату платить, был очень сложный период, а потом я начала заниматься историей вычислительной техники.
Записывала разных людей, к сожалению, многие из них уже ушли. Большей частью мы занимались историей ОГАС и АСУ, нашли документы 1973 и 1964 годов, по ним написано очень большое число работ. Это была основная тема. Потом стали захватывать футбольную кибернетику, искусственный интеллект

Мемориальная комната в институте как появилась?

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


Мемориальный кабинет Виктора Глушкова в Институте кибернетики

В этой комнате сохранилось рабочее место?

Каким оно было, таким и осталось. Там еще подарки хранятся в шкафах, документы. Очень много документов еще не разобрано, у меня просто времени не хватает и людей на это нет. По одной только IFIP восемь здоровых папок на английском языке. Удобно то, что все направления были собраны в одном месте. В Москве и Ленинграде все подобные работы были по разным учреждением разбросаны. Но Киевский институт кибернетики был универсальным.

В Новосибирске есть проект, посвященный академику Ершову. Они оцифровали и выложили весь архив, который сохранился.

Нам хотя бы ОГАС оцифровать! Там 700 страниц проекта 1973-го, 800 страниц 1980-го. И то проблема.


Вера Глушкова в редакции газеты Факты. Фото со страницы Веры Викторовны в Facebook

Живой Гугл


Расскажите о материальной стороне жизни вашей семьи.

Отец был абсолютным трудоголиком, от материальных изысков был далек. Если, что и привозил из поездок, то это относилось к нашему духовному развитию, например, пластинки или книжки. Сам очень любил технические новинки фотоаппараты, магнитофоны портативные.

Почему именно пластинки?

Я тогда уже в институте училась и увлекалась современной музыкой. Он спросил, что привезти, вот я и попросила пластинки. Он в них не разбирался, поэтому сопровождавшие его французы посоветовали, что купить. Помню тогда он из Франции Slade и Uriah Heep привез. Многие к нам приходили их слушать.

Какая у вас была книжная библиотека?

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



Поэзией отец увлекался?

Да стихи любил, мог декламировать часами. Высоцкого на память знал. Когда ездили в Болгарию он работать, а мы отдыхать читал нам наизусть юмористические вещи. Про Фишера, про Канатчикову дачу, Фауста на немецком читал, Пушкина, Блока, Брюсова любил. У него была феноменальная память. Говорил, что в 6 классе прочитал книгу по гипнозу, она ему не понравилась, но, когда он ее читал, понял, как надо тренировать память. Сам методику изобрел, запоминал по 20 страниц математического текста. Иногда мы разгадывали кроссворды. В Науке и жизни они были очень сложными, названия некоторых речек и городов на карте не найдешь, а он все знал. Это поразительно, конечно, живой Гугл.


На отдыхе вместе с членом-корреспондентом АН СССР Анатолием Стогнием

Вы говорили, что он любил походы.

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

Предельно дешёвая видеоаналитика для детских футбольных школ

01.02.2021 10:05:55 | Автор: admin


Привет, Хабр! Ещё до продажи Мосигры мы полезли в образование. Там оказалось чуть интереснее, чем могло показаться сначала, и на сегодня мы успели открыть 124 футбольных школы, киберспортивные секции, танцы, шахматы и всё такое. Карантин слегка подрезал нам работу до 70 активных точек. Тут надо сказать, что с учётом опыта розницы, в ДНК проекта сразу закладывали очень быструю масштабируемость, чтобы по возможности построить межгалактическую сеть дополнительного образования. А один из самых больших вопросов в такой ситуации как контролировать качество этого самого образования.

Вот футбольные тренировки. С одной стороны, конечно, у нас есть методология, которая частично на базе испанской, а потом нам её очень сильно доработали умные дядьки в РГУФК. По идее, она даёт некий стандарт, как и чему тренеры будут учить детей, но этого мало. Каждый тренер яркая индивидуальность. Это круто, но опасно: нужно как-то следить за прогрессом. Более того, это не только наша хотелка как организации, но и прямая хотелка родителей.

Родители в образовании обычно не чувствуют прогресса ребёнка. Есть, конечно, всякие турниры, отчётные концерты и годовые экзамены, но обратная связь длиной в полгода плохой план. Мы решили, что нужно автоматически генерировать отчёты с каждой тренировки. И вот тут мы подходим к тому, что обычно делается руками для профессиональной футбольной команды видеоаналитике действий игроков на поле. Садится человек и примерно за 50-100 долларов за час расшифровывает происходящее. Схема не масштабируемая: вот у нас в январе 2020 занималось 165 групп в среднем по 9 раз в месяц это будет от 75 до 150 тысяч долларов в месяц.

Но, поскольку мы живём в веке свёрточных нейросеток, можно сделать всё с дешманской камерой (но всё же fullHD 30 FPS) прямо на школьной тренировке. И, более того, мы это уже сделали до стадии беты.




Поскольку история началась в бедном на события 2018-м, сначала мы рассматривали носимые устройства. Получилось обсудить варианты с руководителем отдела носимых устройств Интела. Спецы сказали, что для масштабирования лучше подходит видеоаналитика, которая на момент начала 2019 смотрелась ещё немного подозрительно, но уже уверенно завоёвывала рынок. Я не представляю себе квартал в Омске или где-то на задворках Рио-де-Жанейро, где дети берут браслеты или жилеты по 100-200 долларов и играют в них. Зато очень хорошо представляю, как они крепят телефон в углу дворовой площадки, чтобы потом получить много интересной аналитики.

Примеры носимых жилеты Catapult PLAYR или браслеты за 20-25 долларов. Браслеты опираются на GPS, а мы тренируем в помещениях. Плюс устройства дают из-за этого самого GPS большую погрешность тестовые профессиональный PLAYR, полупрофессиональный браслет и любительский Zepp после пробежки в 5 километров показали разброс в примерно 20%. И это на улице. Ставить опорную станцию в помещении точно вообще никто не будет из-за сложности и цены. Забегая вперёд, скажу, что граница проходит очень чётко: поставить камеру на стойку 3,5 метра уже большая проблема для тренера, а вот на 2,5 м (мобильная фотостойка) уже вполне дело.

В общем, если хочется расти в сто или тысячу раз, то носимые устройства проигрывают видеопотоку. На этом этапе сразу же появился драфт технического задания, который мы показали трём разным подрядчикам в СНГ. Оказалось, в Омске есть очень хорошая компания ISS Art, но победила в нашем мини-тендере всё же Exposit из Гродно (РБ). Общая цель исследования была в том, чтобы понять, что можно вообще получить с одной камеры. Опять же, по результатам выяснилось, что камер всё же надо две, потому что иначе не получается нормально разбирать пересечения игроков и куча-малу на поле. Сейчас объясню. Теперь давайте перейду, собственно, к тому, как всё это работает.

Как всё это работает


Тренер берёт стойку и ставит на неё камеру. Сейчас высота между 2,5 и 3,5 метра.

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

Затем камера снимает матч. Тренер выгружает видеопоток на сервер и делает две важные вещи: размечает игроков и поле. На поле просто ставит координаты для привязки:



А вот с игроками интереснее. На первом этапе алгоритма на вход поступает единичный кадр видео, который пропускается через офигенную YOLOv4 (вот пост про неё), обученную на огромном датасете. Ёла умеет распознавать разные объекты 80 разных классов и рисовать вокруг них прямоугольники. Нам нужны люди, и их фигуры Ёла умеет искать быстро при достаточно высокой точности. Сразу скажу, что мы не дообучали сеть на отдельный подвид людей футболистов. Почему чуть позже, но сделать это ещё предстоит. Проблем с точностью нет, если камера имеет как минимум FullHD-разрешение.



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



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

Вот так это примерно выглядит:



id,model,time,x,y
1,Player #1,1,720.6555699,116.3949013
1,Player #1,2,717.6837681,103.9404428
1,Player #1,3,699.1052595,58.58709532
1,Player #1,4,690.485308,33.3260856
1,Player #1,5,682.9340908,10.84806003
1,Player #1,6,674.9020647,-7.132002268
1,Player #1,7,676.235805,-6.452270864
1,Player #1,8,676.7274432,-6.460374907
1,Player #1,9,663.3592791,-29.10869212
1,Player #1,10,647.6801409,-52.19268234
1,Player #1,11,623.5022147,-90.13981343
1,Player #1,12,612.7593122,-109.9416432
1,Player #1,13,610.0347813,-108.9674604
1,Player #1,14,597.8952811,-121.5757764


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



Тут надо сказать, что эта часть алгоритмов трекинга (до коллизии) тоже уже хорошо отработана человечеством. В камерах есть следящий автофокус, который умеет примерно ловить нужные объекты и вести их, даже если это велосипедист, который скрывается за столбами. В камеры эти алгоритмы, кстати, перекочевали из железных самонаводящихся ракет, то есть вычислительной мощности там не очень много. Мы же используем пакет DeepSORT (вот прекрасный пост про него). Если игрок бежит по полю один и не отнимает мяч, эта связка работает почти идеально. На практике в среднем раз в 3-4 секунды игрок теряется, потому что происходит пересечение на поле.

В первой задумке мы находили игрока по номеру на майке и вели дальше отсюда и до забора. Но это не сработало. То есть Google Tesseract OCR отлично ищет цифры, но дети не всегда спиной, плюс часто используют манишки.

После пересечения нужна реидентификация игрока. В идеальном мире для этого нужно, чтобы все игроки имели какой-то свой отличительный признак, который видно с любого ракурса. Специалисты заметили, что сзади у игрока номер и фамилия на спине, а спереди лицо на голове. Опять же, двадцать первый век, и быстро померить лицо по Бертильоновой системе вообще не проблема. Мы теперь называем это идентификация по лицу. На всякий напомню, что до появления фотографий было непонятно, как опознавать людей, поэтому им делали измерения вроде расстояния между зрачками и так далее, что подходило для идентификации, но не для аутентификации. С появлением первых серебряных фотопластин начали снимать, но преступники отчаянно сопротивлялись, корчили рожи и рыпались, что на выдержке около 30 минут вначале и 15 секунд уже на мокром процессе всё равно создавало море искажений. Тем не менее, технологии семнадцатого-восемнадцатого века отлично прижились в FaceID.

Но оказалось, что есть способ куда проще. Цветовая гистограмма игроков почти всегда разная. Как с 30-го ряда Лужников номер не видно, но можно опознать игрока по форме и цвету волос, комплекции и цвету кожи, так и у нас легко построить цветовой профиль и просто понять, кто и куда побежал после пересечения. Точнее, цветовая гистограмма позволяет создать и сравнить цветовой слепок игрока. А вот уже человекочитаемые комплекция, формы, поворот и прочие такие характеристики не играют роль в распознавании в алгоритме. Цвет волос, например, занимает слишком незначительную часть в итоговой гистограмме. Ещё цветовая гистограмма помогает группировать похожие визуально треки DeepSORTа на основании общей цветовой палитры. Это дало трекинг длиной 10-12 секунд непрерывно. И это для детской тренировки, а не для матча старшаков. В ситуации, когда на поле много агрессивно играющих людей, длительность трека куда ниже. Гистограмма служит поверхностным уровнем для DeepSORT'а, то есть обеспечивает контроль того, как отработала нейросеть. Ещё можно дополнять её последующей оценкой местом игрока на поле, поскольку те же защитники склонны играть ближе к своим воротам в среднем. Дальше планируем использовать обученную на размеченных данных Resnet для увеличения точности реидентификации.

Но 10-12 секунд это всё равно мало, потому что сейчас эти коллизии разбирает тренер вручную после тренировки. Именно поэтому нужно две камеры: если получать поток с этой и с той стороны столкновения, то можно очень точно сказать, что же произошло. Связано это с тем, что игроки непрозрачные, иначе бы DeepSORT легко справлялся бы. В общем, сейчас поддержка второй камеры у нас только на уровне она отвечает за другую часть поля, но дальше мы будем совмещать потоки, чтобы разбирать ситуации. Всё это планируется допилить к лету (но ничего конкретно не обещаю)

Вот нормальный трекинг, коллизия разобрана хорошо:



А вот проблема:



Собственно, если раньше тренер снимал каждого игрока для распознавания перед матчем, то теперь достаточно просто обозначить, где кто на стриме один раз, и ПО само разберётся.

Тут надо сказать пару слов про, собственно, про Exposit. Начали они с того, что принимали участие в стартапе Wizart, который можно увидеть в Петровиче или Wallpops в США. Снимаете комнату, нейросети распознают полы, стены и кошку, и можно дальше примерять разную отделку. Второй крупный проект у них был с фотографией бумажной ЭКГ и поиском критичных диагнозов. То есть они сначала приводили из плохой фотографии ЭКГ к норме, а потом искали паттерны заболеваний. Точность была выше 80%, то есть алгоритм вполне пригодный для клинического применения (и это на очень маленьком датасете). Но ближе всего им была история с торговым центром в Гродно, где они переделали счётчики посетителей на видеоаналитике. Для начала для теплокарт. Теплокарты, кстати, есть и в футболе, и часто содержат информацию о стиле игры. Вот пример.

Простите.

Тепловая карта Интера во втором тайме матча с Удинезе


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

Так вот. Если к лету у нас будет более-менее точный трекинг детей на футбольном поле, то мы получим инструмент контроля тренировок и игр. Более-менее точный это если алгоритм будет терять ребёнка раз в 3 минуты, уже подходит для практического применения, но мы надеемся с кросс-камерного алгоритма получить качество выше. Ну и надо немного допилить интерфейсы, потому что тренеру должно быть удобно.

Сейчас уже выгружается вот такое:



Да, сам пакет поставляется в докер-образе, разворачивается в k8s-среде с S3 для видео и картинок нарезки. Видео сейчас обрабатывается со скорость x3, то есть 10 минут видео обсчитывается со скоростью 30 минут на одной мощной виртуалке (GeForce GTX 1050 для YOLOv4 и DeepSORT, Intel Core i5-8300H 2.30Ghz (8 cores), ADATA SX6000LNP SSD). Очевидно, это тоже точка роста.

Много всё ещё зависит от камеры: сначала мы хотели использовать панорамные объективы с полем зрения почти 180 градусов, но сейчас смотрим в сторону 60-градусных (84-градусных) из-за падения качества и искажений при восстановлении до обычной картинки (нужно для привязки координат и распознавания).


SJCAM SJ4000 покрывает поле в две камеры с низкой опоры. Распознавание дальше 10 метров страдает, поэтому мы перешли сейчас к камерам с более узким полем зрения.


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

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

К чему всё это приведёт?


  • Во-первых, родитель будет видеть физический прогресс ребёнка. Речь про ту самую историю бегает быстрее, например. Это прям победа-победа, потому что выросшее на RPG поколение будет наблюдать, как их дети качаются от занятия к занятию. И я представляю, какое горение разных мест такой подход сквозных метрик может вызвать в обычном образовательном процессе, да.
  • Во-вторых, есть статистика матча. Если вы когда-нибудь играли в лазертаг, то знаете, как в конце матча мотивирует получить статистику и процент попаданий. Дети смогут получать эту выгрузку в формате, позволяющем гордиться и хвастаться. Для этого ещё нужно трекать мяч. К счастью, он сильно отличается от всего на поле. К несчастью, он довольно вёрткий. Мяч мы пока не трогали, планируем летом.
  • В-третьих, можно выделять паттерны упражнений, что важно для проверки соответствия тренировки методологии (до таких детекторов ещё далеко, но это вполне реалистичный запрос). То есть можно проверять, делает ли тренер то, что нужно. В сочетании со статистикой, это открывает нам огромные возможности от АБ-тестов разных методологий тренировки до подбора оптимальных упражнений под конкретных людей и команды.
  • Где-то не сильно далеко от детекторов (но очень далеко от текущего состояния) маячит автовыгрузка 1-минутного клипа с лучшими моментами матча конкретного ребёнка для родителей.
  • Ну и статистика по прогрессу каждого игрока от матча к матчу в перспективе поменяет систему скаутинга про-игроков. Мы же ещё в прошлом году замахивались на быстрое развитие, и развились бы, если бы не пандемия.


В общем, просто знайте, что то, что ещё лет пять назад казалось космосом, сейчас можно сделать дёшево и сердито для тренера. Нам в Метеоре, в отличие от профессиональных команд, не нужна 100% точная статистика, достаточно условных 90%, потому что это уже позволяет даже при игре во дворе получать внятную обратную связь очень быстро. Глядя на это всё, могу сказать, что потихонечку сбывается моя давняя мечта залезть в систему образования со здравым смыслом. Правда, пока до этого ещё далеко, и не факт, что прям точно получится. Но много чего точно можно заменить на скрипт )
Подробнее..

Проектный подход к детскому футбольному лагерю (и немного про сетевую депривацию)

26.03.2021 10:08:08 | Автор: admin


Как это ни странно, именно на лагере можно хорошо показать, как работают многие штуки в проектном управлении обычного бизнеса.

Пример. Наши тренеры в летних лагерях не дают детям пользоваться сотовыми телефонами больше полутора часов в день. Поначалу это вызывает страшные последствия, но затем сказывается на спортивной подготовке и командности. Тема продумана с лучшими умами РГУФК, как и другие части методологии обучения футболу, но сам факт современного ребёнка без телефона это, конечно, нечто. Особенно интересны разные возникающие проблемы.

Вот как бы вы решили ситуацию, когда 9-летний ребёнок не может уснуть без сказки? Он сейчас подошёл к вам и просит выдать ему телефон, чтобы родители позвонили ему в Телеграм и рассказали эту самую сказку. Проблема в том, что в лагере есть правило: телефонами можно пользоваться с 9:00 до 10:00 и с 21:10 до 21:45. А сейчас уже 21:52. Если дать ему телефон остальные дети увидят преференцию и будут расшатывать правила до победного. У детей обычно хорошо это получается, родители каждый день развивают в них навык тестировщиков. А если не дать телефон он не уснёт и будет очень сильно расстроен.

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

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

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



Тактический разбор игры

Что такое детский футбольный лагерь


Начнём с того, что это вовсе не лагерь. Дело в том, что к лагерю есть требования в нормативах, и написаны они для постоянных мест базирования пионеров. В основном там очень подробно описывается обустройство помещений, высота укладки дров в костры, выпалывание определённых видов растений с территории, демонтаж всей колючей проволоки, обходы территории на предмет досок с гвоздями и открытых люков (странно такое не делать), там же куча требований к медицине, куча стандартов допусков детей и персонала, осмотр на педикулёз раз в неделю, организация территории для купания, ролевая модель персонала, пачка документов на каждого и так далее. Всё это очень рационально и круто, явно содержит в себе все известные на момент написания стандарта косяки и так далее но при этом на практике всё это относится к стационарному объекту, постоянно принимающему детей. Чем, собственно, лагерь и является. А у нас непостоянные выезды то есть мы делаем сборы с проживанием на территории базы или гостиницы с футбольным полем. Всё это в таком случае считается выездным спортивным мероприятием. Не организаторы лагеря, а организаторы проживания (то есть база отдыха или детский оздоровительный лагерь) должны соответствовать требованиям по приёму детских групп. Но родители всё равно называют это лагерем (потому что термин очень понятный для них). При этом мы всё равно расширяем стандарты спортивного мероприятия и требуем большего, чем можно нужна справка об отсутствии контактов с инфекционными больными, справка по форме 079У, берём часть вещей из стандарта лагеря (например, в здании столовой обеспечиваются условия для мытья рук детей около обеденного зала или при входе в обеденный зал и места для раздевания детей), для детей организован круглосуточно питьевой режим и так далее.

Для родителей такое спортивно-оздоровительное мероприятие возможность передать ребёнка на 8-10 дней нам, знатно покутить это время и получить ребёнка обратно в более оздоровленном виде и с новыми друзьями. Если бы мы были в Китае, то продавали бы возможность познакомиться с кучей новых людей, которые позже станут часть социальной сети ребёнка ну, знаете, есть у нас в стране известный социальный граф людей, познакомившихся на дзюдо. Если бы мы жили в Голландии, то продавали бы это как оздоровительную программу, после чего ребёнок будет готов к следующему школьному году. Но мы живём в России, поэтому для родителей это возможность съездить в Крым или просто посидеть дома в непривычной тишине.

Для нас лагерь это во многом способ скомпенсировать несезон и заработать. Летом у детей каникулы, а поскольку футбольные секции находятся около школ или в самих школах, обычно загрузка тоже сильно падает. Вторично то, что лагеря и другие усиленные активности это часть подготовки сборных, что дальше может вылиться в профессиональную карьеру ребёнка. Но мы не фокусируемся на подготовке про-игроков: это нерационально и довольно жестоко по отношению к детям. Вот тут у меня больше деталей про это решение и его анализ. Если очень коротко спорт хорош как способ социализироваться, поддержать форму но плох как карьера, если сразу не замечены выдающиеся способности. Маржинальность лагеря выше маржинальности футбольных секций.

От классических сборов околагерное мероприятие отличается тем, что сборы обычно это хардкорный интенсив. Когда футболисты едут на сборы, это часто означает похудение на несколько килограммов для недостаточно тренированных в первую неделю (первичный жир, потом мышцы начинают весить больше жира), максимальные тренировки и адские нагрузки. Если повезёт поднять голову и увидеть природу хорошо. В случае лагеря это, скорее, развлекательная программа с упором на социализацию, которая поддерживается спортподготовкой. По методологии социальная функция всегда преобладает над спортивной.

С точки зрения бизнес-модели такие активности это ещё резкое увеличение LTV клиента. Ребёнок, который побывал с нами в смене, на порядок больше увлекается футболом (независимо от своего пола, комплекции и стартовой подготовки). В финмодели это означает, что он будет ходить до конца года, и ещё поедет в следующий такой отдых. Казуально ему просто понравится это хобби, и он дальше будет извлекать из него эндорфины.

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

У нас несколько смен в год, то есть можно выбрать слоты с 20 июня по 20 августа летом, и по одной смене весной, зимой и осенью. Обычно же футбольная академия делает один слот, и если в него семья куда-то уезжает, то ребёнок остаётся без футбола.

В смене от 12 (минимум) до 49 (пока максимум) детей. Живут они обычно в комнатах по 2 или 4 человека в зависимости от базы. Кстати, сразу забегая в раздел проектного траблшутинга: по трое селить нельзя, потому что в любом незначительном конфликте образуется ситуация двое против одного, что дальше ведёт к дисбалансу во внутренней политике. В отличие от авторегулирующихся политических систем, этот союз не успевает несколько раз поменяться, поэтому в рамках смены стабилен. Возраст от 6 до 13. Чтобы вы понимали, что такое 13 лет уточню, что на первый турнир после лагеря наш старший игрок пришёл с 15-летней девушкой. Тренерский состав был приятно удивлён. Особенно тем, что у тренера нет девушки, а футболисты вот уже приходят.

Управление заинтересованными сторонами


Если что, современные родители уже выросли с сотовыми телефонами и не понимают, как так можно отпустить ребёнка гулять на стройку бросать карбид в лужи, просто обсудив, что хорошо бы вернуться домой к ужину. Ну или просто хорошо бы вернуться. Дети же не видели мир без Интернета и постоянной связи, поэтому не представляют толком, как можно жить без тайм-лубрикантов. Это штуки, которые заполняют вам минимальные паузы в жизни. Например, пока вы едете по эскалатору в метро, можно просто смотреть по сторонам, а можно читать книгу, проверять ленту в соцсетях или играть.

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

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

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

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

Вот пример отчёта:
День второй
Ребята уже заметно освоились и сдружились. Тренировки прошли очень бодро и в интенсивном темпе. Перед завтраком была пробежка на свежем воздухе и зарядка в парах с комплексом упражнений. На утренней тренировке работали над координацией движения, приемом и передачей мяча. После тренировки ребята пошли в бассейн (было свободное плавание и соревнования по плаванию, где все ребята очень хорошо себя проявили). На вечерней тренировки провели разминку в стиле футбольного клуба Barcelona, после чего были упражнения направленные на удары по воротам. В конце тренировочного занятия поиграли в футбол в разных форматах 3x3, 2x2 и 1x1. Питание вкусное, полезное и все с удовольствием кушают, в отличие от первого дня, рацион хорошо подбирают. Досуг провели с настольной игрой Мафия, было очень весело и эмоционально. Зарядка сегодня проходила в форме игры салки. Выбирается 2-3 ведущих, которые должны салить остальных ребят, кого из ребят осалили должны замереть на месте и ждать помощи от других игроков, они в свою очередь могут спасти их дотронувшись рукой. После 30 секунд, тренер меняет водящих.


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



Следующий возможный шаг отмечать действия конкретных детей в общем отчёте, либо добавлять комментарий о конкретном ребёнке в приватной части отчёта только его родителям. Вообще-то это надо автоматизировать, используя ту самую аналитику, которую мы делаем в духе Сегодня Семён пробежал 7,2 километра, его точность паса 82%, но пока это выглядит избыточно. Ещё общая страница сборов ведётся Вконтакте, там можно обсуждать.

Управление конечными пользователями


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

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

Так можно сделать не с каждым видом деятельности. Например, очень тяжело объяснить ребёнку, что заправлять кровать весело. Поэтому для тупых повторяющихся действий используется игрофикация это идеальный инструмент для превращения рутины в чуть более терпимую. Главное в этом деле не делать сложную систему там, где это не нужно. После ряда экспериментов выяснилось, что хорошо работает система 5 баллов Гриффиндору!, интуитивно понятная для детей. Но методология не предполагает конкуренции между двумя или четырьмя группами детей, мы постоянно перемешиваем составы команд и, вообще-то, формируем одну большую команду в конечном итоге. То есть у нас тут не PvP-лагерь, а, скорее, PvE. В общем, после ряда упрощений это стало просто системой получения баллов за порядок (почти как премии продавца в магазине настолок): заправил кровать держи балл. Почистил зубы держи балл. Команда выиграла в Что, где, когда с футбольными вопросами вечером все победители получают по баллу. Выиграли матч всем по баллу. Понятно, что есть уязвимость в том, что ребёнок может отстать и решить, что баллы ему не нужны и перестать равняться на хорошее поведение. Но практика показывает, что даже самые отмороженные товарищи, чётко просекающие такие психологические манипуляции, идут в районе 60-70% от возможного максимума. Мы стараемся не фокусироваться на личном соперничестве, а просто показываем эти баллы родителям. Детям до примерно 8-10 лет очень важно отношение родителей. А дети в 10-13 лет уже хотят показать, что они крутые сами, и ищут способы эти баллы взять для этого.

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

Общий распорядок дня
07:30 Подъем
07:30-07:50 Гигиенические процедуры
07:50-08:00 Дорога от корпуса до поля/зала
08:00-08:30 Зарядка
08:30-08:40 Дорога от поля до столовой
08:40-09:10 Завтрак
09:10-09:15 Дорога от столовой до корпуса
09:15-09:30 Общение с родителями по телефону
09:30-10:10 Настольные игры и творческий мастер-класс Мой футболист: придумать дизайн, логотип, название формы футболиста, и раскрасить картинку в соотвествии с этим. Придумать имя игроку.
10:10-10:20 Сбор на тренировку
10:20-10:30 Дорога от корпуса до поля
10:30-12:30 Тренировка
12:30-12:40 Дорога от поля до корпуса
12:40-13:00 Гигиенические процедуры
13:00-13:05 Дорога от корпуса до столовой
13:05-13:45 Обед
13:45-13:50 Дорога от столовой до корпуса
13:50-15:50 Дневной отдых. Чтение
15:50-16:00 Полдник
16:00-16:40 Задания на сплочение коллектива. Сегодня совместное обсуждение тактики, необходимо начертить схему 2 команд, написать свой звёздный состав любимых игроков, придумать название команды и написать с каким счетом закончится встреча.
16:40-16:50 Сбор на тренировку
16:50-17:00 Дорога от корпуса до поля
17:00-18:30 Тренировка
18:30-18:40 Дорога от поля до корпуса
18:40-19:00 Гигиенические процедуры
19:00-19:05 Дорога от корпуса до столовой
19:05-19:35 Ужин
19:35-19:45 Дорога от столовой до места проведения вечернего досуга
19:45-20:45 Вечерний досуг (футбольный квиз и затем лепили талисман удачи из пластилина)
20:45-21:10 Собрание. Выставление оценок за день
21:10-21:45 Общение с родителями по телефону
21:45-22:00 Гигиенические процедуры
22:00 Отбой




Досуговые блоки всё время разные, мастер-классы тоже. Есть театр, караоке-баттл, дискотека. Много настолок, продвинутые тактические занятия по футболу, просмотр спортивного фильма, просмотр футбольного матча. Очень хорошим форматом, кстати, оказался просмотр матча или фильма с комментариями тренера (ну и вообще это интересная тема). Например, у меня было так: можно смотреть Крокодила Данди как приключенческий фильм, а можно после поездки по Северным территория Австралии понять, сколько там пасхалок, стёба над местным культурным кодом и чёткого показа тонких нюансов жизни в NT и пояснять это зрителям. Ну вот примерно так же тренер может объяснять матч в разрезе того, что знают и умеют дети, указывая, на что стоит обратить внимание. В общем, он как хороший стример, только тренер.

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

Ещё один способ превратить любую скучную деятельность в интересную это внести дух бунтарства и сломать часть устоявшихся правил. В этом плане я безумно обожаю книгу Школа для негодяев прекрасного Денни Кинга (такого Гая Ричи мира литературы) про то, как преступники воспитывали преступников. Разумеется, я ни в коем случае не рекомендую так делать. Категорически. Но пример мета-игры прекрасен:

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

Бочка на полную катушку воспользовался случаем. Будучи самым жирным и медлительным куском дерьма в школе, который всегда приходил последним, он решил извлечь выгоду из того, на что мог повлиять, а именно на исход кросса Поначалу он убирал только тех, кто ему не нравился (в том числе, так и норовил зацепить меня) и старался помешать самым быстрым бегунам, таким как Шпала, Рыжий, Тормоз, Трамвай, Конопля и Котлета из комнаты А. Кто-либо из них выходил в лидеры каждый день, а Бочка регулярно пытался лишить их законной победы Наверное, это продолжалось бы еще долго, если бы Трамвай не подал пример, которому позже последовали другие. Как-то перед началом кросса Трамвай сунул Бочке шоколадку в обмен на обещание его не трогать. Бочка охотно согласился, а за вторую обещанную шоколадку придержал самого серьезного соперника Трамвая и преподнес тому на блюдечке победу, освобождение от подтягиваний и обжигающе горячий душ.

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


Разрешение конфликтов


Каждый риск проекта обычно записывается заранее и управляется. Можно попытаться его снять (например, если вы едете в Африку с техникой, стоит взять второе устройство, чтобы не остаться без всего сразу), можно попытаться его минимизировать (хорошая привычка забирать все фотографии с дрона после каждого полёта), можно проигнорировать его и заложить в цену (таких будет несколько, и это уже почти страховой скоринг в финмодели) и так далее. В общем, есть принципы управления рисками, и эти принципы требуют умения их описать, плюс оценить вероятности возникновения. Но общий подход такой: лучше включить параноика, накидать версий и сделать что-то заранее, чем быть оптимистичным счастливо улыбающимся идиотом.

Первый предсказуемый конфликт это ребёнок хочет домой. Обычно пик случается в первый вечер, когда родители безвозвратно уехали за 100-150 километров (был отель Велна в Подмосковье) или же вообще в Москву при том, что сборы в Сочи. Ситуация сглаживается, если место поближе к городу например, родителям нравится, если точка за 100 километров от Москвы: можно приехать на выходных и посмотреть, как там ребёнок. В этом году будет парк-отель Покровское в 40 км в лесу около озера и Софрино в 30 км. Причём в Софрино ставим эксперимент с совместным размещением родителей в четырёхзвёздочном отеле, они у нас тоже будут тренироваться, если захотят. Плюс танцы, плюс анимация от отеля. Третья база в Сергиевом Посаде в 70 километрах от Москвы.

Если мы говорим не про то, что родители уезжают, то для многих детей это вообще первое более-менее длительное расставание и первый лагерь. И переносят они и его, и сразу новую среду болезненно. Те, кто приезжает второй-третий раз (а таких уже много), наоборот, вполне спокойны и предвкушают отдых. Историю про сказку вы уже знаете. Более яркий пример маленький парень поехал без родителей, плакал и домой просился в первый день (как и многие). Родители, с одной стороны, переживали за него и боялись отпускать, с другой понимали, что это нужно. Тренер (вожатый подготовка вожатого включает психологию) заранее проговорил с ними эту ситуацию. В конечном итоге родители приняли, что это нормально, и не приехали в панике его забирать в первый же вечер после его звонков о том, как всё вокруг ужасно. В других случаях, бывало, приезжали, да, один раз даже забрали ребёнка. Вторая важная вещь у тренера была заготовка для личной беседы. Лионель Месси, известный футболист, в 15 лет уехал вообще за океан. Если эту историю правильно подать, ребёнок войдёт в состояние я тоже так могу и, похоже, эта история сработала.

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

Ещё если лагерь близко, мы стараемся разбивать смену родительским днём. Это нужно не только детям, но и родителям, чтобы они вникли в то, что происходит, всё осмотрели лично в проде и заглянули на кухню. Кульминация этой истории дружеский матч детей против пап. Тут важное снятие конфликта это не ставить родителей и детей в одну команду, потому что дети уже в 6 лет знают, что такое правильный пас, а родители в свои 35 уже нет. И чтобы не было обид на то, что папа не очень командный игрок, надо играть не с ним в команде.

Телефоны. То, что они будут два раза в день по расписанию оговаривается сразу. Остальное время телефоны заперты в вожатской комнате. Обычно (если программа интенсивная) дети это воспринимают более-менее нормально, но бывают исключения. Телефон это возможность связаться с родителями, и там же любимые игры. У нас был ребёнок с серьёзной зависимостью от игры Brawl Stars. Как потом выяснилось, на фоне игровой депривации он вёл себя спокойно, улыбался, шёл на контакт с другими детьми и параллельно развивал очень продуманную кампанию по давлению на бабушку. Не на родителей, с которыми говорил тренер, а именно на бабушку. В итоге она и приехала его эвакуировать, что доставило нам некоторые сложности. К счастью, разобрались.

Отсутствие телефонов рождает в первые дни ещё несколько следствий, которые чётко показывают разницу между поколениями. Например, тренер как-то пропустил момент, что дети начиная лет так с 5-6 способны любой прибор превратить в средство связи. Возможно, вы помните уязвимости терминалов оплаты, которые через справку Винды пускали в большой Интернет. У нас дети быстро поняли все профиты телевизора, который принесли для показа футбольного матча вечером, что стало сюрпризом для тренеров.

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

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

Уборка и гигиена. Дети не всегда убираются самостоятельно, не всегда понимают, зачем мыться и так далее. Особенно те, кто воспитывается при деятельном участии бабушки, балующей напропалую. Тут работает всё и пример других детей, и система баллов (она даёт навигацию, что делать) и тренер-вожатый, который объясняет, что должен делать взрослый мужчина сам. Дети очень хотят стать взрослыми мужчинами и слушают его.

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

Конфликты между детьми. У нас не было конфликтов между младшей и старшей группой, основные сюжеты развивались между сверстниками. Для дедовщины времени смены не хватает, для иерархии дети не того поколения (они больше заинтересованы в сотрудничестве), но показать свою крутость хотят почти все парни. Самый яркий конфликт был между двумя соседями по комнате. Началось с того, что родители связались с вожатым и сказали, что хотят забрать парня домой. Началось расследование инцидента: вожатый подготовил тактику переговоров, вышел на психологическую беседу, вытащил всё негодование. Негодовал он по двум причинам: 1) сосед по комнате доставал его, оскорблял и прятал вещи, 2) утренняя пробежка была слишком тяжёлой и портила весь день. Поговорили с соседом, его родителями, перевели его в другую комнату (отдельную, размещение позволяло). На следующую пробежку передвинули чуть по времени. Во-первых, на неё вышли все тренеры, чтобы парень видел, что они бегут с ним. Во-вторых, это было время, когда по тому же маршруту те же мучительные долгие 8 минут бежали девчонки-гимнастки. Это решило все проблемы. Начиная с пятого дня он бегал быстрее всех и дольше всех среди сверстников на поле.

Интересно, что дети при конфликтах на поле никогда не дерутся. Даже если кого-то задирают, предпочитают спокойно звать медиатора (тренера). Это прямо очень нехарактерное поведение для моего поколения. Тренеры говорят, что дети при этом не решают мелкие проблемы сами, а всегда хотят, чтобы их рассудила третья сторона. Возможно, в этом что-то есть.

Нет интереса к спорту. Знаю, для спортивных сборов звучит странно, но такое случается. 90% детей горят футболом, но попадаются и те, кого родители отправили развивать командность и физическую форму, потому что так надо. Первый случай был с товарищем, который в свои 10 лет был тяжелее тренера: родители надеялись как-то поправить этот факт. Естественно, и бегать, и тренироваться ему было тяжело. Кончиться это могло либо как с рядовым Кучей (по Макаренко наступлением коллективной ответственности), либо же как-то иначе. Тренеры, к счастью, просчитали ситуацию и нашли ему подходящего сверстника, который был легче, но показывал такие же спортивные результаты. Пара слов, и вот он уже чувствует, что может потому что надо чуть-чуть постараться, и превзойти этого товарища. Так до конца смены они и играли друг с другом в футбол, тренировались вместе и позже стали друзьями.

Кто-то просто выполняет нормативы удовлетворительно, но находит интерес в другом. Например, есть парень, который играет так себе, но в остальном душа компании и крутой лидер. Важно проработать часть, где авторитет зарабатывается не только на футбольном поле. Очень многих детей узнали с другой стороны. Кто-то умеет круто танцевать, кто-то внезапно вложился в театральную постановку с ужасной серьёзностью, тактически её проанализировал и предложил стратегию победы любой ценой, кто-то рвал всех в интеллектуальных играх и тактике, и так далее. Но, конечно, футбол тоже надо делать развлечением, а не обязанностью. Ещё один парень в очках в конце смены сообщил нам, что Теперь я готов полюбить футбол на 60%. Это круто.

NPS по Тарусе 2020





Ну и, конечно, непредвиденные ситуации. У нас самым смешным было то, как у ребёнка выпал зуб. Это нормально, молочные зубы часто так делают. Проблема в том, что это был маленький ребёнок, и он на полном серьёзе ждал молочную фею, в которую верил куда больше, чем в Конституцию РФ. Он показал зуб тренеру и поделился планом положить его под подушку как обычно. Тренеру пришлось срочно связываться с родителями, узнавать стандартную процедуру визита зубной феи, доставать конфету, разрабатывать план операции по скрытному проникновению и осуществлять замену зуба на эту самую конфету.

Немного про финмодель


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

Маленькая смена весной или зимой для родителя стоит от 25 до 30-32 тысяч рублей, летние дороже, около 40-45 тысяч (Сочи с вылетом дороже). День стоит около 4100 при 3-местном размещении. Зимой есть пик по цене с 2 по 10 января, когда ценник проживания выше, потому что базы и отели заняты отдыхающими. Следующие смены с ценами вот здесь. Отчёты с прошлой тут Вконтакте.
Подробнее..

Организуем собственный мини-тотализатор на матчи ЧЕ 2020 по футболу

07.06.2021 10:04:02 | Автор: admin

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

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

Механика

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

Пример

За матч дается 100 очков, и он завершился победой хозяев со счетом 3:1. Один участник поставил на счет 3:1, еще 2 участника на счет 2:0 и 4:2, и еще 3 участника на счет 1:0, 4:1 и 5:1. В сумме они набрали 10 баллов (1 * 3 + 2 * 2 + 3 * 1). Таким образом первый участник получит 30 очков (100 / 10 * 3), а другие по 20 и 10 очков, соответственно.

Такая механика игры мотивируют участников не только угадывать результат игры, исходя из сил футбольных команд, а также угадывать на какой результат сделают ставки другие участники. Например, если в матче Венгрия - Германия 9 человек поставят на гостей, а только один на хозяев, то в случае победы Венгрии он сорвет джек-пот и получит все 100 очков, резко вырвавшись вперед. Правда на практике это иногда приводило к тому, что большинство людей ставили именно на аутсайдера, рассчитывая, что все сделают ставку на фаворита. Особенно сильно это проявлялось в конце турнира, когда участникам с небольшим количеством очков хотелось в конце вырваться вперед за счет джек-потов.

Также мы решили сделать, чтобы количество очков за матч возрастало к концу турнира, чтобы у аутсайдеров не терялся интерес. Так за групповой раунд мы начисляли 100 очков, за финала - 200, четвертьфинал - 300, полуфинал - 400, а финал стоил 500 очков. Благодаря такой схеме, самая жара начиналась именно к концу турнира, и иногда, даже с последнего места, за несколько последних матчей кто-то вырывался на первые места.

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

Чтобы сделать игру более азартной можно организовать внутренний банк, куда все участники скинут какую-то сумму, а затем он будет поделен между победителями всего турнира. Можно, например, чтобы победитель забирал 50% всего банка, второе место - 30%, а третье - 20%. Количество призовых мест можно увеличить, если участников много, чтобы в конце турнира был интерес для тех, кто находится внизу таблицы.

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

Организация турнира

Итак, что нужно, чтобы организовать у себя в офисе турнир ? Прежде всего нужна программа с веб-интерфейсом. Ее мы быстро сделали на открытой и бесплатной платформе lsFusion. Нельзя сказать, что там просто идеальный пользовательский интерфейс, но для организации игры нам было достаточно. Программу можно установить как на своем сервере (но нужно, чтобы она была доступна извне, так как матчи обычно проходят в нерабочее время), так и воспользоваться уже установленной программой на нашем выделенном сервере. Второй вариант не требует никаких дополнительных действий, поэтому я сначала расскажу именно про него.

Точка доступа в программу находится по адресу : https://euro.lsfusion.org. В ней можно одновременно проводить сколько угодно турниров. Заходить в систему можно как с настольного компьютера, так и с мобильного или планшета.

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

Все поля обязательные для заполнения, но в них можно заполнять что угодно. Проверки email не проводится, но если его указать неправильно, то невозможно будет восстановить пароль. Логин должен быть глобально уникальный. В самом турнире будут показываться только логин, имя и фамилия. Поэтому желательно их заполнять таким образом, чтобы остальные участники могли определить кто есть кто (но не обязательно вводить реальные личные данные).

Таким же образом должны зарегистрироваться все остальные участники. После регистрации участника организатор может добавить его в свой турнир нажав кнопку Добавить игрока на форме Таблица :

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

В остальном ответственность организатора ничем не отличается от участников. При входе в программу открываются две закладки :

Форма "Ставки"Форма "Ставки"

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

Форма "Таблица"Форма "Таблица"

Здесь участник может посмотреть итоговую таблицу по набранным очкам в режиме реального времени.

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

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

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

Установка на собственный сервер

Для установки потребуется виртуальный сервер под Linux с 2ГБ памяти.

Сначала нужно установить платформу lsFusion, как указано в этой инструкции.

Затем создать в папке /var/lib/lsfusion файл с именем Euro2020.lsf и поместить туда следующий код :

MODULE Euro2020;REQUIRE Authentication, Time;CLASS Team 'Команда';name 'Название' = DATA ISTRING[50] (Team) IN id;FORM team 'Команда'    OBJECTS t = Team PANEL    PROPERTIES(t) name        EDIT Team OBJECT t;FORM teams 'Команды'    OBJECTS t = Team    PROPERTIES(t) READONLY name    PROPERTIES(t) NEWSESSION NEW, EDIT, DELETE         LIST Team OBJECT t;CLASS Match 'Матч';dateTime 'Начало матча' = DATA DATETIME (Match) NONULL IN id;started (Match m) = dateTime(m) < currentDateTime();CONSTRAINT CHANGED(dateTime(Match m)) AND PREV(dateTime(m)) AND NOT DROPPED(m IS Match) MESSAGE 'Запрещено изменять время начала матча';homeTeam 'Хозяева' = DATA Team (Match) NONULL;nameHomeTeam 'Хозяева' (Match m) = name(homeTeam(m)) IN id; awayTeam 'Гости' = DATA Team (Match) NONULL;nameAwayTeam 'Гости' (Match m) = name(awayTeam(m)) IN id; homeScore 'Результат (хозяева)' = DATA INTEGER (Match);awayScore 'Результат (гости)' = DATA INTEGER (Match);homeScore 'Ставка (хозяева)' = DATA INTEGER (Match, CustomUser);awayScore 'Ставка (гости)' = DATA INTEGER (Match, CustomUser);home 'Победа (хозяева)' (Match m) = (GROUP SUM 1 IF homeScore(m, CustomUser c) > awayScore(m, c)) IF started(m);   tie 'Ничья' (Match m) = (GROUP SUM 1 IF homeScore(m, CustomUser c) = awayScore(m, c)) IF started(m);away 'Победа (гости)' (Match m) = (GROUP SUM 1 IF homeScore(m, CustomUser c) < awayScore(m, c)) IF started(m);startedHomeScore 'Ставка (хозяева)' (Match m, CustomUser c) = homeScore(m, c) IF started(m);  startedAwayScore 'Ставка (гости)' (Match m, CustomUser c) = awayScore(m, c) IF started(m);  hasBet 'Сделана ставка' (Match m, CustomUser c) = homeScore(m, c) AND awayScore(m, c);countBets 'Кол-во ставок' (Match m) = GROUP SUM 1 IF hasBet(m, CustomUser c); CONSTRAINT DROPPED(Match m IS Match) AND PREV(countBets(m)) MESSAGE 'Запрещено удалять матч, по которому сделаны ставки';CONSTRAINT CHANGED(homeScore(Match m, CustomUser c)) AND started(m) MESSAGE 'Запрещено изменять результат начавшегося матча';CONSTRAINT CHANGED(awayScore(Match m, CustomUser c)) AND started(m) MESSAGE 'Запрещено изменять результат начавшегося матча';CONSTRAINT CHANGED(homeScore(Match m)) AND NOT started(m) MESSAGE 'Запрещено изменять счет матча до начала матча';CONSTRAINT CHANGED(awayScore(Match m)) AND NOT started(m) MESSAGE 'Запрещено изменять счет матча до начала матча';currentHomeScore 'Ставка (хозяева)' (Match m) = homeScore(m, currentUser()); currentAwayScore 'Ставка (гости)' (Match m) = awayScore(m, currentUser());changeCurrentHomeScore (Match m)  {     FOR CustomUser u = currentUser() DO        INPUT =homeScore(m, u) CHANGE;}changeCurrentAwayScore (Match m)  {     FOR CustomUser u = currentUser() DO        INPUT =awayScore(m, u) CHANGE;}// Расчет очковcost 'Стоимость' = DATA INTEGER (Match);correctScore (Match m, CustomUser c) = homeScore(m, c) == homeScore(m) AND awayScore(m, c) == awayScore(m); correctScore 'Правильный счет' (CustomUser c) = GROUP SUM 1 IF correctScore (Match m, c); correctDelta (Match m, CustomUser c) = homeScore(m, c) - awayScore(m, c) == homeScore(m) -  awayScore(m); correctDelta 'Правильная разница' (CustomUser c) = GROUP SUM 1 IF correctDelta (Match m, c);correctResult (Match m, CustomUser c) = (homeScore(m, c) - awayScore(m, c)) * (homeScore(m) -  awayScore(m)) > 0 OR                                       (homeScore(m, c) == awayScore(m, c) AND homeScore(m) == awayScore(m)); correctResult 'Правильный результат' (CustomUser c) = GROUP SUM 1 IF correctResult (Match m, c);points 'Кол-во баллов' = CASE                                            WHEN correctScore(Match m, CustomUser c) THEN 3                                            WHEN correctDelta(m, c) THEN 2                                            WHEN correctResult(m, c) THEN 1;points 'Кол-во баллов' (CustomUser c) = GROUP SUM points(Match m, c); points 'Кол-во баллов' (Match m) = GROUP SUM points(m, CustomUser c);pointsStarted 'Кол-во баллов' (Match m) = points(m) IF started(m); score 'Кол-во очков' (Match m, CustomUser c) = NUMERIC[16,4](cost(m) * points(m, c) / points(m));  score 'Кол-во очков' (CustomUser c) = GROUP SUM score(Match m, c); FORM match 'Матч'    OBJECTS m = Match PANEL    PROPERTIES(m) cost, dateTime, nameHomeTeam, nameAwayTeam, homeScore, awayScore    EDIT Match OBJECT m;DESIGN match {    GROUP(,m) {        columns = 1;    }}backgroundScore = RGB(255, 224, 224);backgroundBet = RGB(224, 224, 255);backgroundOwn = RGB(224, 255, 224);FORM matches 'Ставки'    OBJECTS m = Match    PROPERTIES(m) READONLY cost, dateTime, nameHomeTeam, nameAwayTeam    PROPERTIES(m) BACKGROUND backgroundScore() READONLY homeScore, awayScore, pointsStarted    PROPERTIES(m) BACKGROUND backgroundBet() countBets, home, tie, away    PROPERTIES BACKGROUND backgroundOwn() currentHomeScore(m) ON CHANGE changeCurrentHomeScore(m),                                           currentAwayScore(m) ON CHANGE changeCurrentAwayScore(m)    PROPERTIES(m) NEWSESSION NEW, EDIT, DELETE         OBJECTS c = CustomUser GRID    PROPERTIES(c) READONLY name[Contact]    PROPERTIES(m, c) READONLY hasBet    PROPERTIES(m, c) SHOWIF started(m) READONLY BACKGROUND backgroundScore() points, score     PROPERTIES(m, c) SHOWIF started(m) READONLY BACKGROUND backgroundBet() homeScore, awayScore;FORM standings 'Таблица'    OBJECTS c = CustomUser GRID    PROPERTIES(c) READONLY name[Contact], correctScore, correctDelta, correctResult, points, score    PROPERTIES(c) NEWSESSION NEW, EDIT, DELETE         OBJECTS m = Match GRID    PROPERTIES(m) READONLY cost, dateTime, nameHomeTeam, nameAwayTeam    PROPERTIES(m) BACKGROUND backgroundScore() READONLY homeScore, awayScore, pointsStarted    PROPERTIES(m, c) READONLY BACKGROUND backgroundScore() points, score     PROPERTIES(m, c) READONLY BACKGROUND backgroundBet() startedHomeScore, startedAwayScore    ORDERS score(c) DESC ;NAVIGATOR {    NEW matches;    NEW standings;    NEW teams;} 

Перезапустить серверную службу при помощи команд :

systemctl stop lsfusion4-serversystemctl start lsfusion4-server

Приложение будет доступно по адресу http://<ip>:8080

Впервые мы провели игру еще во время чемпионата Европы 2012 года. Многие из наших сотрудников в итоге болели за кого-то в абсолютно всех матчах турнира, хотя в обычной ситуации не стали бы смотреть и половины. В этот раз мы решили поделиться нашим опытом с другими людьми. Если кому-то будет интересно, то тоже включайтесь в игру. В случае возникновения каких-либо проблем или вопросов всегда можно зайти в slack канал, где мы поможем по любым вопросам, или написать на почту info [собака] lsfusion.org.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru