Здравствуйте, Denis Ivlev, Вы писали:
DI>Здравствуйте, Sinclair, Вы писали:
S>>Интрига не в этом. Интрига — что, если у нас внутри этой таблички есть регион 1000*1000, в каждой из ячеек которого написано R[-1]C[-1]+1. S>>И вот у нас пользователь пишет в левом верхнем углу этого региона число 42. За какое время мы раздадим это изменение остальным 999 пользователям?
DI>Ответ — когда-нибудь. В любом случае на сервере или в кластере выполняем все расчеты, исходим из того, что у нас не должно быть грязных чтений, поэтому пока идет обработка ячейки блокируются.
Отличная идея, коллега. Как выполняется блокировка — через сервер, или через клиента? S>>Оповещаем пользователей лениво, например каждые 200 мс, то есть аккумулируем изменения и отправляем одним батчем. Появляется 2 кейса: DI>1. Обработка выполнилась быстрее и пользователь получил актуальные данные DI>2. Обработка в процессе и в таком случае у пользователя изменяемые ячейки становятся недоступными для редактирования
А вы уже получили полный список ячеек для блокировки?
На самом деле я не жду от вас конкретного алгоритма — это просто пример того, что spreadsheets не сводятся к тупому редактору независимых скаляров. Такую-то штуку, действительно, можно придумать за двадцать минут, особенно если резолвить конфликты как last edit wins.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Nuzhny, Вы писали:
N>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
Я в эту компанию инвестировал Её основатель — мой бывший коллега.
Ищут реальных зубров, но Rust пока заменили на С++.
Здравствуйте, kaa.python, Вы писали:
N>>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям? KP>Стандартное правило таких перечислений: если удовлетворяешь хотя бы 40% требований — смело шли резюме KP>Ну и задача вроде не сказать что жуть как что-то сложно, ведь эти 5 миллионов ячеек легко влезают в память сервера.
В реальности бывают таблицы на 5-10 гигабайт данных.
Здравствуйте, Cyberax, Вы писали:
C>В реальности бывают таблицы на 5-10 гигабайт данных.
Безусловно, я полагаю что даже несколько больше. Просто это так же влезает в память одной машины (и даже на GPU, буде желание на нем посчитать что-то) что делает изначальную задачу с картинки не то что бы очень сложной. Ну либо у тебя есть информация о сложностях которые не очевидны из изначального описания.
UPD. а C++ вместо Rust это очень правильно, не надо создавать сложности на ровном месте.
Здравствуйте, kaa.python, Вы писали:
C>>В реальности бывают таблицы на 5-10 гигабайт данных. KP>Безусловно, я полагаю что даже несколько больше. Просто это так же влезает в память одной машины (и даже на GPU, буде желание на нем посчитать что-то) что делает изначальную задачу с картинки не то что бы очень сложной. Ну либо у тебя есть информация о сложностях которые не очевидны из изначального описания.
Проблема в том, что:
1. В браузер они таки не влазят.
2. Простой пересчёт всего при каждом изменении слишком накладен.
В общем, всё не сложно, если кто-то другой пишет
KP>UPD. а C++ вместо Rust это очень правильно, не надо создавать сложности на ровном месте.
Они наняли опытного профессионала с 20 годами стажа на С++, так что вполне очевидное решение.
Здравствуйте, Sinclair, Вы писали:
S>Отличная идея, коллега. Как выполняется блокировка — через сервер, или через клиента?
Все стандартно — клиент редактирует ячейку, то есть отправляет на сервер запрос, далее получает ок и ячейка блокируется, либо в худшем случае отлуп, если кто-то успел раньше. Если он ничего сам не редактирует, то все равно лонг полом получает свою въюху, если там что-то поменялось.
DI>>1. Обработка выполнилась быстрее и пользователь получил актуальные данные DI>>2. Обработка в процессе и в таком случае у пользователя изменяемые ячейки становятся недоступными для редактирования S>А вы уже получили полный список ячеек для блокировки?
Кто мы? Клиент? Естественно, он же с сервера получил свою въюху, там вся инфа есть.
S>На самом деле я не жду от вас конкретного алгоритма — это просто пример того, что spreadsheets не сводятся к тупому редактору независимых скаляров.
Да, это понятно, что есть масса работы и масса нюансов, но и впадать в ступор причин не вижу.
Здравствуйте, so5team, Вы писали:
S>PS. Тут удалось достаточно надежно идентифицировать данного персонажа. Кому-нибудь хочет знать, кто пишет под псевдонимом "Denis Ivlev"? Или Максим сам наберется смелости и таки представится?
Здравствуйте, Nuzhny, Вы писали:
N>Он работал в министерстве каком-то и весь учёт был в Excel. Считал таблицы дожития для своей республики. Вот и придумал новый алгоритм, который на тех же вычислительных ресурсах и в той же среде работал значительно быстрее. Научный результат, защитился. Плюсы он не знал.
Подобные задачи решаются покупкой более мощных ресурсов. Проверено электроникой.
Здравствуйте, mgu, Вы писали:
S>>PS. Тут удалось достаточно надежно идентифицировать данного персонажа. Кому-нибудь хочет знать, кто пишет под псевдонимом "Denis Ivlev"? Или Максим сам наберется смелости и таки представится?
mgu>Так это он отравил Навального?
А этого вашего Навального кто-то травил?
Касательно же лже-Дениса гораздо более интересно, приложил ли он руку к уходу лидера проекта, разработкой которого сейчас лже-Денис руководит.
Здравствуйте, Denis Ivlev, Вы писали:
DI>Все стандартно — клиент редактирует ячейку, то есть отправляет на сервер запрос, далее получает ок и ячейка блокируется, либо в худшем случае отлуп, если кто-то успел раньше. Если он ничего сам не редактирует, то все равно лонг полом получает свою въюху, если там что-то поменялось.
Напомню — речь идёт о миллионе ячеек, которые изменятся после записи в ячейку A1.
DI>Кто мы? Клиент? Естественно, он же с сервера получил свою въюху, там вся инфа есть.
Интересно бы прикинуть размер этой "вьюхи".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Denis Ivlev, Вы писали:
DI>>Все стандартно — клиент редактирует ячейку, то есть отправляет на сервер запрос, далее получает ок и ячейка блокируется, либо в худшем случае отлуп, если кто-то успел раньше. Если он ничего сам не редактирует, то все равно лонг полом получает свою въюху, если там что-то поменялось. S>Напомню — речь идёт о миллионе ячеек, которые изменятся после записи в ячейку A1.
DI>>Кто мы? Клиент? Естественно, он же с сервера получил свою въюху, там вся инфа есть. S>Интересно бы прикинуть размер этой "вьюхи".
А как бы ты решил эту проблему? Мне реально интересно, т.к. критикуемый вариант мне кажется достаточно разумным.
Здравствуйте, so5team, Вы писали:
S>Не только прошедший собеседование, но и выживший в корпоративных дрязгах и добравшийся по головам на должность менеджера среднего звена.
Пишешь так, будто это что-то плохое
S>Правда вот не знаю, в данном случае является ли известная контора еще и приличной. Из нашей белорусской глубинки этого не видно.
Нормальная вполне, вмкрайнем случае в идиотизме уровня Акрониса замечена не была
Здравствуйте, kaa.python, Вы писали:
S>>Не только прошедший собеседование, но и выживший в корпоративных дрязгах и добравшийся по головам на должность менеджера среднего звена.
KP>Пишешь так, будто это что-то плохое
Это не я так пишу, это mgu, я лишь гиперболизирую.
S>>Правда вот не знаю, в данном случае является ли известная контора еще и приличной. Из нашей белорусской глубинки этого не видно.
KP>Нормальная вполне, вмкрайнем случае в идиотизме уровня Акрониса замечена не была
Так я и говорю, что из наших болот не слышно ни хорошего, ни плохого. Хорошего точно не слышно
Здравствуйте, so5team, Вы писали:
mgu>>То есть прошедший собеседование в приличную контору?
S>Не только прошедший собеседование, но и выживший в корпоративных дрязгах и добравшийся по головам на должность менеджера среднего звена.
Сразу видно порядочного человека. Реальный подонок подсидел бы директора.
Здравствуйте, so5team, Вы писали:
S>>>Не только прошедший собеседование, но и выживший в корпоративных дрязгах и добравшийся по головам на должность менеджера среднего звена.
KP>>Пишешь так, будто это что-то плохое
S>Это не я так пишу, это mgu, я лишь гиперболизирую.
Я писал не про это и не по отношению к кому-либо лично. Просто не секрет, что в приличных конторах (не путать с вменяемыми) на собеседованиях принято опускать кандидатов хотя бы для прогиба по зарплате.
Здравствуйте, kaa.python, Вы писали: KP>А как бы ты решил эту проблему? Мне реально интересно, т.к. критикуемый вариант мне кажется достаточно разумным.
Ничего бы не блокировал, реплицировал бы все изменения, сливал бы "кто последний тот и папа", введя какой-нибудь искусственный алгоритм упорядочивания поверх часов Лэмпорта.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.