/forums/comment/222854-wasd-net-slov-ja-vot-otkryl-dvorovye-ploshhadki
10.12.2015 10:40
WasD, нет слов.

Я вот открыл дворовые площадки, которые регистрировал 2 года назад - это просто ж*па. Реально!..
Все площадки подвязаны к домам. Все площадки передвинуты...
Возле школьного стадиона 3 площадки - турники (которые отнесены сейчас к зданию детского садика), турники на стадионе, и дворовая площадка рядом-стоящей 5ти этажки. Такое впечатление, что туники и дворовая площадка были объединены под один ID - подвязанный сейчас к зданию школы.

Скриншот.

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

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

Для примера хоты бы так:

Может ты припомнишь какой-то фикс, который по координатам площадки определял ее адрес (через гугл сервис), а потом сделали апдейт - установили новые координаты (сделали переподвязку площадок), согласно их географического адреса ??
Смотрю на олд (http://old.workout.su/areas/city/496) - там вообще минимум регистраций площадок. С чем сравнивать ?
В общем - ты постановщик задачи, база под твоим ведомством. По факту - базу криво проапдейтили. Другой причины я не вижу. Если у тебя нету бэкапа - печально.




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



"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222860-quote-name-vago-post-222854-ili-te-kto-ih-vvodil
10.12.2015 11:15
<quote name=vago post="222854">
Или те кто их вводил - тоже рукожопы, и указывали на карте не точку локации площадки, а адреса домов ?</quote>

WasD, cмотри!

Я открыл томские площадки. Ткнулся куда попало - координаты к домам не подвязаны. Т.е моя программа выдала данные, сервер их принял - хорошо.
Дата регистрации этих площадок - 13-августа-2015 17:31


А теперь я смотрю первые площадки, зарегистрированные через мою программу - 100% что они были отправленны с правильными координатами (т.е не подвязанными к домам), а вот твой сервис их (координаты) профиксил.
Первые введенные площадки через мою программу -
30-июля-2015 19:00 (я обвел их красной линией... 4ая площадка была зарегистрирована в декабре - вот она и не подвязана к "крыше дома")


А вот теперь вспоминай, какой фронт работ проводился с 30-июня по 12-августа. И что могло зацепить фикс локаций.
Не думаю, что мне стоит заниматься воспроизведением бага.
Это косяк на вашей стороне.

"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222861-sejchas-posmotrel-po-moskve-dejstvitelno-mnogie
10.12.2015 11:18
Сейчас посмотрел по Москве - действительно, многие площадки к домам подвязаны. Очень странно.
Хотя та, что я добавлял недавно, норм.
/forums/comment/222862-wasd-ty-mne-kak-to-podskazal-chto-tdd-krutaja-shtuka
10.12.2015 11:23
WasD, ты мне как-то подсказал, что TDD крутая штука...
Я вот что нашел - MVP (Model View Presenter). Это не TDD, но тоже типа того - проектирование модели, а потом оформление вызовов в режиме хардкодной эмуляции поведения пользователя. http://habrahabr.ru/post/131446/

"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222865-quote-name-mike38217-post-222861-hotja-ta-chto-ja
10.12.2015 11:29
<quote name=mike38217 post="222861">
Хотя та, что я добавлял недавно, норм. </quote>
mike38217, какой-то косяк 100% случился в интервале 30-июня / 12-августа. Грешу на System. Вероятно он запускается руками на сервере.
У меня нету информации, чтобы вообще о чем-либо предполагать 😃

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




"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222870-vago-davaj-razbiratsja-po-porjadku-1-v-kakoj-to
10.12.2015 12:30
vago

Давай разбираться по порядку.

1) В какой-то момент какой-то процесс меняет данные по ГПС площадки? При этом вообще непонятно какой и когда, так? Но то, что меняет - это очевидно.

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

<quote name=vago post="222839">
10.12.2015 09:13
Было бы не плохо отсортировать список стран и городов в алфавитном порядке.</quote>

Увидел, исправим!

<quote name=vago post="222854">
Ладно, всяко может быть. Прокрутил карту вправо, прокрутил влево - площадки всего города подвязаны к домам !..
ВСЕ ПЛОЩАДКИ, КАРЛ!... Какой смысл углубляться в ловлю ошибок передачи локаций точного позиционирования, если база всего города уже и так похерена ?!</quote>

К тем домам, которые указаны в адресе площадки, верно?

<quote name=vago post="222854">
Может ты припомнишь какой-то фикс, который по координатам площадки определял ее адрес (через гугл сервис), а потом сделали апдейт - установили новые координаты (сделали переподвязку площадок), согласно их географического адреса ??</quote>

Не было такого фикса.

<quote name=vago post="222854">
ps: случайно наткнулся на дубль площадки. Может тоже чей-то тест - подвязка к крыше дома, и рядом она же. Могу предполагать, что это косячит твой сервис System при оформлении портированных площадок с других ресурсов (а вы сэкономили на QA, и точек отката для восстановления базы, я так понимаю, тоже нету).</quote>

Если бы ты дал айдишник площадки, было бы ещё круче)

<quote name=vago post="222862">
WasD,
ты мне как-то подсказал, что TDD крутая штука...
Я вот что нашел - MVP (Model View Presenter). Это не TDD, но тоже типа того - проектирование модели, а потом оформление вызовов в режиме эмуляции хардкодного поведения пользователя.
http://habrahabr.ru/post/131446/

</quote>

Но у нас-то все отлично работает в этом плане, проблема в том, что в какой-то момент происходит пересохранение координат площадки. Вообще по неведомой причине.
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/222900-quote-name-wasd-post-222870-1-v-kakoj-to-moment-kakoj
10.12.2015 14:53
<quote name=WasD post="222870">
1) В какой-то момент какой-то процесс меняет данные по ГПС площадки? При этом вообще непонятно какой и когда, так? Но то, что меняет - это очевидно.</quote>
Полагаю что не так. Может быть несколько ситуаций.
1. Запускается что-то в потоке. И в зависимости от того успеет ли отработать процесс в потоке или нет - происходит изменение данных. Данные на уровне приложения - глобальные. Вот они и сохраняются уже измененными. Это что-то типа того, что происходит с личными данными - сейчас они корректные, а стоит походить по экранам.... и какой-то АсинкТаск изменяет данные на уровне Applicaton (приложения).
Применительно к личным данным - может быть это фоновая синхронизация площадок, может информация об регистраторе какой-то площадки выходи на уровень приложения - и садится в данные пользователя.
Может какая-то описка в коде, или временная переменная - заведенная для дебага, а потом не подчищенная.
2. Я предположил, что это System косячит. По крайней мере - почему площадка села на крышу колледжа, и рядом площадка с такой же картинкой - но по описанию видно что ее точно не System посадил. Может в этом направлении начать смотреть.

<quote name=WasD post="222870">
Бекап базы с последующим выяснением - у кого изменились координаты - ничего не даст. Потому что это даст такой же результат, как и сейчас - видимость того, что данные изменились</quote>
Бэкап нужен для того чтобы восстановить изначальные данные, которые сейчас подвязались на крыши домов. Логирование позволит определить какая площадка изменилась, и по статистике увидеть что этому предшествовало - корректировка существующей площадки, или ввод новой. В зависимости от этого анализировать логику - что вызывалось, почему работа с другой площадкой задела эту - может они приграничные по расположению в списках. Может работает какой-то счетчик и вместо корректного позиционирования на элемент списка делается -1, ли +1 смещение.

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

Задача сейчас не в том чтобы воспроизвести ошибку, а в том, чтобы локализовать причину подобного проявления. Есть данные, есть процессы. И как увидеть какие действия проводятся с базой преднамеренно, и что меняется непреднамеренно - я так понимаю, что при настоящей организации работающей модели этого не сделаешь. Может сейчас будет введена площадка №4657, а зацепится #1058. Потому что она попадет под фильтр измненений, или потому что она на нее укажет индекс, или хз чего.
В подобных ситуация сперва проводится исследование, а потом уже по результату того исследования делается багфикс.

<quote name=WasD post="222870">
Разработчики клянутся, что быть такого не может. Потому что данные записались в базу данных и все.</quote>
Это еще раз говорит о том, что нужен некий механизм, позволяющий отмониторить и просигнализировать, что происходит попытка несанкционированного изменения данных, т.е данные меняются, а должны ли они меняться или нет - это уже вопрос второй.
Другими словами, если идет правка #6512, то нужно чтобы как-то система отреагировала, если будет изменены данные и в #1321. Как-то так. Я назвал это логированием. По дате изменений конкретной локации можно было бы определить какое значение было до этого (затерлось), а какой момент (те изменения над какой площадкой проводились в это время еще) - это поможет локализовать причину.
Повторюсь - то что какой-то косяк прошел по базе, это вроде бы как очевидно.



<quote name=WasD post="222870">
Почему и как? Хрен его знает. Надо понять, как это отловить</quote>
предлагаю логировать. на каждый ID площадки организовать трекинг изменений - статистику изменений (число, время), значение (что было на что меняется), статус строки (новая, апдейт, удаление). Как-то так.
При мониторинге проблемной ситуации, или неясности - делается запрос на таблицу лога. И по хронологии видим последовательность что на что менялось, по каким площадкам, а потом уже начинаем курить исходники - почему такое произошло.


<quote name=WasD post="222870">
К тем домам, которые указаны в адресе площадки, верно?</quote>
Ой, я не докапывался до этого момента. Полагаю что да.
Могу сказать, что по сути, адрес не имеет никакого значения. Я вообще заморачивался лишь с ЖПС данными. По ЖПС данным гугл сервис выдает адрес для описания, но отправной точкой является именно локация, а не номер дома, который подтягивается по этой локации.

<quote name=WasD post="222870">
Не было такого фикса.</quote>
Фикса небыло. А что было ? System. Как он работает. В какой момент. Он сидит сервисом ? может ли он изменять разделяемые переменные (разделяемые - это в смысле глобальные, на уровне приложения).

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


<quote name=WasD post="222870">
Если бы ты дал айдишник площадки, было бы ещё круче)</quote>
Посмотри на скриншот. Там какой-то колледж. И адрес площадки в маркере отображен. Я думаю, что ты найдешь ее. И сможешь сопоставить кто их заводил, с каким интервалом. Может System тут не при чем - может он сам жертва того, что локацию этой площадки запилил злобный фоновый процесс...

<quote name=WasD post="222870">
Но у нас-то все отлично работает в этом плане, проблема в том, что в какой-то момент происходит пересохранение координат площадки. Вообще по неведомой причине. </quote>
Не совсем понятно о каком плане (с котороым у ас все ок) ты говоришь 😃 Озвучен ряд замечаний, воспроизведен ряд крешей, указана проблема с базой. При должном подходе этого всего не должно было быть.
Ответственность целостности данных лежит исключительно на Вас. И если Вы прошляпили момент порчи данных, а разработчики препираются, что такого не может быть потому что быть такого не может - это весьма прискорбно.

Хм, я могу предположить, что было бы весьма разумно организовать некий коммуникационный протокол между клиентом и сервером. Чтобы отправляю площадку на регистрацию (или корректировку), сервер не просто принимал данные, а отдавал информацию на клиента - например ID принятой площадки. М чтобы клиент после регистрации площадки мог сравнить данные с сервера со своими, которые он до этого отправил на регистрацию. По результату такого сравнения - будет видно, не закосячил ли сервер, адекватные ли данные сели в базу, или со смешением "на крышу дома".
Разумно рассмотреть было бы это на уровне MVP.
И далее, на этом же уровне было бы практично при синхронизации кеша приложения и сервера - не тянуть измененные данные, не переинициализировать кешь, а мониторить - сколько площадок новых, сколько измененных. И делать синхронизацию кеша - по лист списку (либо по кнопке "синхронизировать все").
Этот момент бы мог визуализировать состояние базы сервера - можно было бы мониторить какие площадки изменились, а потом уже пытаться анализировать почему они изменились..
В любом случае, с подходом MVP было бы проще все это замутить 😃
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222905-wasd-uzhasno-smotritsja-moj-predydushhij-post-mnoga
10.12.2015 14:58
WasD, ужасно смотрится мой предыдущий пост - "многа букафф, ниасилил" 😃
В общем, я озвучил все свои мысли. Не думаю, что я могу что-то подсказать еще. Было бы интересно таки узнать из за чего такой происходит косяк с данными, и как вы собираетесь (и собираетесь ли вообще) его ловить за "хвост" 😃
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222906-quote-name-vago-post-222900-fiksa-nebylo-a-chto-bylo
10.12.2015 15:02
<quote name=vago post="222900">
Фикса небыло. А что было ? System. Как он работает. В какой момент. Он сидит сервисом ? может ли он изменять разделяемые переменные (разделяемые - это в смысле глобальные, на уровне приложения).</quote>

System никак не работает, просто взяли базу calisthenics-parks и залили под аккаунтом System. Всё.

<quote name=vago post="222900">
Может проблема на не уровне приложения, а не уровне сервера (сайта) - может сервис, может процесс по расписанию (или запускается руками) ? Ведь что-то в какой-то момент "пилит" данные! Может динамики изменений сейчас нет (мои площадки августовсвие - не подпорченные), может что-то каждый день портится - рандомно пилится .. исследовать и мониторить нужно.</quote>

Проблема явно на уровне сайта 😦

<quote name=vago post="222900">
Не совсем понятно о каком плане (с котороым у ас все ок) ты говоришь Озвучен ряд замечаний, воспроизведен ряд крешей, указана проблема с базой. При должном подходе этого всего не должно было быть.
Ответственность целостности данных лежит исключительно на Вас. И если Вы прошляпили момент порчи данных, а разработчики препираются, что такого не может быть потому что быть такого не может - это весьма прискорбно.</quote>

Я имею в виду, что добавление площадки работает все корректно, вся инфа сохраняется правильно, более того в течении какого-то времени вся инфа отображается правильно, потом в какой-то момент происходит что-то что сбивает настройки ГПС и перезаписывает их по ГПС указанному в адресе. Что вообще бред как такое может быть???
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/222912-quote-name-wasd-post-222870-razrabotchiki-kljanutsja
10.12.2015 15:11
<quote name=WasD post="222870">
Разработчики клянутся, что быть такого не может. Потому что данные записались в базу данных и все.</quote>
Не только. Есть еще корректировка данных. Когда вызываетя корректировка? На корректировку уходят инициализированные данные. Эти данные - расшаренные ? Отправляются данные фоновым процессом ?
Запрашиваются значения этих переменных откуда - из фонового процессе ? Может ли механизм работы основного процесса сделать изменения расшариваемых данных до того, как фоновый процесс еще не закончил работу ? Лочатся ли адреса переменных, пока фоновый процесс не закончил работу ?

Это так - размышления на скорую руку. Потому что хз что является причиной - мобильное приложение, или процесс на стороне сервера. Это я к тому, что не все так просто - "сели данные в базу и все".
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222915-quote-name-wasd-post-222906-system-nikak-ne-rabotaet
10.12.2015 15:20
<quote name=WasD post="222906">
System никак не работает, просто взяли базу calisthenics-parks и залили под аккаунтом System. Всё.</quote>
Хм...
<quote name=WasD post="222906">
Проблема явно на уровне сайта </quote>
Ну это уже что-то.
<quote name=WasD post="222906">
потом в какой-то момент происходит что-то что сбивает настройки ГПС и перезаписывает их по ГПС указанному в адресе. Что вообще бред как такое может быть???</quote>
Попробуйте с конца - какие методы меняют данные реквизитов локации в базе?
МОжет для мониторинга - ввести какие-то параметры, чтобы отслеживать кто вызывает эти меторы - целенаправленно, или по какому-то событию происходит вызов.
И опять таки - логировать ID, время, и новое значние.
Было бы неплохо мониторить еще и старое значение - но это можно сделать на уровне базы (на уровне таблицы), включить тригер onUpdate (или как он там называется) и на уровне тргера прописать - insert into logTable и указать старое и новое значение отслеживаемых реквизитов. Вообщем - логировать. А потом уже думать, имея данные для анализа.

ps: для новых записей и удаления что-то типа onInsert и onDelete - что-то типа этого.

"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222945-vago-budem-jetim-zanimatsja-sejchas
10.12.2015 18:16
vago

Будем этим заниматься сейчас.
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/223470-wasd-spoiler-img-http-workout-su-uploads-userfiles
14.12.2015 07:55
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/223546-vago-spasibo-obrashhu
14.12.2015 16:32
vago,

Спасибо, обращу!
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/226767-img-http-workout-su-uploads-userfiles-2016-01-02-21
02.01.2016 18:57

Только что отправил сообщение в коммент. Посмотрите на дату, на сортировку сообщений по хронологии.
"Принимай критику только от тех, кто добился больше тебя"(c)