Ru-Board.club
← Вернуться в раздел «Программы»

» SatMap

Автор: rex
Дата сообщения: 26.03.2009 17:08
relictus
А ты когда код менял, чтобы каптча выскакивал ничего больше не менял?
С утра ни одной каптчи! Ничего, вечером появятся.

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

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

Добавлено:


Цитата:
не предусмотреть ли возможность отображения в программе растров генштаба, привязанного в ОЗИ.

Было бы отлично. Карт под OZI попривязывали кучу, а сама программа с точки зрения удобства просмотра, крайне убогая. Вот было бы удобно, прямо из карты гугля переключаешься на топо или роад мап и наоборот.
Автор: netrebos
Дата сообщения: 26.03.2009 17:49
rex

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


У меня эта проблема дома решилась после словесной угрозы поменять оператора. Видимые обрывы связи прекратились. Остальное подправил настройками -- остановился на 15 секундах и 15 попытках. Ну а в конторе системный опратор озверел и чуть-ли не в ручную рвет связь. (Антикризисная мера)


Цитата:
С утра ни одной каптчи!

Если речь идет о версии exe от 24 марта -- каптчи сыпятся регулярно, через 15 -- 20 тыс тайлов.

Автор: relictus
Дата сообщения: 26.03.2009 18:18
rex

Цитата:
А ты когда код менял, чтобы каптча выскакивал ничего больше не менял?

Ничего больше не менял.

Автор: rex
Дата сообщения: 26.03.2009 19:15
netrebos

Цитата:
У меня эта проблема дома решилась после словесной угрозы поменять оператора.

Оператор как раз не при чем. Это мой батник специально реконнектится после каждой закачки, чтобы IP поменять и не ждать пока rapida разрешит снова качать.
Но с рапидой проще, с нее USD автоматом может качать, так что можно реконнектом и пренебречь, а вот сегодня качаю с долбанного депозита, и там без реконнектов надо ждать по часу, так что пришлось создать для SatMap эмуляцию плохого коннекта.


Цитата:
остановился на 15 секундах и 15 попытках

А у меня было 20 и 2 - может просто SatMap не успевал когда копм был перегружен?
Поменял на 15 - 5 потестирую.



Цитата:
Если речь идет о версии exe от 24 марта -- каптчи сыпятся регулярно, через 15 -- 20 тыс тайлов.

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

Автор: netrebos
Дата сообщения: 26.03.2009 19:26
relictus

Цитата:
После перезагрузки диска -- войти в версию мульти, занимавшуюся удалением становится невозможным. Появляется сообщение "невозможно сохранить файл конфигурации". Удалить сообщение удается только перезагрузкой, но перед ней появлется еще одно сообщение "Access violation at adress 006B3213 in module "SatMapGPS.exe". Read of address 00000008".


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

В общем результат такой

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

На этапе непосредственно удаления кнопка СТОП не нужна -- провоцирует к зависанию, если ее невзначай тронуть.

На этапе упаковки должна гореть надпись что-то вроде: "идет упаковка кэша, дождитесь завершения формирования файла journal".

Желательно дополнить функцию удаления возможностью выбора -- "удалить тайлы внутри выделенной зоны" и "удалить тайлы вне выделенной зоны"

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


Цитата:
When you delete information from a SQLite database, the unused disk space is added to an internal "free-list" and is reused the next time you insert data. The disk space is not lost. But neither is it returned to the operating system.
If you delete a lot of data and want to shrink the database file, run the VACUUM command. VACUUM will reconstruct the database from scratch. This will leave the database with an empty free-list and a file that is minimal in size. Note, however, that the VACUUM can take some time to run (around a half second per megabyte) and it can use up to twice as much temporary disk space as the original file while it is running.


В общем, спасибо.
Автор: relictus
Дата сообщения: 26.03.2009 19:40
rex

Цитата:
может relictus там случайно что-то не так исправил?

Это у тебя сегодня просто везучий день

netrebos

Цитата:
В этот момент я сделал принудительное прерывание программы, через диспетчер задач, а заодно еще делейтом удалил файл journal.

Ох уж эти шаловливые ручки


Цитата:
А описание процесса удаления с упаковкой кэша в хелпе нужно снабдить предупреждением

kalbaska, это уже к тебе
Как там с хэлпом, кстати?
Автор: rex
Дата сообщения: 26.03.2009 21:02
relictus

Цитата:
Это у тебя сегодня просто везучий день

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

netrebos

Цитата:
А описание процесса удаления с упаковкой кэша в хелпе нужно снабдить предупреждением

Ты действительно думаешь, что увидев "зависшую" программу пользователь полезет в хелп? И какой же пункт он там будет искать - "повешение"?
У тебя много знакомых которые читали хэлп Windows? Не отдельные пункты выданные по контекстному меню, когда припрет, а просто читали?

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

Сделай два сообщения как при импорте из GMV, вроде нижеприведенных:
Перед началом процесса:

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

А во время процесса просто повесь окошко:
"Программа работает"
Юзер будет видеть его и чувствовать себя спокойно и уверенно.


Цитата:
В этот момент я сделал принудительное прерывание программы, через диспетчер задач, а заодно еще делейтом удалил файл journal.


Надо в следующей версии сделать защиту файла journal от удаления и заблокировать клавиши CTRL ALT DEL .
Автор: netrebos
Дата сообщения: 26.03.2009 21:48
rex
relictus
Сейчас и мне смешно. Но я SQlite вижу впервые (а таких ой как много), а тут еще нужно каждый раз заново перетаскивать 4 гига для убийства, да и сама упаковка кэша время жрет, а процедура сопровождается противоречивыми сообщениями, как в диспетчере, так и в баре -- есть от чего сойти с ума. Хорошо кэш экспериментальный и разбирался я с собственной просьбой. А так возьмешь прогу, попробуешь на маленьком кэше -- все летает, засунешь рабочую базу и ...ец. Пока цитату про VACUUM не увидел -- ничего не мог понять. Так, что можно поправить и так, как предлагает rex
Автор: relictus
Дата сообщения: 26.03.2009 22:14
rex

Цитата:
Сделай два сообщения как при импорте из GMV

Видимо, придется...

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

Цитата:
Сейчас пока прошу дополнить эту функцию возможностью "обновить информацию об отсутстующих тайлах на Гугле" без перезакички.
Автор: Lucifier
Дата сообщения: 27.03.2009 00:48


и такая фигня постоянно. 100% если во время скачивания с выделением нажать на кнопочку "i", пересичтывающую статистику скачки.
Автор: netrebos
Дата сообщения: 27.03.2009 01:26
relictus

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

Речь идет об окне выделения, раздел скачать. К бару "не скачивать, только генерировать.." и "сохранять информацию о недоступных тайлах" добавить еще один --
"обновить информацию о недоступных тайлах" на Гугле.
Автор: relictus
Дата сообщения: 27.03.2009 09:28
Lucifier

Цитата:
и такая фигня постоянно. 100% если во время скачивания с выделением нажать на кнопочку "i", пересичтывающую статистику скачки.

Специально сейчас попробовал на последней версии: запустил закачку спутника и жмакал инфо-кнопку, пока палец не устал - инфа обновляется, ошибок нет.

netrebos
Куда добавить я понял, от меня ускользает смысл фразы "обновить информацию о недоступных тайлах"
Автор: VoltTUX
Дата сообщения: 27.03.2009 10:09
Если правильно понимаю, речь идет о возможности проверить наличие тайлов на гугле, для которых ранее было выдано сообщение "400 Forbidden". Т.е. узнать не появились ли там новые тайлы
Автор: relictus
Дата сообщения: 27.03.2009 10:14
VoltTUX

Цитата:
Если правильно понимаю, речь идет о возможности проверить наличие тайлов на гугле, для которых ранее было выдано сообщение "400 Forbidden". Т.е. узнать не появились ли там новые тайлы

А такое уже есть, см. опция "пытаться скачивать ранее недоступные тайлы". В данном случае как раз те тайлы, которые были отмечены как недоступные ("404 Forbidden") будут перезакачаны. Это не оно?
Автор: VoltTUX
Дата сообщения: 27.03.2009 12:11
Про "пытаться скачивать ранее недоступные тайлы" знаю, это немного не то. Не совсем правильно написал в предыдущем посте...
Вот, к примеру, есть у меня кеш в формате SAS или GoogleMV. И тот и другой не предусматривает хранение информации о недоступных тайлах. Соответственно, после импорта этих тайлов в SatMap инфа о наличии/отсутствии тайлов не добавится. А чтобы полноценно пользоваться всеми возможностями карты заполнения в SatMap, иметь эту инфу весьма желательно. И netrebos, как я понимаю, предлагает добавить возможность не скачивать тайлы (они уже, импортированы из другого кеша), а добавить в кеш только информацию о наличии/отсутствии.
Где-то так, не знаю как еще расписать. Может автор хотелки сумеет объяснить правильнее
Автор: netrebos
Дата сообщения: 27.03.2009 13:09
relictus
VoltTUX

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

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

Автор: relictus
Дата сообщения: 27.03.2009 13:11
VoltTUX

Цитата:
после импорта этих тайлов в SatMap инфа о наличии/отсутствии тайлов не добавится

Импортированные тайлы сохраняются с пометкой доступности, что естественно. Недоступных тайлов при импорте быть и не может, их же нет в кэше сторонних прог.
В общем,
Цитата:
Может автор хотелки сумеет объяснить правильнее

netrebos, давай, поясняй


Автор: netrebos
Дата сообщения: 27.03.2009 13:42
relictus
Странный баг какой-то пошел при экспорте в кэш SAS: "Acces violetion at addres 006BA517 in module 'SatMapGPS.exe'. Read of address 00000000". При этом кэш из satmap в satmap передается нормально. Но попадание информации из кеша дающего ошибку AV в кэш, который до этого без проблем контктировал с SAS приводит к тому, что и этот кэш начинает выдавать это AV. Попытка импортировать в такой кэш из SAS вызывает сообщение "Cannot perform this operation on a closed detabase". Ошибка возникла с кэшами 20 мульти, когда они работали параллельно. Но странность в другом воспроизвести эту ошибку после удаления проблемного кэша не удается. Т.е. 19 мульти продолжают работать, а на одном из вариантов удаляю кэш, создаю новый, закачиваю небольшой пробный участок экспортирую в SAS -- и все нормально. Проблемы возникают с относительно большими закачками. Вчера так скис улов прошлой ночи. В эту ночь повторилось.
Автор: relictus
Дата сообщения: 27.03.2009 13:47
netrebos

Цитата:
Совершенно верно -- обнавить информационную базу о хранящихся тайлах на гугле без их закачки.

Все равно не пойму - чем это отличается от обычной закачки с выбранной опцией пометки отсутствующих тайлов и режимом "не заменять"? Ведь имеющиеся в кэше тайлы уже и так помечены как доступные, они не перезакачиваются, а те, что отсутствуют просто пометятся как не доступные. Чего я не улавливаю?
Автор: netrebos
Дата сообщения: 27.03.2009 13:47
relictus

Цитата:
давай, поясняй



Цитата:
Совершенно верно -- обнавить информационную базу о хранящихся тайлах на гугле без их закачки. Что бы потом уже можно было решеть тратить время на их перезакачку или оставить как есть в собственной базе.


Это касается тайлов взятых из других кэшей и тайлов закачанных без сохрвнения информации.



Добавлено:
relictus

Цитата:
Все равно не пойму - чем это отличается от обычной закачки с выбранной опцией пометки отсутствующих тайлов и режимом "не заменять"?


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


Добавлено:
rex
Ты кажется то же любитель пылесоса -- посмотри у тебя проблем с импортом в САС ничего необычного не происходит?

Добавлено:
relictus Сделай доброе дело, взгляни на поломанный кэш, если, конечно, тебе не сложно забрать 113мб. http://gettyfile.ru/272624/ . Одинаковая ошибка по всем 20 кэшам, которые создавались 20 пылесосами. Ошибка, как мне кажется, возникает именно в базе. Я пытался обработь кэш более старыми версиями программы -- результат тот же. В "шаловливых ручках" тоже себя обвинить не могу -- только капчу вводил. На 10 - 15 пылесосах такого не возникало.

Вот тут ниже нашел. Может речь идет об ограничениях количества вариантов мульти к железу при закачке. Проблема возникла процессоре 900 мгц ОЗУ 2гб, работавшем с внешним диском на 40 гб, на котором было 31 гб свободного места. Общий объем задания на загрузку в первом случае не превышал 10 гб, второго -- 1,5 гб.

Но разобраться с этим надо -- каким-то образом ошибка перекочевывает в итоговый кэш Satmap через импорт\экспорт. До этого нормально общавшийся с САС кэш, начинает так же глючить. На отображении информации в самой SatMap эта ошибка не отражается. Получилась своеобразная блокировка для конкурентов. А ты жаловался, что твоя программа превращается в универсальный комбайн по конвертации. Экспорт\импорт проблемного кэша в другие программы не пробовал.


Цитата:
Почему возникает ошибка Access Violation?

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

1) Обращение к не созданному объекту.

var e:TEdit;
begin
e.text:='Hello world!';
end;

В данном случае объект e ещё не создан и идёт обращение к памяти, которая ещё не выделена.

2) Обращение к уже разрушенному объекту:

var e:TEdit;
begin
...
e.free;
...
e.text:='Hello world';
end;

Тут есть хитрость, допустим вы хотите проверить есть ли объект и модернизируете код:

if e<>nil then e.text:='Hello world!';

или

if assigned(e) then e.text:='Hello world!';

Особенно часто приходится такое делать когда
надо уничтожить объект:

if e<>nil then e.free;

Так вот - такой код может быть источником ошибки, так как метод Free автоматически не устанавливает указатель в Nil. Обязательно после каждого Free используйте установление указателя в nil:

e.free;
e:=nil;

3) При выходе за границы динамического массива обычно генерится ошибка "Index out of bound", но возможно и возникновение Access Violation, особенно когда не стоят опции компилляции для проверки границ массивов. Эта ошибка может быть очень сложна в отлаживании - дело в том что допустим у вас есть массив а длиной в 10 элементов, в пишете:

a[20]:=something;

И эта строка может пройти как и надо, без всяких проблем, но её выполнение повредит какой-то другой код, причём каждый раз другой! Теперь самая безобидная операция типа i:=10 может вдруг внезапно дать Access Violation.

4) На форме на onCreate вызывается что-то с других форм - эти другие формы на этот момент еще не созданы

5) На форме на onDestroy вызывается что-то с других форм - эти другие формы на этот момент уже разрушены



Автор: relictus
Дата сообщения: 27.03.2009 19:38
netrebos

Цитата:
Сделай доброе дело, взгляни на поломанный кэш, если, конечно, тебе не сложно забрать 113мб

Сложно. Дома - диалап, только читаю/отвечаю на почту. На работе интернет лимитный - до 15 МБ могу скачать в день.

Цитата:
Или ты таким образом устраняешь конкурентов?

Это ты загнул, какие конкуренты? Я понимаю, был бы продукт коммерческий, а так... Прога изначально делалась для себя и ни с кем я не собираюсь конкурировать, не нравится - не юзай, альтернатив полно......

Автор: netrebos
Дата сообщения: 27.03.2009 19:42
relictus

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


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

Автор: relictus
Дата сообщения: 27.03.2009 20:42
netrebos

Цитата:
А вот с этими-то АV, чего делать-то?

Этот кэш вообще просматривается программой?
Попробуй экспортировать его в файловый кэш GoogleMV, а затем импортировать в новый кэш SatMap.
Автор: netrebos
Дата сообщения: 27.03.2009 21:34
relictus

Цитата:
Попробуй экспортировать его в файловый кэш GoogleMV, а затем импортировать в новый кэш SatMap.

Еще один облом -- т.е очередное AV 006B3A9 address 00000000. После этого все кнопки satmap прекращают работать. А в диспетчере указывается, что программа "работает".
Автор: relictus
Дата сообщения: 27.03.2009 21:37
netrebos
А нет ли у тебя случаем в этом сбойном кэше тайлов, отмеченных как недоступные? Если так, то я, кажется, знаю из-за чего ошибка.

PS Готовь магарыч за экспорт в кэш GPSProga
Автор: netrebos
Дата сообщения: 27.03.2009 21:45
relictus
Ну магарыч ты давно заслужил.


Цитата:
А нет ли у тебя случаем в этом сбойном кэше тайлов, отмеченных как недоступные? Если так, то я, кажется, знаю из-за чего ошибка.


Вполне возможно, что и есть. Отмечаю-то не я, а программа при включенной функции "сохранять в кэше информацию о недоступных тайлах". Действительно, после того, как в программе появилась функция отоброжения слоев, я стал пользоваться и функцией "сохранять...." А выделение-то под закачку я делаю с 8-10 слоя, где реального положения дел на гугле на 15 - 19 слое не видно.
Автор: relictus
Дата сообщения: 27.03.2009 22:20
netrebos
Если все срастется, то в понедельник выложу новый билд с экспортом в GPSProga и доработанной схемой наложения уровней. Попутно пофиксил пару моментов, могущих вызывать AV при экспорте в любой формат. Это может касаться и твоего случая, хотя я и не уверен, т.к. твои "шаловливые ручки" таки дотрагивались до файла journal и даже прибивали его...

PS Ты так и не ответил на "Этот кэш вообще просматривается программой?"
Автор: netrebos
Дата сообщения: 27.03.2009 22:36
relictus


Цитата:
Ты так и не ответил на "Этот кэш вообще просматривается программой?"


А во это интересно. Хотел ответить, что просматриваются, так как утром просматривал на другой машине, но перепроверил. Результат оказался такой -- визуально черное поле, если зайти на 17-й слой, где должны быть выкаченные тайлы. Зато функция "наложения" выкаченные тайлы отобразила.



Цитата:
твои "шаловливые ручки"

На этот раз держал себя в руках

Автор: egor23
Дата сообщения: 27.03.2009 22:43
relictus

Цитата:
А нет ли у тебя случаем в этом сбойном кэше тайлов, отмеченных как недоступные? Если так, то я, кажется, знаю из-за чего ошибка.

в том кэше есть такие
если удалить эту информацию, то экспорт идёт нормально.
Автор: netrebos
Дата сообщения: 27.03.2009 22:45
relictus
PS В общем чудеса продолжаются -- после того как включил\выключил "наложение" -- тайлы в проблемном кэше стали отображаться.


Цитата:
Если все срастется

В общем, жду с нетерпением

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 2gis (ДубльГИС) 2ГИС


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.