Автор Тема: Электронный маршрутник в бою (впечатления)  (Прочитано 21273 раз)

SergeSPb

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

1. Исчезали ответы. У нас было два или три случая исчезновения вбитых ответов. Если в первом случае мы его без проблем восстановили, то во втором - перебивали по памяти (в результате - минус дорогой КП в Лаврове). Скорее всего, по той же причине нам не засчитали Карбусельку (совершенно уверены в том, что ответ был введён без ошибок).
2. Непонятно по каким принципам работает аплоад картинок. В итоге оказалось, что селфи у паровоза и в Путилово никуда не отправились.
3. Финишировали мы в Малуксе - Инет там был неидеальным, но приемлемым (4G, а не H). Всё ужасно тормозило и сбрасывалось, в итоге через семь минут мучений (и последующего таймаута) мы так и не поняли, финишировали мы или нет.
4. Это не есть прямое замечание (можно объяснить, например, тем, что нам головы напекло), но наша достаточно опытная команда допустила какой-то огромный процент брака при взятии КП. Если такое наблюдалось и у других команд, то впору и здесь грешить на маршрутник.

Слономышь

  • Флудер
  • Сообщений: 273
    • Просмотр профиля
Электронный маршрутное это хорошо.
Была принципиальная проблема - не смогли стереть введённую фотографию! Это вообще возможно? Не заменить на другую, а именно стереть.

Слономышь

  • Флудер
  • Сообщений: 273
    • Просмотр профиля
А учитывал ли электронный маршрутное фактическое время финиша? В таблице результатов у всех команд одинаковое время прохождения.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
1. Вот у нас есть подозрение, что тоже такая же фигня на двух точках
Хотелось бы после финиша в режиме ридондли иметь возможность открыть туже страницу  с вводом ответов чтобы посмотреть что не так.
2. Вот и у нас были проблемы. В какой-то момент фото как бы исчезло. В итоге перезадивали но КП все равно не взят. Возможно ещё раз исчез или не залился.

Tyzik

  • Болтун
  • Сообщений: 63
    • Просмотр профиля
У нас ответы не стирались, но картинки из заданий не всегда загружались даже при 4G. Но может быть это проблема гаджета. У Карбусели не было интернета, и форма с заданиями у нас превратилась в "страница не доступна" 🙁 хорошо сразу на финише принтскрины заданий сделали и время ещё не поджимало.
Форма после окончания времени не закрылась, пришлось нажимать "окончить игру".

Лев Евдокимов

  • Сэнсей
  • Сообщений: 1 687
    • Просмотр профиля
Очень хорошо, что перед финишем система дает пересмотреть список своих ответов. Мы так заметили 2 косяка:
- с КП 324 так и не загрузилось фото. На месте мы пробовали раза 3 - все также отображалось без превью. Я подумал, что проблема в горизонтальном формате и дальше делал только вертикальные селфи. На финише увидел, что ответа на КП 324 нет и снова попробовал загрузить фото с него, вроде прошло.
- на КП 225 в ответах оказалось "5" без "км". Может, и наш глюк, но осознал, проверил фотку КП и уточнил.

А так думал, будет хуже. Реально на всех (!) посещенных КП нормально ловился интернет от Йоты, пропадал только один раз в дороге от Выстава к Дусьево.

Цитировать
Хотелось бы после финиша в режиме ридондли иметь возможность открыть туже страницу  с вводом ответов чтобы посмотреть что не так.

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

Ирина Федорова

  • Болтун
  • Сообщений: 53
    • Просмотр профиля
У нас тоже стирались куски ответов в ходе игры. Перед финишем проверяли что все на своих местах. Хорошо бы кнопочку сохранить возле каждого ответа. Когда выехали в зону уверенного приема обнаружили С чего начинается и город С - ну мы конечно молодцы, но вряд ли до такой степени. Когда КП так много, то очень сложно на память увидеть, что что-то исчезло из ответа.

Низкий Роман

  • Флудер
  • Сообщений: 256
    • Просмотр профиля
Главные проблемы в первые пару часов игры - потом привыкли (специфичные для мобильных устройств, может быть, только для конкретного браузера):
1. При попытке менять масштаб часто фокус перемещается в начало списка КП. А он длинный. Только домотал, до нужного КП, опять увеличил - опять в начале списка.
2. Окна с картинками открываются в неочевидных местах страницы. Если страница увеличена - попробуй найди. При попытке увеличить саму картинку она тоже может сбежать.
Заполнять ответы по ходу игры не пытались - вбивали их с бумаги перед финишем.
Карбусель подчеркнула актуальность скриншотов.
Про интернет в Выставе были опасения, но в итоге туда не успели, а финишировали в Кобоне, где интернет был идеальный (в соседнем Лаврово он был не очень).
Времена финиша (9:59 у большинства команд, в том числе, у нас) тоже удивили. За временем не особо следили, считали, что успеваем отправить без напряга.
Спасибо за форму предпросмотра всех ответов с подтверждением: плюс 7 баллов, так как у КП 293 сначала неправильно ввели одну цифру.
С отправкой фотографий проблем не было - были проблемы их сделать: нет навыков изготовления селфи плюс неполадки с фронтальной камерой.

M_R

  • Сэнсей
  • Сообщений: 4 094
  • https://m-reveur.livejournal.com/67917.html
    • Просмотр профиля
Писали на бумагу. Вбивать в форму начал за десять минут до финиша, перед ЗАКОНЧИТЬ ИГРУ прошлись по всему списку. В этот самый момент интернета практически не было, переходить на другой смартфон было уже поздно. Десять раз нажимал на ЗАКОНЧИТЬ, но не был уверен, что список отправился. Позвонил в Колл-центр, Игрик подтвердил, время стоит 9.59. Хм. Как у всех.
Сейчас открыл результаты и первое, на что обратил внимание, что КП 293 не взят, причем стоит ответ 12.07.2013, который точно был вбит, мы проверяли.
Всё прочее еще не проверяли, а как, делать принтскрин не было времени. Сейчас открою снимок бумаги, сделанный в последний час...

Лев Евдокимов

  • Сэнсей
  • Сообщений: 1 687
    • Просмотр профиля
В Выставе КП на холме, поэтому на самом КП проблем со связью не было.

Malamut

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

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

И всё бы ничего. Но достаточно добавить к каждому полю ввода ответа кнопку "Записать", а под ним - строку "Записанный ответ: <значение>", и всё будет работать идеально (ну, если правильно написать серверную часть, но она тривиальна). Такое изменение - вопрос получаса программирования, плюс немного времени на вёрстку. Можно даже сохранить "синхронизацию" значений в полях ввода через сервер, хотя лучше убрать её полностью, поскольку она всегда будет глючить by design. А чтоб не терять введённые значения - использовать localstorage. Ну или через сервер, но для каждого участника индивидуально. Я даже написал Игрику как можно очень быстро сделать стабильную версию маршрутника, которая никогда не потеряет и не испортит ответ. Работы - на одну чашечку вечернего чая. Но.

У нас на этой игре один ответ пропадал 3 раза. 3 раза, Карл!! Причём это ж не сразу происходит. Приезжаешь на другой КП - а ответа от предыдущего больше на сайте нет. Другой ответ те же три раза самопроизвольно портился. Нет, после онлайн БГ мы в курсе, как "работает" этот маршрутник, и потому последние 10 минут контрольного времени тупо боролись за то, чтобы все ответы таки оказались записанными, многократно обновляя страницу на разных устройствах. Но блин.

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Кроме этого есть ещё одна концептуальная проблема. Поскольку задания на странице сайта - то иногда её случайно обновляешь. И при отсутствующем интернете всё пропадает( Было бы классно, если бы была кнопка "загрузить задания" - которая бы генерировала pdf файлик со всеми заданиями. На одном из КП так чуть не пролетели. Через edge ждали, пока загрузится, и было не очевидно, что всё получится успешно. А ведь даже номер телефона - он тоже на сайте))

Плюс на первых онлайн БГ задания имели тенденцию меняться по ходу игры. Что тоже так себе. Файлик гораздо надёжней интернет-странички.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
"загрузить задания" - которая бы генерировала pdf файлик со всеми заданиями.

Задания менялись и на этой игре. Так как начался ремонт одного из памятников.
Поэтому онлайн - это именно онлайн.

Игрик

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

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Инет там был неидеальным, но приемлемым (4G, а не H). Всё ужасно тормозило и сбрасывалось,
Вы знали куда едете играть. Это часть игры по сути.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
не смогли стереть введённую фотографию
Вообще не могли предположить, что команда решит удалять правильный ответ.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Хотелось бы после финиша в режиме ридондли иметь возможность открыть туже страницу  с вводом ответов чтобы посмотреть что не так
Она же есть. Нажимаешь "Закончить игру" и проверяешь.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
У кого стирались ответы, что очень странно, потому что всё давно исправлено и на игре в Петербурге не было ни одной такой проблемы, напишите на почту, пожалуйста, сколько играло устройств, каких, какой интернет, какие кп стирались... В общем все подробности.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Проблема с фото была. У некоторых команд фото не прогрузились. Это был технический сбой. Его решили после нашей игры к ночной как раз :)

У кого не прогрузились фото, пожалуйста, пришлите их в апелляции.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
При попытке менять масштаб часто фокус перемещается в начало списка КП. А он длинный.
Какое устройство? На тесте у оргов такого не было.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
текущий маршрутник технически абсолютно безграмотно сделан
После этих слов дальше разговор совершенно неконструктивен. :)
Ваши письма смотрели с программистами. Нет, ваши решения абсолютно неприемлимы в текущих технических условиях 21 века.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Поэтому онлайн - это именно онлайн.
На офлайн бг с этим нет ж проблем. Любые изменения надо явно сообщать, в фоне неявно ничего обновлять нельзя - это создаёт странные ситуации. Если что то обновляете на сайте - это обязательно должно быть веделено красным ярким цветом, и дб предыдущее (зачеркнутое) значение. Не помню такого в заданиях(

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Хотелось бы после финиша в режиме ридондли иметь возможность открыть туже страницу  с вводом ответов чтобы посмотреть что не так
Она же есть. Нажимаешь "Закончить игру" и проверяешь.

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Нет, ваши решения абсолютно неприемлимы в текущих технических условиях 21 века.
Я бы согласился, если бы не увидел на текущем бг, что маршрутник всё ещё неработоспособен. Единствеггая функция маршрутника - сохранять ответы. Она не работает, это бесспорный факт. Мой тот вариант 100% работал бы. 21 век, конечно, но ваши программисты явно плохо умеют использовать технологии 21 века. Правда я и не уверен, что они существуют, эти технологии. Впрочем, я не программист по основной профессии. Но я считаю задачу, которую вы пытаетесь решить, нерешаемой даже в теории. Я потому и пишу про безграмотность. Ключевая цель маршрутника - запись результатов. То есть вы должны обеспечить уверенность, что никакие результаты не потерялись.  Кнопки создают уверенность, 21 век тут ни при чём. Даже если вы разберётесь и уменьшите вероятность порчи ответов, уверенности в том, что сервер ответ сохранил, не прибавится, потому что это всё ещё будет невозможно проверить.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Я бы сказал что тут кроме очевидных проблем в технической реализации, которые может и можно пофиксить (я правда считаю, что прям окончательно это невозможно), есть проблемы UI, которые на самом деле обособлены. Проблема ui - невозможность проверить, что на сервер записался введённый ответ и крайне простая возможность случайно его запортить. Всплывающие окна а-ля вы хотите перезаписать ответ - они в любом веке актуальны, дело не в технологиях, а в удобном интерфейсе, который вызывает уверенность и не позволяет случайно выстрелить в ногу.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Но я считаю задачу, которую вы пытаетесь решить, нерешаемой даже в
теории.

Как опытый программист со стажем ползволю полность с вами не согласиться

Задача вполне себе решаемая и это правильный подход.
для этого ответы просто напросто надо синхронизировать в обе стороны. При этом если в браузере ответ не пустой и отличается от того что в базе нужно выдавать предупреждение.
Можно конечно при отличиях показывать вспывающие окна, но я пожалуй соглашусь, что это прошлый век и сейчас их все меньше и меньше можно встретить.
Можно просто отмечать явно отличия и не сохранять их при сиинхронизации. Плюс можно (и скорее даже нужно, а возможно и вообще достаточно) учитывать время изменения задания. Т.е. если пользователь А ввел в 10 минут, а Б в 20, то явно Б важнее. И если ответы разные то это проблема команды синхронизроваться.

Храмов Александр

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

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


achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
А, и еще неплохо было бы на сервере хранить историю изменений (в том числе с информацией от кого пришел запрос на изменение: браузер, пользователь и т.д.) хотя бы в начальном режиме внедрения, чтобы можно было понять в какой момент и почему могли сброситься.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
всё ещё будет невозможно проверить
Да почему невозможно-то? Перед отправкой ответов на проверку вы видите те ответы, которые мы получим.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Вполне можно дать команде возможность самим распечатать маршрутник перед игрой, чтобы команда параллельно вносила туда ответы, в конце игры сфотографировав его и загрузив отдельной фотографией. Однако, самое интересное начнется, когда ответы в электронной версии не будут совпадать с бумажной, представленной на фото. А такое - будет.  При этом вероятность ошибок и у нас и у вас повысится. Поэтому и приходится лавировать между техническими решениями, игровыми решениями и вопросом трудоемкости.

Кстати, а это очень крутая как мне кажется идея. Но т.к. игра электронная, то я бы конечно сделал так:
1. Если загружен маршрутник, то его необходимо распознать автоматичсеки и перенести ответы в электронный вид.
2. При этом если ответ не распзнался либо распознался с малой уверенностью то - выдавать ошибку валидации и просить пользователя подтвердить/ответ вручную сразу после загрузки маршрутника.

Т.е. по сути фото маршрутника это просто вариант автоматически заполнить поля электронного варинанта.
Но конечно хорошая программа распознавания стоит денег и не малых :)

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

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
А, и еще неплохо было бы на сервере хранить историю изменений (в том числе с информацией от кого пришел запрос на изменение: браузер, пользователь и т.д.) хотя бы в начальном режиме внедрения, чтобы можно было понять в какой момент и почему могли сброситься.
А тут вот к сожалению еще нужно учитывать количество участников и их одновременное желание писать и проверять ответы.
А если их будет не 40 команд, а 100? А если 1000? А если 3000?

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
А, и еще неплохо было бы на сервере хранить историю изменений (в том числе с информацией от кого пришел запрос на изменение: браузер, пользователь и т.д.) хотя бы в начальном режиме внедрения, чтобы можно было понять в какой момент и почему могли сброситься.
А тут вот к сожалению еще нужно учитывать количество участников и их одновременное желание писать и проверять ответы.
А если их будет не 40 команд, а 100? А если 1000? А если 3000?

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

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

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
achekh вы еще кажется упускаете тот момент, что базово вся основа в другом.
мы даем возможность играть с разных устройств. и на каждом устройстве в реальном времени показываем, если другие участники вводят ответы. это сделано для решения разных целей. но сохраняем мы, как ты как программист понимаешь, не один ответ один раз в таком случае.

achekh

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

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
achekh вы еще кажется упускаете тот момент, что базово вся основа в другом.
мы даем возможность играть с разных устройств. и на каждом устройстве в реальном времени показываем, если другие участники вводят ответы. это сделано для решения разных целей. но сохраняем мы, как ты как программист понимаешь, не один ответ один раз в таком случае.
Не очень понял честно говоря.
Ты имеешь ввиду, что когда идет отправка на сервер - то сохраняются все ответы (даже те, которые вводил не Я, а с другого устройства)?
Если так то я это прекрасно понимаю и не виду противоречий с тем, что написал.
Если решаем сохранить в базу - добавляем в историю.
Просто тут конечно важно не в лоб записывать в базу все подряд, а определить что именно записывать из того что пришло.
Самое просто - если ответ не отличается, то в базу его записывать не надо, поэтому и в историю ничего не попадет.
Затем условие можно как-то усложнять. Например, как писал выше смотреть на время изменения и не обновлять старые данные.

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

Повторюсь историю я предлагаю рассматреть только как инструмент для дебага.
Потому что я сильно сомневаюсь, что имея просто инфу от юзера по устройствам и описанию проблемы вы легко и быстро сможете воспроизвести проблему.
А вот если увидите в истории что реально происходило - то это может очень сильно помочь.
« Последнее редактирование: 28.06.2020, 10:36:06 от achekh »

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
При окончании времени (но не нажатии завершить) во всяком случае у меня на телефоне страница с заданиями была открыта и я мог по-прежнему вводить ответы, грузить фото.
Вот это вообще странно. Оно точно кидает на страницу с грамотами. Либо глюк устройства, что вряд ли, либо баг у нас из-за применения контрольного времени, это пофиксим.

Лев Евдокимов

  • Сэнсей
  • Сообщений: 1 687
    • Просмотр профиля
Окна с картинками открываются в неочевидных местах страницы. Если страница увеличена - попробуй найди. При попытке увеличить саму картинку она тоже может сбежать

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
achekh,
Давайте) Начнём со времени. Вот вы говорите - по времени прихода ответа. А время чьё? Серверное? Это ад: предположим, что первый человек ввёл ответ неправильный, но у него нет интернета. Второй - правильный через 10 минут, с интернетом. Третий и четвертый увидели правильный ответ и все согласились, что всё ок и забыли про этот КП. Потом устройство первого выходит онлайн - и бац, в итоге имеем неправильный ответ, про который, внимание!, все уверены, что сохранён на сервере точно правильный (3иц и 4ый же проверили!).

Время клиентское - гораздо лучше. Но для этого надо либо вкручивать реализацию ntp на JS в клиент, либо как-то учитывать расхождение часов. Учитывая, что на телефонах время имеет тенденцию иногда скакать на несколько секунд из-за всяких синхронизаций с сетью, и что мы же хотим прям онлайн одно и то же поле редактировать у вех 4х участников - легко возможна ситуация из пункта 1. Просто потому, что клиентское время - ресурс ненадёжный, непостоянный и нестабильный.

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

В общем. Нет, эта задача не имеет надёжного решения. Потому что:

Игрик, achekh,
согласитесь, есть минимальные требования к работоспособности электронного маршрутника. Их всего два, как по мне:
1. Стоя у КП, игрок должен точно знать сохранился ли его ответ на сервер и какой ответ сохранился. Если что-то пошло не так - игрок это точно должен знать (выдать ошибку сохранения), чтоб иметь позже возможность поправить.
2. Никакой сохранённый ответ не может быть неявно изменён. То есть при любой попытке перезаписи сохранённого ответа надо выдавать предупреждение - вы уверены, что хотите поменять ответ А на ответ Б? А то капля дождя на экран, неосторожное нажатие на бекспейс или ещё что - и вы даже не узнаете, что ваш ответ уже неправильный. Испортить содержимое открытого для редактирования текстового поля в полевых условиях и без глючной синхронизации - проще простого.

Ни 1, ни 2 текущий маршрутник не обеспечивает. Зато пытается решить задачу одновременного редактирования одного поля. Непонятно зачем. Конечно, сохранённый кем-то ответ сразу же дожен быть виден всем другим участникам команды (это те же технологии 21 века, между прочим)! Но одновременно редактировать одно и то же текстовое поле для этого совершенно нет никакой необходимости.

Слономышь

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

Слономышь

  • Флудер
  • Сообщений: 273
    • Просмотр профиля
Хотелось бы после финиша в режиме ридондли иметь возможность открыть туже страницу  с вводом ответов чтобы посмотреть что не так
Она же есть. Нажимаешь "Закончить игру" и проверяешь.
Да, но после окончательной отправки ответов тоже хотелось бы иметь возможность посмотреть на то, что отправил. Хотя бы для апелляций.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Слономышь
мысль понял, спасибо
обе мысли :)

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
Друзья, привет! Критика прочитана и услышана. Баг с заливкой фото действительно наблюдался (он проявлялся, когда одно и то же фото пробовали заливать несколько раз), он исправлен. Баг с некорректным временем финиша тоже найден и исправлен.

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

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

Спасибо за понимание :)

PS: Запоминание введенных данных в localstorage, чтобы обновление страницы при отвалившемся инете не теряло введенные данные - разумная идея, она в числе планируемых улучшений. Положение попандера и фокус при масштабировании тоже в планах на улучшение.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut
Сразу видно вы не программист )
Безусловно время должно приходить с клиента. Но оно достаточно легко различными вариантами конвертируется в серверное.
Проблема синхронизации до секунд это да, проблема глобальная и известная. Поэтому часто пишут в требованиях чтобы время на серверах где используется продукт совпадало с точностью до секунды.
Если учен что время не скачет то разницу между клиентом и сервером легко зафиксировать при логина с точностью до секунды.
А если оно скачет то тут все сложнее.
Но эти частные случаи либо можно решать отдельно, либо вообще не решать. И это поверьте нормально.
Ах да, ещё: безусловно время надо проверять только если изменяет другой пользователя. Если тот же то и последний изменивший, то надо просто обновлять.

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

И собственно это совсем не теория.
Именно такой описанный подход мы используем в своем коммерческом приложении.

И ни один клиент ещё не жаловался.

achekh

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

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
1. Стоя у КП, игрок должен точно знать сохранился ли его ответ на сервер и какой ответ сохранился. Если что-то пошло не так - игрок это точно должен знать (выдать ошибку сохранения), чтоб иметь позже возможность поправить.
Можно при окончании ввода сохранять изменения (грубо говоря по нажатию enter). А не по тайм-ауту. Те КП сохраняются по-отдельности а не пачкой.  Если ошибка да, подсветить. Если ошибка нет сети попробовать позже.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
2. Никакой сохранённый ответ не может быть неявно изменён. То есть при любой попытке перезаписи сохранённого ответа надо выдавать предупреждение - вы уверены, что хотите поменять ответ А на ответ Б? А то капля дождя на экран, неосторожное нажатие на бекспейс или ещё что - и вы даже не узнаете, что ваш ответ уже неправильный. Испортить содержимое открытого для редактирования текстового поля в полевых условиях и без глючной синхронизации - проще простого.
Те вы предлагаете word, notepad или любому другому приложению никогда не пользоваться автосохранением?
Интересно что вы скажете когда введёте кучу текста и ответов на КП а у вас умрет браузер, перезапустить телефон и придется все вводить с нуля.
Да, автосохранение отключается. Но это прошлый даже позапрошлый век. В том числе для многопоточных приложений. Оно есть и будет. Иначе вы первый приведите с жалобой я вводил исправлял а мои исправления потерялись.
Вот с таким даже к нам прибегали клиенты и жаловались (когда у нас не было автосохранение)

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
unxed и achekh,
Смотрите. Сейчас вероятность того, что итоговый ответ совпадает с ожиданиями игроков от него - далеко не 100%. Мы за последнюю игру 7 раз минимум перевводили ответ потому, что он почему-то не сохранился и попортился, например. Ну то есть, скажем, 95%  в условиях нестабильного интернета. Есть способ сделать эту вероятность гарантированно 100%. Даже если улучшениями движка и внедрениями всяких эвристик вы доведёте вероятность до 99.9, это всего лишь будет значить, что каждый 1000 ответ игрок будет считать, что он ввёл правильно, а сервер его всё равно не примет. Вы обязательно где-то сделает допущения и не разберёте все случаи - в итоге вы всегда будете терять ответы. Может, единицы из тысяч, но всё же.

Но повторяю, есть способ добиться 100% совпадения мнения игрока и сервера. Учитывая, что при этом интерфейс к тому же станет нагляднее и проще, то мне не понятно, зачем заведомо соглашаться на порчу части ответов. При этом все плюшки останутся: и отображение в реалтайм действий сокомандников, и возможность с любого устройства вносить данные в любое поле, и прочее. Единственно, что нельзя будет делать - это одновременно в одном и том же поле редактировать один и тот же ответ. Но это, согласитесь, никогда не может быть надо. Я напишу чётные буквы, а ты нечётные. Разве что для вот для такой весёлой развлекаловки, других практических применений это не имеет.
И это поверьте нормально.
То есть нет, это вот в условиях задачи онлайн-маршрутника ненормально. Вам единтсвенное что надо - гарантировать сохранение данных. А вы целенаправленно на это забиваете. Зачем? Я активно использую Google Authentificator. У него допустимое расхождение, на секундочку, 1,5 минуты. Раз в месяц мне стабильно приходится пользоваться функцией коррекции времени, чтобы коды работали. Нет, клиентское время не является надёжным ресурсом, на основании которого можно делать какие-то важные выводы (например, о сохранении критически важных данных, коими являются ответы в условиях онлайн маршрутника). Я могу привести более изощрённые примеры попыток полагаться на время клиента (я не просто так написал про скачущие на несколько секунд часы мобилок))), но и этого более чем достаточно.

unxed,
Ну и по поводу переписывания. Я не предлагаю переписать всё. Я предлагаю изменить логику сохранения финального ответа, сделав её наглядной и надёжной. Это работы, повторяю, на полчаса-час, то есть это никак не переписывание с 0. Всё остальное, включая онлайн синхронизацию данных между клиентами, остаётся, все плюшки - остаются. Не считаю, что стоит тащить неудачные решения лишь бы их не переписывать. Это тупиковый путь. Примером, кстати, является движок форума, на котором мы сидим. Из-за проблем в архитектуре и нежелания их кардинально менять, это вермишель кода крайне плохого качества. Чего стоит система плагинов-патчей! Нет, я не настолько не программист, насколько вы думаете))
Те вы предлагаете word, notepad или любому другому приложению никогда не пользоваться автосохранением?
Автосохранение никогда не заменяет неявно текущие данные. Автосохранение маст хев, но это лишь дополнение к основному для решения нештатных ситуаций, а не замена его. Для автосохранения в условиях задачи онлайн-маршрутника есть такая штука как localstorage. Идеально всё будет работать, именно так, как ожидают пользователи, проверено)

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Ни 1, ни 2 текущий маршрутник не обеспечивает. Зато пытается решить задачу одновременного редактирования одного поля. Непонятно зачем. Конечно, сохранённый кем-то ответ сразу же дожен быть виден всем другим участникам команды (это те же технологии 21 века, между прочим)! Но одновременно редактировать одно и то же текстовое поле для этого совершенно нет никакой необходимости.
Необходимости может и нет. Это согласен редкий кейс. Но это ещё раз легко решается ща исключением нескольких кривых кейсов когда два редактируют одновременно и при этом время не синхронизировано у них.
Ещё раз достаточно просто проверить изменял ли пользователь поле или нет. И если изменял когда - раньше или позже чем текущее значение.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
achekh,
Это всё эвристики и допущения. Бессмысленные, когда существует простой, наглядный и надёжный способ, и более того - вредные, поскольку by design приводят к порче критически важных данных, не добавляя преимуществ. Пункт 1 (показывать пользователю сохранился его ответ на сервере или нет) в текущей концепции вообще целенаправленно проигнорирован, а это ключевой пункт любой операции записи! Представляете, пишете в БД, а она вам в ответ не условные true или false, а пустоту. Всегда пустоту и ничего кроме пустоты. Что делать будете?) А что предлагаете делать игрокам БГ? Перезапрашивать данные через обновление страницы разве что. Причём, из-за специфики, это надо делать на всех устройствах с открытыми заданиями, а то может быть, что одно из них возьмёт и потом уже поменяет ответ на сервере без ведома пользователя. ИМХО, бред. Текущий юзер экспиренс полностью провален, какое-то гадание на кофейной гуще, а не сохранение ответов на сервер.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Автосохранение никогда не заменяет неявно текущие данные.
Видимо автосохранение у вас всегда везде отключено.
Я лично почти никогда ни в Гугл драйве ни в в Ворде не жму ctrl+s но тем не менее все мои извинения отлично сохраняются.
100% сделать можно. Можно добавить кучу кнопок, кучу диалогов, вопросов. Но тогда это будет ui и ux которым невозможно будет пользоваться.

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

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
>  каждый 1000 ответ игрок будет считать, что он ввёл правильно, а сервер его всё равно не примет

Именно для такого одного случая из 1000 сделан попандер в момент завершения этапа "вот ответы, которые сейчас на сервере, убедитесь, что всё правильно!". Перед выводом этого попандера синхронизация останавливается, а потом с сервера запрашиваются актуальные данные. То есть, то, что там показывается - это 100% то, что живет на сервере в данный момент, что бы ни делали в это время на других устройствах. "Размораживается" синхронизация только в момент нажатия кнопки "Назад".

> различными вариантами конвертируется в серверное

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

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut
Я отнюдь не говорю что ничего не надо делать и все круто.
Я лишь говорю что
1. Задача которую вы говорите якобы не решаемая, вполне решаемая. И относительно легко решаемая. И привожу примеры как ее можно решить (и смею сказать нужно)
2. если я правильно понял что вы предлагаете (кучу доп кнопок, какой-то отдельное поле для сохраненного ответа) и тд (возможно диалоги) то я как архитектор не соглашусь что это хорошее направление решения проблемы которая есть. Пусть (возможно) оно и относительно простое

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
unxed,
В конце показывать - это маст хев и очень классно. Но я уже писал в соседней теме: в конце нет возможности проверить правильность ответа, вообще-то. Вы же не стоите перед всеми КП) То есть получается, что надо записывать все ответы на листочек, чтоб потом в конце сравнить с электронной системой. Это тоже провал user experience и какая-то бессмыслица, если честно. Вроде как получается, что прогрессивный онлайн-маршрутник нерабоспособен без параллельной бумажки.

Предлагаю компромисс: сделайте кнопочку "заблокировать ответ" (ненавязчивой иконкой), чтобы можно было явно заблокировать каждое поле ввода, синхронизировав всё с сервера, показав гарантированно актуальные данные, и больше уже не позволяя его сохранять на сервер с других клиентов и этого тоже, пока снова явно не будет нажата эта кнопка с явным подтверждением от сервера. Это тоже решит задачу, сохранив всю вашу логику. Типо pin/unpin.
achekh,
Для меня задача - быть на 100% увереным, что сервер получил мой ответ. Она нерешаема текущей технологией, вы везде пишите какие-то допущения, тем самым целенаправленно сколько-то долей процента выкидывая. Это неправильно, когда существует надёжное решение. Я предлагал лишь дополнительную кнопку Сохранить рядом с каждым полем ввода. Это нормальный UI, хотя бы потому, что он наглядный, а наглядность и подсознательная очевидность - это очень важно в UI. Как ведёт себя текущий сайт, если честно, понять невозможно. Это создаёт и будет создавать нервозность в любом случае. Любые неочевидные автоматические операции -это плохо. Но выше я предложил дополнение к текущему интерфейсу, которое решит все проблемы, пусть и менее очевидным и наглядным способом. Да, дополнительной иконкой рядом с каждым полем ввода, но думаю минималисты меня за это не побьют камнями)

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Иконки вообще стандартные можно: галочку зелёную чтоб сохранить и заблокировать поле на редактирование, карандашик - чтоб разблокировать. Автосейв никуда не отменяется и вообще ничего не меняется. Просто возможность явно принудительно синхронизировать с сервером и точно увидеть серверное значение, плюс не дать случайно поменять, заблокировав поле. Это тоже не подходит? Мне кажется, хороший компромисс) И кнопка Save по сути, и всё остаётся по старому с другой стороны.

N/A

  • Флудер
  • Сообщений: 319
    • Просмотр профиля
По следам "Первого острова" (в "Искру" не играла) - подумалось, что было бы здорово иметь возможность просто смотреть задания и справки без всяких полей ввода, чтобы исключить случайную засылку какой-нибудь ерунды. Ну, мб ещё сохранённый ответ. Во всех онлайн-играх, в которые я играла, ответы вводил кто-то один, а остальные члены команды открывали страницу только для того, чтобы прочитать задания, и им форма для ответов была только лишним риском. Если бы была кнопка "только просмотр", я бы ей пользовалась.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut я прошу прощения, но у вас абсолютно те же допущения с вашей кнопкой.

Два юзера вводят текст пока кнопка не нажата. Какой из них будет сохранен?
Пользователь а ввел текст АБС и нажал заблокировать. Пользователь б ввел текс ХХХ чуть позже, но запрос до сервера дошел чуть раньше (т.е. поле ещё не заблокировано). Вопрос что должно быть?

Поэтому у вас ровно такие же проблемы с кнопкой как во всех других решениях.

Если вы говорите что у вас проблема в том чтобы сохранить то что ввел пользователь (явно как бы) я и предложит сохранять по ентеру или потере фокуса только (плюс изменения)
Это тоже тест практис.
Если вы ничего не делали с полем оно и не будет сохраняться. И вы легко получите 200% гарантии то что ввели то и сохранено.
Если же два юзера и разница между изменениями небольшая то в любом решении (и вашем и моем) будут допущения.
« Последнее редактирование: 28.06.2020, 13:54:18 от achekh »

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> в конце нет возможности проверить правильность ответа, вообще-то

Проблему осознали, думаем.

> кнопочку "заблокировать ответ"

Аххаха, красиво! Только ну вы же представляете количество хаоса, которое добавится при синхронизации состояния запиненности-отпиненности?

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
unxed
Как программист программисту: а почему бы просто не сделать сохраните только на ентер/потерю фокуса для изменённого поля? Мне кажется это бы решило бы 99% проблем (не считая потери связи и других ошибок которые конечно надо решать с помощью проверки времени на сервере). Ну либо оставить при синхронизации но опять же сохранять только данные которые юзер явно менял.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Только ну вы же представляете количество хаоса, которое добавится при синхронизации состояния запиненности-отпиненности?
Да вроде нет его. Синхронная операция обычная с ожиданием ответа от сервера и блокировкой на стороне сервера на момент обработки запроса. Нажали кнопку - отправили текущее состояние поля на сервер. Отправка зафейлилась - показали ошибку, ничего страшного (можно просто красным подсветить поле или какую минимульную анимацию, даже без попапа). А дальше сервер либо возвращает ok, и дальше всем клиентам принудительно рассылает сохранённое значение и состояние заблокированности, либо fail если кто-то уже заблокировал до нас с другим значением. Ну да, будут в крайне редких случаях попапы, когда какой-то баг адский синхронизации. Но вы же хотите добиться состояния того, чтобы синхронизация работала максимально идеально, а значит почти никогда не будет проблем. Ну а если будут - пускай лучше попап, чем неявная хрень и порча ответа. Это обычная тривиал операция сохранения, пара блокировок - и никаких проблем. Гораздо проще, чем разрешать конфликтры автосинхронизации.

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

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> только на ентер/потерю фокуса

Так можно, да. Но прежде, чем утверждать, что это решило бы 99% проблем, надо научиться эти проблемы воспроизводить :) А то строить на умозрительных допущениях изменения логики как-то странно.


unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
Наблюдается много советов "как сделать так, чтоб ответы не портились". Желания участвовать в тестировании для воспроизведения точных условий, при которых ответы портятся, почему-то не наблюдается :)

Пока что у нас даже нет однозначного ответа на вопрос, случается ли порча при игре с нескольких устройств, или даже когда играют с одного, такое может случиться. Предлагать решения куда проще, чем анализировать причины багов. Только у новых решений обязательно будут новые баги, которые сейчас не кажутся очевидными.
« Последнее редактирование: 28.06.2020, 14:10:50 от unxed »

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
> только на ентер/потерю фокуса

Так можно, да. Но прежде, чем утверждать, что это решило бы 99% проблем, надо научиться эти проблемы воспроизводить :) А то строить на умозрительных допущениях изменения логики как-то странно.


Наблюдается много советов "как сделать так, чтоб ответы не портились". Желания участвовать в тестировании для воспроизведения точных условий, при которых ответы портятся, почему-то не наблюдается :)

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

Я готов потсестить, поискать проблемы.
Можно ли сделать какую-нибудь тестовую игру-страницу с 2-3 КП чтобы можно было с этим поиграться?

SergeSPb

  • Сэнсей
  • Сообщений: 1 786
    • Просмотр профиля
или даже когда играют с одного, такое может случиться.

Да, случаются. Мы играли с одного зарегистрированного устройства (Huawei Nova 3, Android 9.1, Yandex.browser), не менее двух раз ловили этот эффект.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Пока что у нас даже нет однозначного ответа на вопрос, случается ли порча при игре с нескольких устройств, или даже когда играют с одного, такое может случиться. Предлагать решения куда проще, чем анализировать причины багов.
Собственно именно поэтому я и писал про некое логирование истории (В том числе инфомации о юзере, который вызывает апддейт) :) хотя бы просто в файл
« Последнее редактирование: 28.06.2020, 14:20:12 от achekh »

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> Можно ли сделать какую-нибудь тестовую игру-страницу с 2-3 КП чтобы можно было с этим поиграться?

С этим к Игрику :) Будет возможность погонять тестовую игру, конечно!

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> Да, случаются. Мы играли с одного зарегистрированного устройства (Huawei Nova 3, Android 9.1, Yandex.browser), не менее двух раз ловили этот эффект.

Наконец-то ценный фидбек, спасибо! :)

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> логирование истории

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Мы с двух. Готов что угодно тестировать, примено понимаю паттерны срабатывания.

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
SergeSPb а как это выглядело? Пропадали последние введенные знаки? Полностью очищалось поле? Ещё как-то?

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
> Да, случаются. Мы играли с одного зарегистрированного устройства (Huawei Nova 3, Android 9.1, Yandex.browser), не менее двух раз ловили этот эффект.

Наконец-то ценный фидбек, спасибо! :)

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

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
Malamut Игрик соберет спецбригаду общественных тестировщиков, ок! А пока: что там за паттерны, а?

SergeSPb

  • Сэнсей
  • Сообщений: 1 786
    • Просмотр профиля
SergeSPb а как это выглядело? Пропадали последние введенные знаки? Полностью очищалось поле? Ещё как-то?

1. Произвёл ввод
2. Убрал фокус
3. Подождал несколько секунд
4. Переключился на другое окно
5. (В случае 1 и предполагаемом случае 3) Отметил нестабильно работающий инет
6. Через какое-то достаточно большое время обнаружил пустое поле вместо ответа

Между пунктами 5 и 6 неоднократно переходил на/уходил со страницу(в), возможно, что страницу перезагружал.

Maitre

  • Болтун
  • Сообщений: 82
    • Просмотр профиля
Сама по себе идея отличная. Учитывая сжатые сроки перед первым БГ онлайн реализована тоже хорошо. Но что работает дома на компе с большим монитором, стабильным интернетом удобным стулом и кружкой кофе, в полях проявило недочёты
- 1 ответ мы потеряли (отправила апелляцию,  м.б. плохая связь, но это было в цивилизации, я записывала, прямо у КП и это всё вышло странно)
- плохая связь (чем дальше по Коле, тем хуже). Понятно, что это часть игры, поэтому сразу заскриншотили все задания. Была пара точек без связи, где ответы заносили уже когда связь появлялась. Но все-таки пугало, что именно в момент окончания игры может случиться беда.
- Адаптивность интерфейса - КП много, экран небольшой, приходится много скроллить + картинки к заданиям у меня открывались на экране 1 раз из 3
- Автозамена в клавиатуре мобильных устройств может подложить свинью. И слово переписать, и регистр сменить. Нужен глаз да глаз, а экран небольшой.
- Присоединяюсь к пожеланию видеть свои ответы после из отправки. Проверка ответов перед окончанием игры - удобно, но когда КП много, времени осталось 2 минуты, ты стоишь где-то в поле, все сверить не успеваешь. А так хотя бы видно. что отправлял
- Если бы мы все-таки попали в зону без связи в момент окончания времени, зачлись ли бы ответы, отправленные до завершения игры?

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
Друзья, правильно ли я понимаю, что проблема с не сохранением ответа (полностью или частично) строго связана с качеством инета?

Кажется, на симуляции плохого соединения удалось воспроизвести таки.

ijl

  • Болтун
  • Сообщений: 82
    • Просмотр профиля
а как это выглядело? Пропадали последние введенные знаки? Полностью очищалось поле? Ещё как-то?
Ну вот у нас было так. Ввод шел только с одного устройства (Xiaomi Redmi 4x, Android 7.1.2 N2G47H, Chrome), на втором - только чтение.
Ввели ответ 1
Интернет стал увядать, на индикаторе - "E"
Ввели ответ 2
Сфотографировались, попытались загрузить фото. Появилось имя файла, но сама картинка - нет.
Ткнули в "Комбинации", браузер задумался очень глубоко, потом заявил, что переходит в режим "оффлайн"
Выехали из радиоямы, интернет воскрес, загрузилась страница "Комбинации"
Нажали "Назад к контрольным пунктам"
Браузер сказал "нужно перезагрузить страницу"
После этого ответы частично(!) пропали. В ответе 1 исчез весь текст, в ответе 2 исчезла большая часть текста с конца. С картинкой - не помню, перезалили.
Сделали чудо-вывод, что при плохой связи лучше вообще ничего руками не трогать, на бумажку записать))

В дополнение, что еще мешало при работе с телефона:
- картинки показываются неизвестно где. Труднее всего искать, если масштаб изначально большой (а иначе не попасть в кнопку);
- неясно, в какой момент происходит коммит. Что "оно само" - понятно, но намек бы не помешал. Гугл, например, моргает надписью "изменения сохранены". Нужен ли LostFocus, так и не поняли;
- ужасно было неудобно, что весь этап одной простыней. Пока листаешь вверх-вниз, забываешь номер КП)) Collapse/expand бы спас, возможно.




achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Друзья, правильно ли я понимаю, что проблема с не сохранением ответа (полностью или частично) строго связана с качеством инета?

Кажется, на симуляции плохого соединения удалось воспроизвести таки.

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

alex_a_ivanov

  • Сэнсей
  • Сообщений: 1 744
    • Просмотр профиля
achekh,
Причём, из-за специфики, это надо делать на всех устройствах с открытыми заданиями, а то может быть, что одно из них возьмёт и потом уже поменяет ответ на сервере без ведома пользователя. ИМХО, бред. Текущий юзер экспиренс полностью провален, какое-то гадание на кофейной гуще, а не сохранение ответов на сервер.

А я правильно понимаю, что если вводить ответы только с одного устройства (а на втором делать это, только если вышло из строя первое, с предварительным обновлением страницы), то проблемы как бы и не будет?

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
alex_a_ivanov,
Не правильно. Мы вводили в момент Х одного, все равно пропадало.

Да, при плохом интернете крайне стабильно воспроизводилось.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Друзья, если кто-то хочет помочь с тестированием, напишите мне вк https://vk.com/id161871 пожалуйста, добавлю в чатик, там расскажу что и как попробуем делать.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
unxed,
Поясню, почему я предлагаю какие то допрешения, а не пытаюсь помочь пофиксить текущее. Все просто. От онлайн маршрутника я ожидаю возможность сохранения ответов. Чего точно нет в текущем маршрутнике, так это возможности сохранения ответов. Как бы вы ни улучшали алгоритм, принципиальной возможности сохранения не появится. Всегда будет неопределённость и будет непонятно, сохранён ответ или нет. Поэтому я и предлагаю варианты любой явной записи и явной принудительной синхронизации. Последний вариант с иконками готов реализовать на общественных началах в дополнение к вашему коду, если он не на с++. Гарантирую отсутствие конфликтов в любых ситуациях, в личку могу скинуть так сказать подтверждение квалификации и доверия.

alex_a_ivanov

  • Сэнсей
  • Сообщений: 1 744
    • Просмотр профиля
alex_a_ivanov,
Не правильно. Мы вводили в момент Х одного, все равно пропадало.

Да, при плохом интернете крайне стабильно воспроизводилось.

Я не про момент Х, а вообще.
Вот на обычной игре у нас же один бумажный маршрутник? Один, и вроде это проблем не вызывает.
Назначаем "устройством ввода ответов" конкретный телефон/планшет/ноут, всю игру вводим только через него. Следующий задействуем, только если первый вышел из строя.

alex_a_ivanov

  • Сэнсей
  • Сообщений: 1 744
    • Просмотр профиля
Друзья, если кто-то хочет помочь с тестированием, напишите мне вк https://vk.com/id161871 пожалуйста, добавлю в чатик, там расскажу что и как попробуем делать.

Это будет актуально, если не сегодня, а завтра-послезавтра?

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
2. Непонятно по каким принципам работает аплоад картинок. В итоге оказалось, что селфи у паровоза и в Путилово никуда не отправились.

Если картинка напротив задания не появлялась, как правильно это означало, что она не загрузилась.

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
3. Финишировали мы в Малуксе - Инет там был неидеальным, но приемлемым (4G, а не H). Всё ужасно тормозило и сбрасывалось, в итоге через семь минут мучений (и последующего таймаута) мы так и не поняли, финишировали мы или нет.

Учитывая, что все ответы все равно сохраняются на сервере, кнопка "Закончить игру" по-хорошему и не нужна.
Тем более время у всех стоит 9:59.

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
- на КП 225 в ответах оказалось "5" без "км". Может, и наш глюк, но осознал, проверил фотку КП и уточнил.

Куски ответов стирались в течение всей игры.
Сервер как-то подхватывает не до конца введенный ответ, а окончательный игнорирует.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Друзья, если кто-то хочет помочь с тестированием, напишите мне вк https://vk.com/id161871 пожалуйста, добавлю в чатик, там расскажу что и как попробуем делать.

Это будет актуально, если не сегодня, а завтра-послезавтра?
Конечно, сегодня, а то и завтра еще не подготовлена игра для тестирования.

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
Вообще не могли предположить, что команда решит удалять правильный ответ.

А если он неправильный?
Или команда передумала брать это КП из-за минусовой комбинации?

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
3. Финишировали мы в Малуксе - Инет там был неидеальным, но приемлемым (4G, а не H). Всё ужасно тормозило и сбрасывалось, в итоге через семь минут мучений (и последующего таймаута) мы так и не поняли, финишировали мы или нет.

Учитывая, что все ответы все равно сохраняются на сервере, кнопка "Закончить игру" по-хорошему и не нужна.
Тем более время у всех стоит 9:59.

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

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
А если он неправильный?
то она поверх него введет новый

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
У кого стирались ответы, что очень странно, потому что всё давно исправлено и на игре в Петербурге не было ни одной такой проблемы, напишите на почту, пожалуйста, сколько играло устройств, каких, какой интернет, какие кп стирались... В общем все подробности.

"Свердловск" прверащался в "С", "9540" в "95", "32 км" в "32" и т.п.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Михаил
Да не превращались они.
Просто с учетом глючного инета, сервер получал только часть и потом эту часть вам и показывал...

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
SergeSPb а как это выглядело? Пропадали последние введенные знаки? Полностью очищалось поле? Ещё как-то?

Как правило, у ответа "отваливался хвост". Полностью ответ ни разу не пропадал.

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
то она поверх него введет новый

А если новый не нужен, КП "минусовое" - вводить лажу?

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
Да не превращались они.
Просто с учетом глючного инета, сервер получал только часть и потом эту часть вам и показывал...

На станции Назия плохой Инет? Вроде нормальный.
Или у заправки "Circle K" на Мурманке?
Да и на передачу 5-10 символов не нужен крутой Интернет, я сейчас даже не касаюсь фоток...

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut
Да что ж вы других то не слышите.
https://docs.google.com/spreadsheets/d/1td-ssyxuZXZqo24Ltkpi5ChShX389uEMlXEcZbavVYk/edit?usp=sharing
Вот сылка на гугд док.
Вбейте текст и нажмите ентер - все сохраниться. и не нато жать никаких ctrs+s доп кнопок и т.п.
не надо показывать что сохранено что нет
не надо показывать какая версия сохранена и т.д.
Ровно 1 к 1 как на сайте БГ.
Единственное отличие может заключаться в том, что возможно на сайте БГ ответ сохранится даже в процессе редактирования (т.е. побуквенно).
Это как я написал выше не считаю корректным, и лучше было бы делать как у гугле - сохранять (автоматически, без кнопок и т.д.) по окончанию ввода т.е. на нажатию Enter или потере фокуса (перехода в дугую ячейку).
Т.е. крубо говоря у поля есть два варианта: режим просмотра и режим редактирования. как долько фокус получен - меняем режим на редактирование.
и все!
Не надо никаких сложных доп кнопок которые 50% команд будут просто забывать нажимать.     

Rayon

  • Болтун
  • Сообщений: 65
    • Просмотр профиля
В целом, идея электронного маршрутника очень хорошо. У нас ответы не терялись ни разу, один раз только фото подгрузилось не сразу. Очень не хватает кнопки «записать» у каждого ответа, может он автоматически и сохраняется, но такая кнопка внушала бы ещё и психологическую уверенность, что ответ не пропадёт.
и ещё - очень мелкий шрифт! Не знаю, может, я не нашла кнопку «мобильная версия», но читать задания мелким шрифтом и смотреть картинки с телефона на десктопной версии - то ещё удовольствие. И вообще, даёшь приложение! Тогда все будет просто огонь!

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
achekh ,
А вы проверяли, как работает гугль док без интернета при конфликтах правок?) Мне просто интересно. Я вот только что добился от него такой же ситуёвины, на которую тут жалуются: более старый ответ после синхронизации перезаписал более новый. То есть как бы. Не работает там нормально синхронизация. Гугль док про онлайн, а не про беспроблемную синхронизацию одного и того же поля с 4х устройств.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
вы проверяли, как работает гугль док без интернета при конфликтах правок?)

Нет, не проверял. Но подтверждаю, проблемы есть.
НО!
Если редактируются одно поле в одном, второе в другом - то проблем нет никаких!!!
Т.е. если вы редактировали ячейку A, а другой юзер - ячейку Б, то после синхронизации (появления интеренета) изменнеия не пересутся и проблем не будет никаких!

Если вы добавите кнопку подверждения ответа (сохранения) то:
Если нет сети - что дальше: просто сказать "не могу сохранить", отменить изменения и не пытаться отправить изменения потом?
Или все же пытаться синхронизировать позже (когда появится интренет)?

Если первое - то будут все теже вопросы и проблемы - что делать если поле кто-то другой изменил, пока не было сети.
Если второе - то вы обидете 70-80% юзеров, которые и думают менять друг за другом ответы, либо даже вообще пользуются одним устройством для ввода ответов.

Поэтому синхронизацию оставить необходимо!!!
Просто насколько я понимаю, сейчас она синхронизирует все данные и возможно в процессе ввода (остюда сохранение части ответа).
Если это исправить, а именно:
А) Сохранять только после нажатия enter или потери фокуса
Б) Сохранять только если значение изменилось
То проблем поидее не должно быть ни у кого.

M_R

  • Сэнсей
  • Сообщений: 4 094
  • https://m-reveur.livejournal.com/67917.html
    • Просмотр профиля
На станции Назия плохой Инет? Вроде нормальный.
Или у заправки "Circle K" на Мурманке?

Ага. Это именно на заправке я закончил вбивать в формы данные с бумаги и нажал кнопку ЗАКОНЧИТЬ.  Никакой реакции. А уже сколько-то секунд остается до авто-финиша. И неизвестно, ушли ли мои записи и в каком виде. Интернет Теле2. У напарницы был Мегафон. Но вбивать еще раз уже не было времени. Через минуту она сказала, что в её странице появились вбитые мною ответы.
Тем не менее два КП не были зачтены ввиду неполученной информации (даты; фото)

Михаил

  • Сэнсей
  • Сообщений: 3 085
    • Просмотр профиля
Вообще странно конечно, что плохой Интернет так влияет на передачу текстовых символов, для которых нужно чуть больше, чем его полное отсутствие.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
achekh,
Да я ж не против автосохранения. Мне надо лишь, чтоб бы возможность явного сохранения с подтверждением. И я лишь утверждаю, что синхронизацию работоспособной сделать невозможно. Я могу привести пример.

I: Допустим, двое приехали на КП с плохим интернетом. Вбили ответ A в телефон 1. Заметили, что инета ну совсем нет, взяли телефон 2 и тут поняли, что ответ A неверный. В телефон 2 вбили ответ B, и телефон 2 рисовал уверенный H+, хотя реально интернета не было вообще. Но на самом деле ответ А ушёл на сервер (это важно дальше). А у телефона 2 и правда нет интернета и появится он ещё через полчаса, скажем. Но поскольку ответ B более поздний - то он должен сохраниться, так ведь? Это же явно всеми ожидается и так и должно работать? По крайней мере все будут этого ожидать. Но.

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

С точки зрения сервера варианты I и II выглядят абсолютно одинаково. И кто, скажите, из этих двух команд поступил неправильно, а главное почему и как, черт возьми, они должны были понять, что поступили неправильно?

Я абсолютно уверен, что невозможно сделать работающую автосинхронизацию как основной метод определения ответа, данного командой. Эта задача не имеет решения в принципе. Даже вон, с двумя телефонами. А что можно придумать с 4мя! Автосохранение - пожалуйста, отличная штука. Но фиксация конкретного ответа на сервере - это маст хев функционал для команды и его ни в коем случае нельзя полностью отдавать на откуп автоматической системе. Реализуется он, как я уже многократно писал, элементарно. Никаких проблем с конфликтами там не будет и быть при правильной реализации не может. Могу описать или накидать прототип, для работы которого будет достаточно любой производительной базы ключ-значение, даже не персистентной. Отключать автосохранение и вообще текущую систему не надо - можно просто добавить кнопочку к каждому полю. Можно не галочку, можно замочек - чтоб было явно видно, что на самом деле нажатие на кнопку не обязательное и это лишь для блокирования ответа, а не для сдачи. Но кнопка быть должна, иначе система гарантированно при абсолютно любой реализации будет неработоспособна. Либо вам придётся делать какие-то попапы при проблемах синхронизации, причём не просто, а с кнопками выбора правильного ответа. Но это вот как раз интерфейсная жесть и какой-то бред. И там всё равно придётся разруливать конфликты, всё те же и всё так же. Никуда никогда вы от этого не денетесь. Ну, либо получите заведомо не работающую систему.
« Последнее редактирование: 29.06.2020, 08:40:54 от Malamut »

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut
Замечательно рассписываете
Но вы так и не ответили на мой вопрос:
Что делать если в ваших случаях, пользователи оба нажали сейв и замочек.
В этом случае вы получаете все тебе проблемы.
Ели интернета нет то выходит кто первый появится тот с сохранит.
А если интернет есть то чей первый запрос придет на сервер тот и сохранится.
Поэтому вашим замочком проблемы в сложном кейсе не решить. А вот усугубить легко. А в простом кейсе проблем нет вообще

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Что делать если в ваших случаях, пользователи оба нажали сейв и замочек.
В плане? Сейв - операция синхронная, в этом и смысл. Поэтому либо вы получите ошибку (перед сейв надо бы делать короткий ping запрос на сервер - если нет ответа - писать ошибку соединения с сервером, если ответ есть - посылать данные и ждать подтверждения. Если подтверждение не пришло - ошибка сохранения данных. Если пришло - всё ок).

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

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Ок, те если интернета нет то вы получите ошибку.
Если интернет есть?
Вы отправили два запроса с разных устройств.
Никто в мире не сможет гарантировать какой из них придет первый.
Как быть?
Те в вашем случае скажем второй ответ (неверный) может дойти раньше. И заблокирует ввод.

Malamut

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Те в вашем случае скажем второй ответ (неверный) может прийти раньше. И заблокирует ввод.
что за бред? Один из участников гарантированно получит ошибку с русским описанием того, что у вас, ребята, конфликт ответов. И дальше, стоя рядом у КП, можно его сразу пофиксить. Заблокированный ответ можно ж разблокировать! В любом случае никакие неявные для команды операции с замочком by design невозможны. При правильно срабатывании замочка, к тому же, моментально блокируется поле ввода и всех участников с сохранённым ответом внутри. То есть при рабочем интернете надо очень умудриться нажать одновременно. И это в любом случае приведёт к явной и понятной ошибке на одном из клиентов.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Справедливости ради у описанного мной механизма есть явный изъян, про который я не упомянул, но который элементарно устраним. Попробуйте догадаться)

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
В качестве подсказки: цель заключается в том, что если вы заблокировали поле без ошибок и видите в нём правильный ответ - то это гарантированно сохранённый ответ на момент срабатывания блокировки. Дальше кто угодно может его разблокировать (и поменять), но при этом он тоже будет видеть текущий сохранённый ответ и кнопку разблокировать. То есть любой участник всегда сможет сделать только явно разумную операцию (сохранить конкретный ответ и увидеть, что именно он сохранён и заблокирован; снять блокировку с конкретного гарантированно сохранённого ответа, чтоб его поменять).

achekh

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

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

Проблема с синхронзацией двух ответов примерно в один момент - тут да, потециальная проблема может быть.
Но она будет даже в случае с замочком и явным сохранением.
Т.е. если два пользователя ввели ответ примерно в одно время - то вы хотите увидеть что-то и принять.
Если рассмотреть этот кейс то можно показать варнинг, если разница между введенными ответами скажем 10-20 секунд, то выдать предупреждение для потдверждения.
Это решит кейс с неточной синхронизацией времени.
 
Если у вас нет интрернета, то в этом случае можно так же автоматически попробовать 2-3 раза.
Если нет спросить - то показать ошибку и спросить у пользователя нужно ли сохранить ответ локально для синхронизиции дальнейшенй, когда появится интернет. При этом по умолчанию все должно синхронизироваться без ненужных диалогов, а эту доп опцию вы лично сможете отключить.

Если выбрано синхронизировать, и интернет появился через час - то действуют все те же правила, как будто интренет был и ответ отправлен сразу.
Т.е. если разница между ответами 10-20-30 секунд, то сообщить об этом пользователю (а может и всем). В приложениях (не браузере) можно было бы сообщение выкидывать что синхронизация прошла. Как в мобильном браузере это делать я точно не знаю, но думаю тоже можно.

Т.е. при сохранении на КП вы узнаете что либо все ок, либо не ок и тогда решите что делать.

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Вот это UX. и вполне как видите можно обойтись без всяких ненужных доп кнопок,
Нельзя.
Ответ введенные позже онозначно должен считаться главным.
См. вариант II. Он абсолютно корректен - явный запрос данных с сервера (обновление страницы) всегда должен возвращать текущие данные и после этого они, конечно же, не могут неявно измениться. А вы именно это предлагаете. Задача автосинхронизации, ещё раз, не имеет решения. То, что гугль даже не пытается, как бы намекает. Поверьте, гугл гораздо профессиональнее нас с вами.
Но она будет даже в случае с замочком и явным сохранением.
Видимо, вы всёй таки не знаете, что такое синхронные запросы. Печально)

При автосинхронизации можно, конечно, показывать те же предупреждения. Но когда? Когда телефон лежит в кармане уже?)) Или через час, когда появится интернет, сразу на 10 КП?)) При асинхронных операциях никакие предупреждения по сути невозможны - их просто нереально сделать удобными и информативными.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
См. вариант II. Он абсолютно корректен - явный запрос данных с сервера (обновление страницы) всегда должен возвращать текущие данные и после этого они, конечно же, не могут неявно измениться. А вы именно это предлагаете. З

Мн кажется, вы очень невнимательно читаете, что я предлагаю.
1. Если сети нет после 2-3 попыток, то дать возможность увидеть ошибку сети и указать что делать: синхронизировать ли ответ позже или нет.
Если выбрано синхронизировать, то см. пункт 2
2. Если между двумя введенными ответами (время конечно же ввода клиентского) время меньше 10-20-30-60 секунд, то НЕ сохранять ответ и показать окно предупреждения и подтвержения (в приложении это было бы сделать очень легко, в браузере думаю, тоже).
При этом абсолютно если ответ пришел через час (см. пункт 1) то действовать точно так же.

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
показать окно предупреждения и подтвержения
Кому? Телефон в кармане.
Если клиента два то запросы будут в любом случае паралельными.
Откройте для себя блокировки) Безусловно всё можно лочить, да. Какая вам разница, в каком порядке приходят запросы, если вы в любом случае не сможете случайно сохранить неправильный ответ? (посылая два ответа - правильный и неправильный, одновременно). Плюс эта ситуация дикая. Накой ляд одновременно пытаться сохранить одно и то же, стоя рядом?

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
И еще раз - я хочу донести, что кнопка с синхронизацией (и текущими проблемами) не связаны вообще никак!
Простейшее доказательство:
Счтайте кнопку добавили.
И вы (а также все участники вашей команды) просто жмут эту кнопку всегда (после ввода ответа).
И вы получаете все те же проблемы синхронизации.
Кнопка может помочь ТОЛЬКО если один запрос обработан, второй клиент получит обновление. Но как же он получит обновление если нет интенета?
А если и есть.
Получит.
Ок, вы предлагаете заблочить поле и не давать возможность вводить.
Я предлагаю не блочить. Вместо этого если между ответами прошло 10-20-30-60 секунд то спросить у пользователя подтверждения мол "ваш ответ отличатся от введенного 20 секунд назад. Сохранить?".
При этом если в вашем случае поле заблочилось (т.е. синхронизация клиента произошла), то в моем случае клиент также синхронизируется и получит текущий ответ и время его ввода.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Откройте для себя блокировки) Безусловно всё можно лочить, да. Какая вам разница, в каком порядке приходят запросы, если вы в любом случае не сможете случайно сохранить неправильный ответ? (посылая два ответа - правильный и неправильный, одновременно). Плюс эта ситуация дикая. Накой ляд одновременно пытаться сохранить одно и то же, стоя рядом?

Ваш пример 1 или 2. Интернет плохой. Но н есть. Вы решили 2 раза вбить ответы. Один раз неверный.
Неправильный пришел ранее, значит сохранился и поле (в вашем случае) заблочилось.

Кому? Телефон в кармане.

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

Опять же никакой кнопки лок для этого не нужно.

Приведите пример где ваша кнопка лока поможет, а мой алгоритм нет (не считая отличия, что можно ответ через час после сохранения явно поменять специально/случайно, как я писал это совсем другая задача)

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
И кстати еще один важный момент который вы мне кажется не понимаете.
Запрос это понятие двустороннее. (есть запрос, есть ответ, есть реквест таймаут, есть респонс таймаут)
Т.е. запрос может уйти на сервер и начать обрабатываться.
Но при этом соединение с клиентом может потеряться (тупо связь пропадет окончательно).
В этом случае для клиента это будет выглядеть как ошиька сети.
Но на  самом деле ответ нормально дошел до сервера и даже сохранился.
В этом случае вся ваша теория с ошибками, блоками, повторными вводами после ошиок тоже рушится

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
И вы получаете все те же проблемы синхронизации.
Нет. Если кнопка успешно сработала, то это гарантирует запись конкретного ответа на сервер. Никаким способом изменить его, явно не разлочив конкретно этот ответ, больше будет невозможно. Вне зависимости от состояния каких либо клиентов, интернета и прочего. Вы пришли на КП, сохранили ответ - всё, это гарантирует, что именно этот ответ сохранён, до тех пор пока вы именно этот ответ не захотите явно поменять. С точки зрения сервера нет никаких проблем синхронизации, потому что нет синхронизации. Есть только операция записи и блокирования/разблокироавния.
то спросить у пользователя
У кармана пользователя, видимо. У вас же всё асинхронное сейчас. Никакие вопросы по сути нереализуемы адекватным способом.
Ваш пример 1 или 2. Интернет плохой. Но н есть. Вы решили 2 раза вбить ответы. Один раз неверный.
Неправильный пришел ранее, значит сохранился и поле (в вашем случае) заблочилось.
С кнопкой совершенно другой паттерн использования. Какая разница, какой ответ пришёл первый, если про каждый ответ вы точно знаете, сохранился он или нет? И если вы получили ошибку - вы точно знаете, что потом надо обратить внимание на этот КП и убедиться, что сохранён правильный ответ. Любая ошибка от кнопки прям содержит текст того, что нужно сделать. Ситуация какой либо неопределённости с кнопкой априори невозможна, что бы вы ни делали. С неявным сохранением она не просто возможна, а присутствует просто перманентно - вы тупо не знаете, дошёл ли ваш ответ до сервера в принципе. Крах вкладки/севшая батарейка - и привет КП без ответа. Например. Немного решается локалстораджем, но это всё костыли, не устраняющие основную проблему, которая заключается в невозможности сохранить данные на сервер. Проще говоря: текущий маршрутник не позволяет сохранять данные на сервер. Решений этой проблемы вы не предлагали, заставить пользователя разбираться в тонкостях синхронизации и постоянно помнить про них, высчитывая что же в итоге, когда и куда уйдёт - это не решение, а бред.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
В этом случае вся ваша теория с ошибками, блоками, повторными вводами после ошиок тоже рушится
Вы точно программист?)) Потому что не похоже. Если клиент потерял ответ от сервера - он всего лишь получит ошибку и будет находиться в неактуальном состоянии. Ошибка подскажет пользователю, что надо попробовать ещё раз. Вот и всё. Более того: чтобы отловить ошибки сети, надо перед запросом на сохранение слать пинг. В этом случае вы почти никогда не получите собственно ситуацию, что вам не пришёл ответ от сервера на запрос сохранения. Плюс всё это никак не может привести к тому, что на сервере окажется сохранён ответ, который не ожидается, а цель только в этом.

Сохраняем ответ и нет ошибки - гарантированно он записан.
Сохраняем ответ и ошибка (любая) - надо что-то сделать.

Всё, никакой магии. Просто гарантированное сохранение конкретного ответа, всегда и при любой ситуации.

achekh

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

Еще раз - можете привести кейс, когда ваша кнопка помогает решить хоть какой-то кейс, а мой вариант нет (не считая изменнеия через час)?

achekh

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

Ирина Федорова

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Еще раз - можете привести кейс, когда ваша кнопка помогает решить хоть какой-то кейс, а мой вариант нет (не считая изменнеия через час)?
Батарейка села до тех пор, пока не появился интернет. Ответ вы потеряли. Продолжать?) Кнопка не решает кейсы. Кнопка записывает ответ. Кейсы нужно решать вам, но все вы их всё равно не в состоянии решить, потому что это невозможно.

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

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Ирина Федорова
Вот я тоже полностью согласен. Смотреть задания - ОК. Тут же можно и ответы в ридонли смотреть.
Никто же не заполняет маршрутник бумажный паралельно.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Батарейка села до тех пор, пока не появился интернет. Ответ вы потеряли. Продолжать?) Кнопка не решает кейсы. Кнопка записывает ответ. Кейсы нужно решать вам, но все вы их всё равно не в состоянии решить, потому что это невозможно.
Если вы выбрали "синхронизировать" и у вас села батарейка до появления сети то тут ничего не поможет.

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

Вы даже тут два разных и нехависимых кейса объединяете в один.

1. "чтобы точно знать что именно этот ответ сохранён ".  при вводе и отправке ответа вы видите ОК или не ОК.
Если не ОК, то два варианта:
а) ответ доставлен на севрер, но не приянят по причине того, что ответ отличается от сохраненного и введенного 10-30-60 секундами ранее.
Вы видите предупреждение и решате сохранить или нет
б) ответ не доставлен на сервер вы видите ошибку - ответ не сохранен.
Далее вы решаете что делать - пытаться отправлять дальше (пока не появится сеть) или же отменить.

2. "больше не будет изменён без моего явного желания" если ответ был изменен (именно изменен/введен, а не доставлен) через час после сохранения текущего, то это абсолютно другая задача.
Тут возможны два варианта:
- перезаписать всегда. т.е. считать, что любые изменеия, которые были сильно позже текущего ответа это дейтсивтельно обдуманные изменения, которые нужно принимать
- спросить пользователя типа "Ваш ответ отличается от введенного ранее. Перезаписать?".

При этом эти два варианта я бы делал не замочком у каждого КП а одной глобальной опцией на команду.

Malamut

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Ну и да, варианты I и II из сообщения выше - они остаются всегда. Вы предлагаете какую-то настройку. Уверены, что все поймут, что она значит, и будут её использовать именно так, как надо? Проще говоря - вы предлагаете всем командам постоянно помнить, как работает система, чтобы случайно её не сломать. Это бред. Участники вообще не должны знать никаких особенностей синхронизации и не должны держать их в голове. Что-то не так - показывай сразу ошибку с понятным текстом. Не показал ошибку - значит ты гарантируешь, что на сервере именно то, что имел ввиду участник (см. I и II).

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
я, наверно, могу придумать, как показывать рядом с точно синхронизированным ответом зелёную галочку. Типо если после изменения получили галочку - то ответ в форме совпадает с сохранённым на сервере. Дальше по-хорошему надо каждые N секунд убеждаться, что мы синхронизированы с сервером, и если нет - заменять галочки на вопросики.  Но это так се, если честно. И это не защитит от случайного редактирования, а эту задачу тоже надо решать.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Ирина Федорова так а чего легенду-то в каждый мобильник? :)
Бумажная же одна на команду.:))

А если серьезно, а что произойдет в момент когда первый и единственный телефон, в который вбиваем ответы, сдохнет?

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Ирина Федорова так а чего легенду-то в каждый мобильник? :)
Бумажная же одна на команду.:))

А если серьезно, а что произойдет в момент когда первый и единственный телефон, в который вбиваем ответы, сдохнет?


Тут можно сделать добавить кнопку "включть режим редактирования". и только одна сессия может редактировать. если телефон сдох - то на втором просто включаешь этот режим (первая сессия автоматически запрещает редактирование)

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut
Если ответ НЕ сохранен, то ошибка будет показана 
б) ответ не доставлен на сервер вы видите ошибку - ответ не сохранен.

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
б) ответ не доставлен на сервер вы видите ошибку - ответ не сохранен.

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

achekh

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

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

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
Зеленая галочка около ответа для 90% юзеров, которые так не заморачиваются, будет означать что ответ проверен и он правильный :)

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
б) ответ не доставлен на сервер вы видите ошибку - ответ не сохранен.

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

ну тут как обычный запрос на севрер. ждем пока выполнится + таймаут есть.
если в течении таймаута получили ответ все ок - то все ок.
если нет (например проблемы с сетью) - то ошибка.
т.е. фактически это нажатие save и ожидание ответа - либо ок либо нет.
Для данного случая таймаут в минуту в принципе должно быть достаточно.
Предлагаемый вами пинг тут не поможет, т.к. при нестабильной сети пинг может пройти, а когда пошлем запрос сигнал сети ухудшится и запрос не уйдет.
А в случае, если запрос не уходит, то как правило таймаут ожидается секунд 10-20. плюс опять же часто пробуют повторить запрос в этом случае.
Т.е. если есть проблема, то ждать секунд 30, а то и 60 это норм.
Можно в это время крутилку оказывать.

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

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Зеленая галочка около ответа для 90% юзеров, которые так не заморачиваются, будет означать что ответ проверен и он правильный :)
Можно рядом с измененным и не сохранненным показыть *, а после соханения удалять :)

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Зеленая галочка около ответа для 90% юзеров, которые так не заморачиваются, будет означать что ответ проверен и он правильный :)
Абсолютно так. Я просто написал как вариант решения проблемы с тем, что необходимо убедиться в том, что конкретный ответ сохранён. По мне так плохой вариант. Впрочем, дизайнер классный может и мог бы придумать какие то ходы, как это обыграть,чтоб было понятно, что именно сохранён, а не зачтён. У меня идей нет.

Malamut

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

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
се нормальные люди на кнопки сохранения добавляют анимации, что б было понятно, когда этот самый таймаут закончился. Без них это полный швах. Куда вы хотите добавить анимацию, и главное какую?)
Спиннер рядом/в поле ввода

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Спиннер рядом/в поле ввода
Воо! То есть через n миллисекунд после окончания ввода показываем спиннер, если всё ок - то убираем, а если нет - показываем ошибку?) И ошибка будет висеть всегда, кроме случаев, когда клиент точно уверен, что ответ совпадает с сервером?) А как последний пункт сделать, знаете? По идее это реализуемо, но приведёт к мельтяшению иконок во многих случаях. Ну и да, это фактически та же кнопка, просто неявная. Все те же проверки всё равно нужны, и те же ошибки, требующие реакции пользователя.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Я тут понял одну забавную вещь: классно, что БГ возглавил борьбу за прогрессивные интерфейсы, которые делают всё за пользователя, и сделал эту борьбу самоцелью) Но если у человека есть компьютер или смартфон, то кнопками он точно умеет пользоваться в совершенстве. А приучать его к лучшему миру - ИМХО, не с этого надо начинать) Да и у нормальных людей отсутствие кнопок или какой-либо индикации, если честно, будет вызывать неуверенность при любом раскладе. Индикацию можно, но - сложно. Плюс как заблокировать поле ввода, чтоб случайно не поменять ответ - непонятно (лишние символы в editaх на смартфонах из-за свайпов, тормозящих клавиатур и прочего - дело обычное). И ещё хотелось бы чтоб можно было как-то визуально выделять уже отвеченные КП. Блокировка решила бы и эту проблему.

Ирина Федорова

  • Болтун
  • Сообщений: 53
    • Просмотр профиля
А если серьезно, а что произойдет в момент когда первый и единственный телефон, в который вбиваем ответы, сдохнет?
А что происходит, когда первый и единственный бумажный маршрутник потерян/утоплен/сожжен? Вот тоже самое и должно произойти. Я не вижу проблемы сейчас на команду найти один рабочий стабильно телефон и повербанки к нему. И герметичный пакетик на случай дождя. На БГ никто не прыгает с тарзанки, не лазает по горам и не плавает на лодке за КП - кроме как от собственной неорганизованности ничто не побуждает телефон разрушить.

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

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

Ирина Федорова

  • Болтун
  • Сообщений: 53
    • Просмотр профиля
Ирина Федорова так а чего легенду-то в каждый мобильник? :)
Бумажная же одна на команду.:))
Не поняла сарказма. Скриншот заданий с экрана и отправить сокоманднику по времени занимает ровно столько же сколько сфотографировать бумажную легенду и отправить сокоманднику. То что легенда доступна каждому это всего лишь приятно. Вот молодцы организаторы -забота в чистом виде. Но если это приятно выливается в чехарду с ответами, которые засчитывают посимвольно, это как-то перечеркивает все остальное.

Слономышь

  • Флудер
  • Сообщений: 273
    • Просмотр профиля
На Дороге приключений как-то никого уже несколько лет не смущает из участников, что треккер, который контролирует маршрут и скорость передвижения и устанавливается на телефон одного из участников команды должен стабильно работать всю игру, а иначе снятие.
Ира, ДП орги двинулись дальше. Тереке на одну команду может работать сразу с двух устройств параллельно, ну а последовательно, само собой разумеется. Перелогиниться на другой телефон и «Алга»!
Единственное устройство с трекером требуют на RR, но там это важная часть построения стратегии, а не просто контроль прохождения/скорости.

Игрик

  • Оргкомитет
  • Сэнсей
  • Сообщений: 23 911
    • Просмотр профиля
ДП и РР игры на авто. Проблемы зарядки нет. На БГ абсолютное большинство пешком. И вопрос не в "не трудно взять паурбанк", а в "стараемся чтобы участникам ничего не нужно было специального"

Ирина Федорова

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

alex_a_ivanov

  • Сэнсей
  • Сообщений: 1 744
    • Просмотр профиля
А если серьезно, а что произойдет в момент когда первый и единственный телефон, в который вбиваем ответы, сдохнет?


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

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

M_R

  • Сэнсей
  • Сообщений: 4 094
  • https://m-reveur.livejournal.com/67917.html
    • Просмотр профиля
Многие посетители форума будут, полагаю, очень благодарны человеку, который достаточно кратко и понятно резюмировал бы весь этот безразмерный диспут.