sawim@conference.jabber.ru


[00:22:30] *** -kv- выходит из комнаты
[00:28:32] *** -kv- заходит в комнату как participant и member
[00:43:04] *** Gerc выходит из комнаты
[00:59:06] *** Gerc заходит в комнату как moderator и owner
[01:01:41] *** Gerc выходит из комнаты: Replaced by new connection
[01:01:44] *** Gerc заходит в комнату как moderator и owner
[01:02:25] *** Gerc выходит из комнаты
[01:02:36] *** Gerc заходит в комнату как moderator и owner
[01:14:45] *** modi выходит из комнаты
[01:27:02] *** PtitsaF выходит из комнаты: Logged out
[01:27:16] *** PtitsaF заходит в комнату как participant и member
[02:30:49] *** goodwin98 выходит из комнаты
[02:33:24] *** PtitsaF выходит из комнаты: Replaced by new connection
[02:33:25] *** PtitsaF заходит в комнату как participant и member
[02:51:38] *** -kv- выходит из комнаты
[02:57:34] *** fog_hedgehog выходит из комнаты: Logged out
[02:57:50] *** SSKlord выходит из комнаты: Logged out
[02:58:10] *** SSKlord заходит в комнату как participant и member
[02:58:32] *** SSKlord выходит из комнаты
[03:00:38] *** fog_hedgehog заходит в комнату как participant и none
[03:12:57] *** SSKlord заходит в комнату как participant и member
[03:23:51] *** SSKlord выходит из комнаты: Logged out
[03:40:21] *** -kv- заходит в комнату как participant и member
[03:41:34] *** fog_hedgehog выходит из комнаты: Logged out
[03:48:20] *** fog_hedgehog заходит в комнату как participant и none
[03:56:05] *** -kv- выходит из комнаты: Logged out
[04:11:56] *** sarmat заходит в комнату как participant и none
[04:17:43] *** SSKlord заходит в комнату как participant и member
[04:38:27] *** fog_hedgehog выходит из комнаты: Logged out
[04:38:29] *** fog_hedgehog заходит в комнату как participant и none
[04:42:35] *** PtitsaF выходит из комнаты: Replaced by new connection
[04:42:37] *** PtitsaF заходит в комнату как participant и member
[05:01:10] *** SSKlord выходит из комнаты: Logged out
[05:03:24] *** 777Andrej выходит из комнаты: Logged out
[05:03:29] *** 777Andrej заходит в комнату как participant и member
[05:12:12] *** SSKlord заходит в комнату как participant и member
[05:12:34] *** SSKlord выходит из комнаты
[05:14:19] *** SSKlord заходит в комнату как participant и member
[05:14:42] *** SSKlord выходит из комнаты
[05:19:36] *** SSKlord заходит в комнату как participant и member
[05:34:09] *** 777Andrej выходит из комнаты: Logged out
[05:34:14] *** 777Andrej заходит в комнату как participant и member
[05:47:15] *** PtitsaF выходит из комнаты: Replaced by new connection
[05:47:17] *** PtitsaF заходит в комнату как participant и member
[06:04:06] *** 777Andrej выходит из комнаты: Logged out
[06:04:11] *** 777Andrej заходит в комнату как participant и member
[06:12:18] *** radiance заходит в комнату как participant и member
[06:24:15] *** 777Andrej выходит из комнаты: Logged out
[06:24:20] *** 777Andrej заходит в комнату как participant и member
[06:38:46] *** 777Andrej выходит из комнаты: Logged out
[06:38:52] *** 777Andrej заходит в комнату как participant и member
[07:04:24] *** 777Andrej выходит из комнаты: Logged out
[07:04:29] *** 777Andrej заходит в комнату как participant и member
[07:07:21] *** SetazeR заходит в комнату как participant и member
[07:23:22] *** fog_hedgehog выходит из комнаты: Logged out
[07:23:24] *** fog_hedgehog заходит в комнату как participant и none
[07:24:37] *** 777Andrej выходит из комнаты: Logged out
[07:24:42] *** 777Andrej заходит в комнату как participant и member
[07:38:46] *** 777Andrej выходит из комнаты: Logged out
[07:38:52] *** 777Andrej заходит в комнату как participant и member
[07:48:12] *** vort3 заходит в комнату как participant и member
[07:49:47] *** fog_hedgehog выходит из комнаты: Logged out
[07:50:23] *** fog_hedgehog заходит в комнату как participant и none
[07:58:22] *** vort3 выходит из комнаты
[08:07:20] *** fog_hedgehog выходит из комнаты: Logged out
[08:07:55] *** fog_hedgehog заходит в комнату как participant и none
[08:14:26] *** PtitsaF выходит из комнаты: Replaced by new connection
[08:14:28] *** PtitsaF заходит в комнату как participant и member
[08:44:30] *** fog_hedgehog выходит из комнаты: Logged out
[08:44:32] *** fog_hedgehog заходит в комнату как participant и none
[08:53:41] *** goodwin98 заходит в комнату как participant и member
[09:20:36] *** radiance выходит из комнаты
[09:21:14] <goodwin98> а если все сообщения в базу кидать, то ведь, когда таких сообщений будет с несколько тысяч, то, наверно, и sqlite будет немного задумываться? а ведь каждое открытие чата - это обращение к ней.
[09:22:11] <goodwin98> а еще, как я и думал, глючит не реализация rms, а то как к ней обращаются. К примеру, зачем сохранять в истории то, что получено при входе в конфу от сервера ?
[09:22:13] *** Hombreby меняет ник на adelens
[09:23:24] <adelens> Как я понял поймал только что пуш. Закрытый савим сам запустился, подключился к сети и показал сообщения новые. Оно?
[09:23:54] <goodwin98> да
[09:24:43] *** _vt заходит в комнату как participant и member
[09:28:40] <Gerc> goodwin98, хранить сообщений столько, сколько указано в настройках. И щас история грузится только при создании чата
[09:30:33] <goodwin98> Gerc: при созданиии чата они загружаются из истории и приходят от сервера ?
[09:32:17] <Gerc> goodwin98, да. Потомучто время последнего сообщения не берется из истории
[09:33:08] <goodwin98> Gerc: можно и взять.. но я вообще о другом. То, что приходит от сервера, при входе в чат, тоже сохраняется в истории.
[09:33:34] <goodwin98> По крайней мере так в версии 22, в которой я ковырялся
[09:34:38] <Gerc> goodwin98, да, много раз одно сообщение может записаться в историю.
[09:35:35] <goodwin98> ну вот.. надо бы убрать это
[09:47:36] *** goodwin98 выходит из комнаты: Logged out
[09:47:38] *** goodwin98 заходит в комнату как participant и member
[09:51:24] *** adelens выходит из комнаты: I'll be back
[09:52:23] *** 6yp4uk заходит в комнату как participant и member
[10:05:29] *** goodwin98 выходит из комнаты: Logged out
[10:05:34] *** goodwin98 заходит в комнату как participant и member
[10:07:23] *** goodwin98 выходит из комнаты
[10:09:04] *** goodwin98 заходит в комнату как participant и member
[10:20:49] <Gerc> Надо тогда историю как-то грузить до прихода новых сообщений, чтоб время получить последнего сообщения из истории
[10:23:03] *** none заходит в комнату как participant и none
[10:23:33] *** vort3 заходит в комнату как participant и member
[10:24:00] *** fog_hedgehog выходит из комнаты: Logged out
[10:24:02] *** fog_hedgehog заходит в комнату как participant и none
[10:25:34] *** vort3 выходит из комнаты
[10:25:47] <none> [Gerc 10:20]
» Надо тогда историю как-то грузить до прихода новых сообщений, чтоб время получить последнего сообщения из истории
---
Согласна. Всем привет.
[10:30:49] <goodwin98> Время последнего можно в любой момент получить, но историю все равно надо первой, да
[10:32:06] *** evghetto_ заходит в комнату как participant и none
[10:38:41] *** 6yp4uk выходит из комнаты
[10:52:04] *** Gerc выходит из комнаты
[11:03:08] *** Gerc заходит в комнату как moderator и owner
[11:04:35] *** Gerc выходит из комнаты
[11:05:10] *** Gerc заходит в комнату как moderator и owner
[11:42:40] *** evghetto_ выходит из комнаты
[11:43:20] *** -kv- заходит в комнату как participant и member
[11:57:49] *** Gerc выходит из комнаты
[12:06:30] *** -kv- выходит из комнаты: Replaced by new connection
[12:06:31] *** -kv- заходит в комнату как participant и member
[12:13:24] *** Gerc заходит в комнату как moderator и owner
[12:16:40] <none> goodwin98, эту проблему пока не решили?
[12:17:04] <goodwin98> none, какую?
[12:17:16] <none> [goodwin98 10:30]
» Время последнего можно в любой момент получить, но историю все равно надо первой, да
---
[12:17:33] <goodwin98> Её только что озвучили
[12:18:38] <none> goodwin98, привет. Я на работе сижу. Вообще, её озвучили с десяток бета-версий назад.
[12:19:36] <none> Вернее, судя по изменениям, работы идут.
[12:25:56] *** radiance заходит в комнату как participant и member
[12:27:07] *** radiance выходит из комнаты
[13:05:56] <none> goodwin98, а оно на Яве?
[13:06:50] <goodwin98> none, да
[13:14:09] *** -kv- выходит из комнаты: Replaced by new connection
[13:14:10] *** -kv- заходит в комнату как participant и member
[13:15:23] <none> goodwin98, ужас.
[13:15:37] <goodwin98> none, ?
[13:15:51] <none> goodwin98, ?
[13:25:07] *** Gerc выходит из комнаты: Logged out
[13:25:25] *** Gerc заходит в комнату как moderator и owner
[13:29:49] *** Gerc выходит из комнаты
[13:30:02] *** Gerc заходит в комнату как moderator и owner
[13:30:29] <none> goodwin98, что ты хотел?
[13:30:55] <goodwin98> none, я ничего не хотел
[13:31:25] *** none выходит из комнаты
[13:31:57] *** none заходит в комнату как participant и none
[13:32:07] <goodwin98> Я понятия не имею к чему ты написала то, что написала
[13:32:46] <none> goodwin98, хм.
[13:38:59] *** 777Andrej выходит из комнаты: Replaced by new connection
[13:39:00] *** 777Andrej заходит в комнату как participant и member
[13:39:01] *** 777Andrej выходит из комнаты: Logged out
[13:39:06] *** 777Andrej заходит в комнату как participant и member
[13:39:46] *** goodwin98 выходит из комнаты: Replaced by new connection
[13:39:47] *** goodwin98 заходит в комнату как participant и member
[13:51:14] *** Gerc выходит из комнаты: Replaced by new connection
[13:51:18] *** Gerc заходит в комнату как moderator и owner
[14:02:32] *** 777Andrej выходит из комнаты: Logged out
[14:02:48] *** 777Andrej заходит в комнату как participant и member
[14:11:51] *** PtitsaF выходит из комнаты: Replaced by new connection
[14:11:55] *** PtitsaF заходит в комнату как participant и member
[14:19:24] *** Hombreby заходит в комнату как participant и none
[14:24:32] *** snm заходит в комнату как participant и member
[14:25:30] *** snm выходит из комнаты
[14:34:32] *** 777Andrej выходит из комнаты: Logged out
[14:34:40] *** 777Andrej заходит в комнату как participant и member
[14:36:54] *** 777Andrej выходит из комнаты: Logged out
[14:37:02] *** 777Andrej заходит в комнату как participant и member
[14:38:08] *** goodwin98 выходит из комнаты: Replaced by new connection
[14:38:13] *** 777Andrej выходит из комнаты: Logged out
[14:38:14] *** goodwin98 заходит в комнату как participant и member
[14:38:26] *** 777Andrej заходит в комнату как participant и member
[14:38:55] *** PtitsaF выходит из комнаты
[14:42:41] *** none выходит из комнаты
[14:53:15] *** govardhana заходит в комнату как participant и member
[14:54:51] *** 777Andrej выходит из комнаты: Logged out
[14:55:00] *** 777Andrej заходит в комнату как participant и member
[14:57:43] *** 777Andrej выходит из комнаты: Logged out
[14:57:52] *** 777Andrej заходит в комнату как participant и member
[14:58:42] *** govardhana выходит из комнаты
[14:59:37] *** 777Andrej выходит из комнаты: Logged out
[15:17:17] *** Hombreby выходит из комнаты: Logged out
[15:23:24] *** evghetto_ заходит в комнату как participant и none
[15:28:44] *** evghetto_ выходит из комнаты
[15:32:43] *** none заходит в комнату как participant и none
[15:33:54] <none> goodwin98, а теперь он фолтится.
[15:43:48] *** ilya01 заходит в комнату как participant и member
[15:53:10] *** ilya01 выходит из комнаты
[16:03:12] *** fog_hedgehog выходит из комнаты: Replaced by new connection
[16:03:12] *** fog_hedgehog заходит в комнату как participant и none
[16:03:26] *** Gerc выходит из комнаты: Replaced by new connection
[16:03:29] *** Gerc заходит в комнату как moderator и owner
[16:07:03] *** 777Andrej заходит в комнату как participant и member
[16:08:28] *** goodwin98 выходит из комнаты: Replaced by new connection
[16:08:29] *** goodwin98 заходит в комнату как participant и member
[16:13:06] *** goodwin98 выходит из комнаты
[16:17:04] *** govardhana заходит в комнату как participant и member
[16:23:40] *** SSKlord выходит из комнаты
[16:24:29] *** govardhana выходит из комнаты
[16:25:06] *** SSKlord заходит в комнату как participant и member
[16:29:58] *** 777Andrej выходит из комнаты
[16:37:31] *** 777Andrej заходит в комнату как participant и member
[16:41:40] *** radiance заходит в комнату как participant и member
[16:51:40] *** goodwin98 заходит в комнату как participant и member
[16:53:14] *** goodwin98 выходит из комнаты
[17:04:37] <none> Бред. История в случае падения не сохраняется.
[17:05:41] <none> Gerc, так и задумано?
[17:06:30] <SSKlord> Не думай ее включить пиздец будет
[17:07:00] *** radiance выходит из комнаты
[17:07:12] *** radiance заходит в комнату как participant и member
[17:11:19] *** radiance выходит из комнаты
[17:11:46] *** -kv- выходит из комнаты: Logged out
[17:32:03] *** 6yp4uk заходит в комнату как participant и member
[17:32:23] *** 6yp4uk выходит из комнаты
[17:44:51] *** radiance заходит в комнату как participant и member
[18:16:20] *** PtitsaF заходит в комнату как participant и member
[18:20:02] *** Gerc выходит из комнаты: Logged out
[18:24:54] *** Gerc заходит в комнату как moderator и owner
[18:26:40] *** Hombreby заходит в комнату как participant и none
[18:29:18] *** Hombreby выходит из комнаты
[18:42:19] *** goodwin98 заходит в комнату как participant и member
[18:43:20] *** PtitsaF выходит из комнаты: Replaced by new connection
[18:43:22] <goodwin98> Так её кто нибудь делает или нет. А то я вчера начал, но это просто для себя от нечего делать. Мне удалять или заканчивать?
[18:43:22] *** PtitsaF заходит в комнату как participant и member
[18:46:17] <SSKlord> goodwin98, кого?
[18:46:46] <goodwin98> Историю переводил на работу с sqlite
[18:47:02] <SSKlord> Есприт еще делал
[18:47:27] <goodwin98> Да что то давно начал, вроде..
[18:47:42] <goodwin98> Или не начал, непонятно
[18:47:58] *** Gerc выходит из комнаты
[18:48:13] *** Gerc заходит в комнату как moderator и owner
[18:48:17] <goodwin98> esprit, ты историей занимаешься?
[18:48:35] <esprit> неа
[18:48:54] <goodwin98> А герц?
[18:49:24] <SSKlord> esprit, ты же че-то начинал
[18:49:54] <esprit> SSKlord, то, что я начинал, мы уже вчера обсудили. и оно нинужно
[18:50:22] <goodwin98> esprit, а что там было?
[18:51:16] <esprit> goodwin98, ну просто сделал реализацию рмс в виде sqlite-баз
[18:51:46] <goodwin98> esprit, каждый чат в отдельную базу?
[18:52:03] <esprit> goodwin98, да
[18:52:29] <esprit> http://freize.info/log/logs/loc-id@conference.jabber.ru/2014/05/03.html
вчерашнее обсуждение, если интересно
[18:52:30] <goodwin98> esprit, ну я сделал все сообщения в 1 базу..
[18:52:57] <goodwin98> Сохранение и заполнение из истории тоже запилил
[18:53:25] <esprit> если сделал, так показывай :)
[18:54:14] <goodwin98> Я с телефона.. Но и я не умею красиво писать, потому и спрашиваю
[18:56:08] <goodwin98> Меня смущает только то, что при получении истории контакта, вся история приходит одним массивом.
[18:56:42] <goodwin98> Хз как нормально придумать
[18:57:23] <esprit> каким ещё массивом?
[18:57:31] <SSKlord> Одним тормозить же может
[18:57:35] <goodwin98> Листом
[18:57:39] *** radiance выходит из комнаты
[18:57:56] <goodwin98> Ну или вектором. Я не знаю какая разница
[18:58:57] <goodwin98> SSKlord, не.. Тормозить наверно нет, но расход памяти будет
[18:59:30] <goodwin98> Короче я хз
[19:00:07] <SSKlord> Смотря размер истории
[19:00:07] <goodwin98> По одному сообщению получать из базы наверняка дольше
[19:00:52] <SSKlord> Если 20 сообщений то фигня, а если разом по 200 постов
[19:01:59] <esprit> так надо делать базу и адаптер для ListView, ничего не будет тормозить
[19:02:11] <goodwin98> Можно сделать, чтоб при заполнении бралось только последние 30 сообщений.. Да так правильно
[19:02:27] <goodwin98> Я а этом нуб
[19:06:51] *** Gerc выходит из комнаты
[19:14:37] <goodwin98> Что то я вас прочитал и не понял проблемы. Почему не сохранять тупо как базой задумано?
[19:15:14] <goodwin98> Имя стринг, время лонг, аватар блоб или ссылка на файл
[19:15:22] <esprit> Што
[19:15:27] <goodwin98> Объекты какие то
[19:15:47] <goodwin98> Што што?
[19:16:01] <esprit> я ничего не понял
[19:16:41] <goodwin98> Ну вы там обсуждали и хотели сохранять в базу объекты как они есть, нет?
[19:17:45] <goodwin98> Причем почему то либо в одну базу, либо в разные.
[19:18:53] <esprit> герц хотел создать один класс-обёртку над базой, которая умеет сохранять разные типы объектов. Как сохранять он мне показал, как загружать - нет.
[19:21:36] <goodwin98> Каждый тип, в свою табличку базы не проще кидать?
[19:23:25] *** goodwin98 выходит из комнаты
[19:23:36] *** goodwin98 заходит в комнату как participant и member
[19:26:21] *** Gerc заходит в комнату как moderator и owner
[19:26:25] <esprit> для ростера, чатов и прочей хуиты - для каждой своя база. класс для работы с базой - один.
[19:28:07] <goodwin98> толи я туплю и не понимаю в чем проблема, толи вы слишком закрученно делать хотите..
[19:28:58] <esprit> это герц хочет, я ничего не хочу
[19:29:13] <goodwin98> класс для работы с базой принимает разные типы объектов и отдает объекты. Для каждого типа можно свой метод слепить.
[19:29:26] <esprit> хуита
[19:29:31] <goodwin98> почему ?
[19:30:21] <goodwin98> каждый метод знает как раскидать свой объект на составляющие и положить в свою табличку
[19:30:36] <esprit> лучше пицот обёрток сделать
[19:31:26] <goodwin98> курсоры и все прочее нах не должно выходить дальше этого метода
[19:31:41] <esprit> не должно конечно
[19:31:59] <goodwin98> ну а что не так в том, что я написал ?
[19:32:39] <esprit> goodwin98, ты тут про таблички пишешь, хочешь, чтоб была одна база sawim с таблицами roster, chats и т.д.?
[19:33:23] <goodwin98> esprit: сколько я видел примеров всяких таблиц, то там, почему-то, именно таблицы плодили, а не файлы бд
[19:34:12] <goodwin98> хотя почему это не должно тормозить - я хз
[19:34:35] <esprit> умные люди делали потому что
[19:34:59] <goodwin98> ну вот мне и кажется, что люди умные и хуйню делать не станут, значит так надо
[19:35:52] <Gerc> каждую таблицу в отдельную базу надо?
[19:36:28] <goodwin98> я хз.
[19:37:22] <goodwin98> но я видел другое
[19:38:06] <goodwin98> но историю, наверно, бы отдельно все таки создал файлик
[19:38:45] <goodwin98> уж больно много она весить будет, чтоб мешать с тем же ростером
[19:39:12] <esprit> при чём тут размер?
[19:39:39] <goodwin98> чем больше количество записей, тем больше времени на проход по всей базе
[19:39:58] <esprit> есть базы по 2 гига, и ничего, не тормозят
[19:40:08] <goodwin98> на телефоне ?
[19:40:18] <esprit> на компе
[19:40:33] <goodwin98> именно sqlite ? или что-то более существенное ?
[19:41:33] <goodwin98> имею ввиду с отдельным сервером, который может кэшировать и всякой хренью заниматься
[19:41:33] <esprit> не знаю, а какая разница?
[19:59:52] *** SSKlord выходит из комнаты: Logged out
[20:03:46] *** fog_hedgehog выходит из комнаты
[20:04:14] *** fog_hedgehog заходит в комнату как participant и none
[20:07:01] *** SSKlord заходит в комнату как participant и member
[20:19:32] *** none выходит из комнаты
[20:47:56] *** SetazeR выходит из комнаты
[20:57:31] <Gerc> esprit: переделал же запись на ContentValues и также гс жрало и было 4сек(хотя должно быть же 1сек), а это долго и жрет изза closeHistory() в ru.sawim.modules.history.HistoryStorage#addText
[20:57:59] <Gerc> теперь надо опять с блобами перемерить
[20:58:19] <goodwin98> зачем вообще closehistory при работе с базой ?
[20:59:25] <Gerc> на каждую итерацию нинужен, да
[20:59:36] <goodwin98> да и вообще не нужен же.
[21:00:26] *** fog_hedgehog выходит из комнаты: Logged out
[21:00:28] *** fog_hedgehog заходит в комнату как participant и none
[21:02:09] <Gerc> goodwin98: closeHistory() это SQLiteOpenHelper.close()
[21:02:36] <Gerc> чтоб после записи зыкрыть базу
[21:03:18] <goodwin98> и на каждый чих ее закрывать-открывать ?
[21:03:53] <goodwin98> значения она сохраняет сразу, вроде как.. памяти чтоли много берет ?
[21:11:24] <Gerc> esprit: теперь твоя реализация с блобами без closeHistory() в ru.sawim.modules.history.HistoryStorage#addText так же 1сек заполняется и не жрет гс, как и классическая реализация
[21:12:00] <esprit> ок
[21:12:15] *** radiance заходит в комнату как participant и member
[21:18:48] <goodwin98> и как с этими блобами делать выборки из базы ? Оо
[21:20:27] <Gerc> goodwin98: byte[] getRecord(int id) {
String where = COLUMN_ID + " = " + id;
Cursor cursor = db.query(TABLE_NAME, null, where, null, null, null, null);
cursor.moveToFirst();
return cursor.getBlob(cursor.getColumnIndex(COLUMN_DATA));
}
[21:21:13] <goodwin98> ну это тебе вернет одну конкретную запись. А если ты хочешь получить историю с такого-то числа ?
[21:22:00] <goodwin98> поиск опять же не сделать по истории
[21:24:09] <goodwin98> да и вообще куча запросов разве не медленее, чем один, но емкий ?
[21:25:45] <_vt> а уже накомитили это?
[21:26:19] <esprit> нет ещё
[21:26:21] *_vt на работе постоянно оптимизирует sql-запросы, все расскажет как надо
[21:27:12] <goodwin98> _vt: как лучше сохранять в базу. бинарные данные или расписать отделоьно каждый элемент структуры в свой столбец ?
[21:27:42] <esprit> _vt, ну вот тут вопрос промелькнул про хранение данных. Как хранить - всё в одном или контакты в одной базе, сообщения в другой?
[21:27:53] <esprit> щас завалим вопросами
[21:28:12] <_vt> esprit: в нашем случае - похуй
[21:28:30] <_vt> это даже у меня на работе- тоже похуй
[21:29:01] <_vt> у нас пока разные базы для простоты, в идеале надо объединить, но пока не спешим
[21:29:17] <esprit> т.е. типа создать базу sawim.db с таблицами contacts, messages и будет норрм?
[21:30:35] <esprit> и почему "в идеале надо объединить"? какой в этом смысл?
[21:30:36] <_vt> покада
[21:31:47] <esprit> щас в мандарине посмотрел, там тоже всё в одной базе. и контент провайдер напердолен
[21:32:11] <_vt> esprit: на работе надо объединить не поэтому, а потому что там разные данные с разных магазинов
[21:32:33] <esprit> ок
[21:32:47] <Gerc> контентпровайдер сложно и тормозить будет
[21:32:58] <Gerc> _vt: закомитил
[21:32:58] <esprit> в чём сложность?
[21:33:10] <_vt> в случае савима - разницы, где хранятся контакты и сообщения, я вообще не вижу, это будет видно на 100000 контактов и 10000000 сообщений
[21:34:21] <_vt> Gerc: в жталке контентпровайдер, я пока так и не понял зачем
[21:34:56] <goodwin98> тест то нафига коммитить в мастер ветку ?
[21:34:59] <Gerc> _vt: для нескольких бд
[21:35:13] <esprit> герц не умеет в ветки
[21:35:15] <Gerc> goodwin98: это лучше чем рмс
[21:35:33] <esprit> +1 баг в савиме теперь
[21:35:34] <goodwin98> я про
+ for (int i = 0; i < 10000; ++i) {
+ ContentValues values = new ContentValues();
+ values.put("incoming", 0);
+ values.put("author", "i" + i);
+ values.put("msgtext", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
+ values.put("date", 9869905);
+ db.insert("messages", null, values);
+ }
+ messagesHelper.close();
[21:35:50] <Gerc> а бля
[21:36:22] <_vt> это мгновенно будет, скорее всего
[21:36:50] <Gerc> _vt: что именно?
[21:36:56] <_vt> ветки в случае савима неправильные, только потому, что релизов нет
[21:37:35] <_vt> Gerc: я про пример goodwin98
[21:38:08] <goodwin98> _vt: можно запрос составить, чтобы пришла выборка по какому-то стоблцу, отсортированная как обычно, но только последние n строчек ?
[21:38:45] <_vt> goodwin98: select столбец limit N
[21:39:00] <goodwin98> _vt: это не первые n строк пришлет ?
[21:39:14] <_vt> goodwin98: последние
[21:39:22] <goodwin98> хм.. круть
[21:39:45] <_vt> я кстати на этом застрял в савиме для гейос
[21:40:38] <_vt> там это запрос не в ту сторону сортирован и все тормозит
[21:40:43] <goodwin98> [code=""] public List<Record> getRecords(int num)
{
Vector result = new Vector();
Cursor c = MessagesDbHelper.getRowByName(database, uniqueUserId, baseName, num);
if ( null == c)
return null;
if(c.moveToFirst())
{
do {
Record record = new Record();
record.from = c.getString(c.getColumnIndex(MessagesDbHelper.AUTHOR));
record.gmttime = c.getLong(c.getColumnIndex(MessagesDbHelper.TIMESTAMP));
record.incoming = false; // TODO response incoming message in history
record.text = c.getString(c.getColumnIndex(MessagesDbHelper.MESSAGE));
result.add(record);
} while (c.moveToNext());
}
c.close();

return result;
}[/code]
так не быстрее получать num записей, чем в цикле дергать базу ?
[21:41:16] <_vt> то есть я прошу 20 сообщений, и самое старое ИЗ ЭТИХ почему-то СВЕРХУ, и наборот нельзя просто так без пердолинга
[21:42:09] <_vt> goodwin98: там в getrowbyname был лимит, если я помню правильно
[21:42:28] <goodwin98> _vt: я ее переписал же
[21:42:53] <goodwin98> и он был в getIds
[21:43:26] <_vt> goodwin98: точно, в фастчяте так
[21:43:51] <_vt> goodwin98: идс - там индекс, поэтому по индексу запрос идет в 1000 раз быстрее
[21:44:10] <_vt> а по нейм - там медленно, если индекса нет
[21:45:18] <goodwin98> ясно.. значит хрень написал
[21:45:43] <goodwin98> хотя как они отличают id одного чата от id другого, я пока не нашел..
[21:46:50] *** evghetto_ заходит в комнату как participant и none
[21:47:52] <_vt> вот таблица:
id name
1 vasya
2 petya
3 masha
если запрашивать select by id=, то будет мгновенно
если select by name='pasha' - будет внутри базы сначала искать по id, потом по паше
[21:48:54] <_vt> если есть индекс по name, то тоже быстро
[21:49:06] <goodwin98> я это понял, но в нашем случае под id =1 может быть сообщение из савим@c.j.r
а под id = 2 - герц@жру
[21:49:44] <_vt> но чем больше полей с индексами - тем ДОЛЬШЕ вставка новых полей, ибо надо все индексы обновить
[21:50:19] <goodwin98> _vt: как понять индекс по name ? какой-то модификатор при создании ?
[21:51:46] <_vt> goodwin98: изначально - primary key
[21:51:48] <goodwin98> и обязано ли поле, в данном случае быть с уникальным содержимым ?
[21:52:16] <_vt> goodwin98: по primary key всегда есть индекс
[21:53:43] <goodwin98> _vt: но primary key должен быть уникальным каждый раз ?
короче, как сочинить базу, чтоб можно было составлять запрос на получение кучи записей, по названию чата ?
[21:54:38] <esprit> название таблицы в базе = название чата?
[21:55:23] <esprit> ну и из этой таблицы брать по id
[21:55:24] *** Hombreby заходит в комнату как participant и none
[21:55:42] <goodwin98> таблицы тоже, почему-то не плодят обычно.. даже на крупных бд
[21:56:20] *** evghetto_ выходит из комнаты
[21:56:31] *** 6yp4uk заходит в комнату как participant и member
[21:57:25] *** 6yp4uk выходит из комнаты: I'll be back
[21:58:43] <_vt> в первую очередь не надо мудрить, и пользовать базу так, как в фастчяте сделано, строго по id, то есть по primary key
[21:59:44] <_vt> дальше, когда бы уже знаем, что в коде мы постоянно запрашиваем where name='', то в базе должен быть индекс по name
[22:00:01] <_vt> я пока еще не видел что вы там в савиме сделали, завтра скажу
[22:00:35] <esprit> в савиме вообще херня сделана, не как в фастчате
[22:00:37] <Hombreby> У меня бэкэнд чата выбирает сообщения опреденного чата по его айди из структуры сообщений таблицы. Имеет смысл создавать ещё таблицу только если их очень много :)
[22:01:30] <goodwin98> чатов вполне может быть под сотню.
[22:01:37] <_vt> Hombreby: имеет смысл сделать индекс по id, если id это primary key, то делать ничего не надо
[22:01:41] <goodwin98> под сотню будет и таблиц
[22:02:15] <esprit> сотня таблиц - это плохо что ли?
[22:03:06] <_vt> похуй на таблицы вообще, скорость выборки зависит от индексов
[22:03:09] <Hombreby> _vt, _vt, логично)
[22:03:33] <goodwin98> ок.. значит на каждый чатик по таблице
[22:03:56] <_vt> если все запросы идут по primary key, то будет мгновенно, независимо от числа таблиц
[22:06:02] <_vt> goodwin98: в либе для айос все чатики пишутся в одну таблицу, с полями = чятик, сообщение
[22:06:40] <_vt> я пока не знаю, хорошо это или нет, у меня тормоза уже на запросе одного чятика
[22:06:47] <Hombreby> Хм
[22:06:56] <Hombreby> Сколько запрос?
[22:07:12] <_vt> но там я пока не разобрал, тормоза в айос самой, или в говнолибе
[22:09:15] *** Hombreby выходит из комнаты: I'll be back
[22:09:18] *** Hombreby заходит в комнату как participant и none
[22:09:22] *** Hombreby выходит из комнаты: I'll be back
[22:09:23] *** Hombreby заходит в комнату как participant и none
[22:09:29] *** Hombreby выходит из комнаты: I'll be back
[22:09:29] <goodwin98> да я догадывался, что это долго должно быть
[22:09:31] *** Hombreby заходит в комнату как participant и none
[22:10:17] <Hombreby> Хм. Раньше при входе в чистый чат сообщения подгружались. Теперь нет :) регресс какой-то..
[22:10:54] <goodwin98> сейчас ты и выйти то нормально не можешь, чтоб чат очистился.
[22:11:22] <Hombreby> Это да. Я вышел, а горит зелёный. Такие дела
[22:11:41] <goodwin98> через даже не жопу, а наверно через хуй только можно сделать так, чтоб чат стал чистым
[22:12:08] <_vt> в общем, это главный секрет DATABASE ARCHITECTOR-ов: этот чувак профилирует базу на запросы, и делает индексы там, где запросы чаще всего. Это в хуевом случае. В хорошем случае он чинит базу, чтоб все связи были по айди с индексами. За это DB ARCHITECT получает многабабла
[22:13:36] <_vt> это вот очень выгодное знание, если хотите получать многабабла. За знание индексов этот мудак получает больше погромистов.
[22:15:38] <_vt> хуевый дб-архитект, кстати, пихает индексы где попало, что в результате делает быстрое открытие таблиц, но ооочень долгую вставку
[22:15:52] <Hombreby> А вы для каких целей решили историю в базе теперь хранить? Раньше было вроде бы в тексте
[22:16:12] <goodwin98> чет я все равно не понимаю что за индекс такой :-(
[22:16:27] <esprit> раньше было в куче файликов
[22:16:39] <goodwin98> т.е. я понимаю, что какая-то внутреняя структура для быстрого поиска..
[22:16:50] <goodwin98> но как это выглядит снаружи - не понимаю(
[22:18:19] <_vt> goodwin98: ну вот есть таблица, вася в 105 строке, маша в 20134 строке, петя в 23 строке. Обычный запрос, если нет индекса по name, пробегает ВСЮ БАЗУ и ищет там машу с васей и петей. Запрос индексом сначала смотрит в индекс и видит номера строк, СРАЗУ их и возвращает
[22:19:17] <_vt> то есть запросы-то одинаковые, это внутри базы делается, если есть индекс по нужному полю - сразу возвращаются номера, без полного перебора
[22:20:43] <goodwin98> ладно.. для общего ознакомления хватит.. чай все равно с бд не работать
[22:22:16] <_vt> меня на работе директор заебал, просил объяснить как ИНДЕКСЫ выглядят, я тоже не мог сначала объяснить, когда задрочил базу, то смог вот на примере васи и пети объяснить
[22:22:25] <_vt> он правда мог и забыть
[22:22:32] <Hombreby> Тут тоже смотря какие цели :) если вся таблица почти нужна, то индексы лучше не трогать. Хотя для истории конечно нужны только позиции сообщений из опред чатов..
[22:22:49] <Hombreby> На васе он понял?)
[22:22:56] <_vt> вроде понял
[22:23:33] <_vt> так я вот щас плохо объяснил? Кто что не понял? Давайте точнее расскажу
[22:23:54] <esprit> интересно, зачем директору знать про индексы
[22:23:55] <_vt> Мне это полезно по работе просто, директору объяснять :)
[22:25:27] *** -kv- заходит в комнату как participant и member
[22:26:52] *Hombreby проверял на практике в своё время. При выборке where name=a сервер упал за шесть минут, при id=3 3% нагрузка. Такие дела :) плюс запрос короче на долю секунды
[22:27:46] <goodwin98> только вот name может много раз встречаться, а id уникальный
[22:28:43] <_vt> Hombreby: просто индекса по name не было
[22:29:27] <goodwin98> понятно что бд не будет рыться по всему файлу в поисках других копий id
[22:30:10] <_vt> просто левый мудак, которого взяли на работу, где жалуются на медленные выборки - профилирует запросы и добавляет индексы по частым запросам, и люди, работающие с базой, охуевают от счастья что выборки стали в 100000 раз быстрее
[22:30:56] <_vt> но это чревато тем, что записать новую запись становится в 100000 раз медленнее, ибо при записи бд обновляет все индексы
[22:32:22] <_vt> то есть в хорошем случае, специалист по бд идет к погромисту базы и заставляет его переписать запросы так, чтоб и select и insert работали по индексам
[22:34:14] <tliSida> RSS: Новости для https://github.com/gerc99/SawimNE/commits/master.atom Recent Commits to SawimNE:master
• Store data in sqlite databases
• Convert old storages to new ones
[22:40:10] *** radiance выходит из комнаты
[22:42:09] *** Santiago26 заходит в комнату как participant и member
[22:57:30] *** Santiago26 выходит из комнаты
[23:01:23] *** mnezius выходит из комнаты
[23:07:10] <_vt> esprit: директору это вообще не нужно, у него просто иногда заебы посмотреть, чем я занимаюсь
[23:07:30] <_vt> esprit: вот я ему это объясняю, подробно
[23:10:18] *** mnezius заходит в комнату как participant и member
[23:11:53] <_vt> goodwin98: если ты говоришь базе, что id это primary key, и она вдруг найдет одинаковые id, то скажет что база разрушена нахер
[23:12:00] <_vt> ибо такого не бывает
[23:12:26] <goodwin98> ну да. и я про это
[23:14:13] *** mnezius выходит из комнаты
[23:16:01] *** mnezius заходит в комнату как participant и member
[23:18:43] <_vt> goodwin98: а, чтоб лимит прислал последние строки, надо select by столбец ORDER BY ID DESC limit N
[23:18:55] <_vt> если ORDER BY ID ASC, то будут первые
[23:18:55] <goodwin98> погуглил малость про индекс. понял, что он создается отдельной командой
[23:19:46] <_vt> select столбец, без by
[23:20:01] <goodwin98> _vt: теперь лично для меня это не важно, ибо делать будет более знающий человек )
[23:20:10] *** esprit выходит из комнаты
[23:21:50] <_vt> вот ебаная либа на айос, если ей зажать лимитом, или не зажимать, похуй, она привязывается по порядку сверху, в этом и херь
[23:22:25] <_vt> если ей делать ASC, то в чате показывает последнее вверху
[23:22:36] <Hombreby> [_vt 22:18]
» goodwin98: а, чтоб лимит прислал последние строки, надо select by столбец ORDER BY ID DESC limit N
---
Если там ещё дата, то скорее всего в выходе инверсия будет :) последние то они последние.
[23:24:02] *** esprit заходит в комнату как participant и member
[23:24:58] *** sarmat выходит из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[23:25:18] <Hombreby> Т.е. новые сверху, а старые снизу :) а то я что-то загнул.
[23:26:44] *** Santiago26 заходит в комнату как participant и member
[23:27:10] *** Santiago26 выходит из комнаты
[23:34:07] *** Gerc выходит из комнаты
[23:34:28] *** Gerc заходит в комнату как moderator и owner
[23:42:46] *** -kv- выходит из комнаты
[23:42:59] *** -kv- заходит в комнату как participant и member
[23:48:29] *** -kv- выходит из комнаты