[05:37:52] <vlad2> Все еще висит...
[12:43:29] <TRUE> а логи висят вместе с сайтом или они отдельно расположены где-то?
[12:44:31] <TRUE> ой
[12:44:39] <TRUE> они же в теме прописаны...
[13:08:49] <kemiisto> .
[13:08:53] <kemiisto> ЭТО ЗАГОВОР!
[13:08:55] <kemiisto> :D
[13:20:47] <TRUE> кстати, вышел Go 1.
[13:21:13] <TRUE> И, соответственно обновился app engine SDK
[13:21:55] <kemiisto> Вот пусть пишет свой форум на Go со всеми причитающимися. :D
[14:49:01] <valexey > отдельно
[14:53:43] <valexey > kemiisto: ога, а ты свой бложиг на фортране перепиши.
[15:19:43] <valexey > децентрализация рулид!!1
[15:20:38] <valexey > vlad2 kemiisto bems shaggie TRUE : а как бы нам форумчек сделать распределенным? я не про конкретные технологии, а про саму логику как оно должно работать. чтобы набрав oberspace чел попадал непременно на один из сейчас работающих серверов
[15:20:45] <valexey > и чтобы они были реально синхронизированны
[15:20:55] <valexey > как это делают?
[15:21:09] <bems> хз-хз
[15:22:52] <shaggie> google балансировка нагрузки
[15:23:03] <shaggie> есть аппаратные решения, есть программные
[15:24:27] <valexey > видимо нужна програмная. ибо сервера в разных датацентрах от сильно разных поставщиков
[15:24:32] <valexey > с сильно разными ip'шниками
[15:24:42] <valexey > алсо что будет если балансер сдохнет?
[15:25:20] <shaggie> хорошо если есть дублирующий. если нет, вся нагрузка пойдёт на один единственный сервер
[15:25:33] <valexey > на который из?
[15:25:39] <shaggie> а вот не знаю
[15:25:47] <shaggie> чукча не читатель
[15:25:54] <valexey > вот лезет http get на данный ip'шник который прописан в dns
[15:26:05] <valexey > на том конце видимо балансер
[15:26:09] <shaggie> так, чуточку по верхам нахватался. реально поддерживать это добро не приходилось
[15:26:18] <valexey > который играет роль прокси и форвардит этот get одному из серверов
[15:26:33] <valexey > если балансер сдохнет, то ни одному из серверов get не приедет
[15:34:49] <TRUE> а как синхронизировать вообще?
[15:35:12] <TRUE> допустим, что у тебя уже есть и сервера, и шлюз
[15:35:25] <TRUE> к БД ты прямого доступа не имеешь.
[15:35:45] <TRUE> да и разные они, бд-то.
[15:36:11] <valexey > можешь считать что БД просто нет
[15:36:20] <valexey > в плане синхронизации БД роли никакой не играет
[15:36:26] <TRUE> значит, чтобы производить синхронизацию, необходим дополнительный функционал в движках форумов.
[15:37:06] <TRUE> значит, придётся лезть в их внутренности и заводить этот функционал
[15:37:43] <kemiisto> =^.^=
[15:37:49] <kemiisto> о чём они?
[15:37:51] <kemiisto> :D
[15:40:27] <valexey > TRUE: дык в любом случае это надо делать :-)
[15:40:37] <valexey > мне плевать сейчас на движки форумов
[15:40:43] <valexey > мне важно понять как это сделать впринципе
[15:40:47] <valexey > допустим что мы все пишем сами
[15:46:49] <kemiisto> >> допустим что мы все пишем сами
[15:46:56] <kemiisto> ОБЕРОНЩИК ДЕТЕКТЕД!!!111
[15:46:58] <kemiisto> :D
[15:49:08] <TRUE> и вообще... допустим, есть два форума-зеркала. Два человека через шлюз попали на каждый из них. Оба написали по сообщению. в БД сообщения хранятся со свомим ID. Эти ID сквозные. Если они добавили сообщения в течение одного окна синхронизации, то на разных серверах это ID будет ссылаться на разные сообщения. При обычной синхронизации произойдёт исключение. Но нас интересует не ID, а сами буковки сообщения, значит, можно было бы выкрутиться так: если при синхронизации добавляемый ID уже занят, то просто присвоить ему новое значение. Текст в ветке останется на своём месте во всех форумах. Однако, так перестанут правильно работать ссылки.
[15:49:55] <TRUE> правда, здесь есть такой вариант: при синхронизации, сервера выстраиваются в цепочку.
[15:50:56] <vlad3> Щаз клеветы начнутся: http://forum.oberoncore.ru/viewtopic.php?p=71836#p71836
[15:51:24] <vlad3> В качестве ID можно использовать хэш.
[15:51:51] <vlad3> Потом в какой-то момент мержить обе базы.
[15:52:57] <TRUE> первый пытается скинуть обновление на второй. Если есть конфликт, то второй высылает первому список конфликтных ID и список зарезервированных незанятых ID. Первый меняет у себя ID и повторно шлёт обновления на второй. Потом второй шлёт обновления на первый. И так вся цепочка.
[15:53:35] <TRUE> Но в этом варианте будет затруднено полная синхронизация. Она произойдёт не в один этап.
[15:54:02] <valexey > какой такой id?
[15:54:09] <TRUE> Есть ещё вариант не со сквозным ID, а составным "юзер":"его_id"
[15:54:11] <valexey > внутрибидешные id по идее независимые
[15:55:44] <TRUE> заходишь ты, скажем, в первую ветку первого форума. Там семь сообщений. Как построили, по-твоему, эту страницу с семью сообщениями?
[15:57:28] <valexey > создать тему, добавить сообщение (и так 6 раз)
[15:59:13] <valexey > где тут точки конфликтов могут быть? может быть нарушена хронология.
[15:59:19] <valexey > но это не страшно
[15:59:57] <valexey > если инфа о новой теме не доехала до второго сервера, то, очевидно, со второго сервера не может приехать сообщение в эту тему
[16:00:42] <valexey > что такое эта тема? это, видимо да. нужен некий uuid для тем
[16:01:06] <TRUE> Я думаю, что так. Ты вошёл в первый форум, и на сервер отправился запрос "покажи ветки форума для forum_id". Это SQL-запрос в таблицу threads "where forum_id=1". Ты выбрал ветку, и на сервер ушёл запрос "покажи сообщения ветки для trd_id". Это SQL-запрос в таблицу messages "where trd_id=1". Таким образом, таблица с сообщениями одна и ID у сообщений сквозные. Не делать же для каждой ветви свою таблицу...
[16:01:21] <valexey > вероятность коллизий тем можно свести к нулю очень просто - достаточно в uuid ввести имя сервера на котором она была создана.
[16:01:31] <TRUE> так вот. На одном сервере добавили сообщение 1123 и на втором тоже добавили 1123. Они в разных ветках.
[16:01:39] <valexey > таким образом одновременно созданные темы на обоих серверах не будут никогда конфликтовать
[16:01:51] <TRUE> и ссылки на 1123 на разных серверах будут вести в разные места.
[16:02:33] <valexey > а про sql и речи пока не идет. вообще у меня сильное желание sql закопать
[16:03:28] <TRUE> uuid? utid!!1
[16:03:29] <kemiisto> ЗАКОПАЙ ЕГО ПОЛНОСТЬЮ!
[16:06:43] <valexey > кто такое utid?
[16:06:51] <valexey > моя ниграмытная быдла же
[16:07:08] <kemiisto> эх ты
[16:07:13] <TRUE> Если БД не SQL, то древовидные?
[16:07:23] <TRUE> [15:04:54] <valexey > моя ниграмытная быдла же
[16:07:39] <TRUE> "uuid для тем"
[16:07:48] <valexey > то вообще возможно не БД а то что программист наваял :-) то есть кастомная структура данных
[16:07:50] <TRUE> как расшифровывается uuid
[16:08:27] <valexey > вот скажем возьмем компилятор - какая БД у него используется? :-)
[16:09:10] <kemiisto> Я предлагаю использовать оберон-парадигму! Текст как база данных! :D
[16:09:16] <TRUE> да хоть какая. Он упадёт, отряхнётся и заново всё сделает. С форумом такое не пройдёт
[16:09:50] <TRUE> это точно оберон-парадигма
[16:10:03] <valexey > ладно. у MS Word'a какая база данных? :-)
[16:10:09] <valexey > А у excel'я?
[16:11:24] <TRUE> Если уж эксель вспомнили, то лучше уж SQL...
[16:11:36] <TRUE> нет у экселя БД.
[16:11:48] <valexey > ну, ладно. фотошоп
[16:11:49] <TRUE> реестр - вот его БД
[16:12:04] <valexey > да? вот у меня в MacOS X нет реестра, а эксель есть
[16:12:08] <TRUE> у фотошопа, наверно, тоже в реестре.
[16:12:25] <valexey > аналогично
[16:12:25] <TRUE> а, ну там в файле настройки хранятся, наверное.
[16:12:27] <valexey > нет тут реестра
[16:12:37] <valexey > вау! а реестр не в файле хранится? :-)
[16:13:01] <valexey > вот текущий форум у нас использует sqlite - так оно тоже в ФАЙЛЕ
[16:13:03] <valexey > :-)
[16:13:03] <TRUE> текстовый файл
[16:13:04] <valexey > в одном
[16:13:10] <valexey > не текстовом
[16:13:21] <valexey > сколь я помню в маздае реестр тоже далеко не в текстовом файле лежит
[16:13:30] <valexey > его МОЖНО экспортировать в текстовый файл
[16:13:35] <valexey > но это не нативное представление
[16:13:48] <TRUE> ну да, реестр в винде и текстовый файл в маке.
[16:14:14] <valexey > что-то я совмеваюсь что там текстовый файл :-)
[16:14:17] <valexey > алсо файлик psd ну нифига не текстовый
[16:14:24] <valexey > а ведь основные данные хранятся именно там!!1
[16:14:35] <valexey > то есть значимые для меня.
[16:14:40] <TRUE> а psd каким боком к фотошопу?
[16:14:53] <valexey > настройки фотошопа никому не интересны, их не страшно потерять
[16:14:58] <valexey > равно как и настройки форума
[16:15:00] <TRUE> БД фотошопа - это его найтройки
[16:15:19] <valexey > а вот payload, то есть картинку в фотошопе и массив сообщений форума - это страшно потерять
[16:15:22] <TRUE> настройки движка форума потерять нестрашно.
[16:15:36] <TRUE> как и сам движок
[16:15:39] <valexey > и настройки фотошопа тоже :-)
[16:15:41] <valexey > именно
[16:15:44] <TRUE> а вот форум лучше не терять : )
[16:16:00] <valexey > поэтому аналог БД форума это фотошопный psd
[16:16:11] <TRUE> что-то я ничего не понял. О чём мы?
[16:16:23] <valexey > и некие невнятные структуры данных в момент когда фотошоп с ним работает.
[16:16:44] <TRUE> не аналог.
[16:16:50] <valexey > я к тому, что не вижу смысла постоянно действовать в терминах  бд и sql
[16:16:54] <valexey > точный аналог :-)
[16:17:33] <valexey > результатом работы фотошопа является psd файло, результатом работы форумного движка является файлик myforum.db
[16:17:43] <valexey > не вижу тащемто разницы
[16:24:44] <geniepro> чо с форумом? лежит? коровки заддосили? о_О )))
[16:25:01] <valexey > лежит
[16:25:06] <valexey > почему-то вырубился сервак
[16:25:08] <TRUE> <valexey > не вижу тащемто разницы
[16:25:16] <geniepro> хорошо лежит, сильно...
[16:25:20] <valexey > завел тикет.  ответили что мол работаем над этим. часов 18 назад ответили
[16:25:25] <valexey > с тех пор молчат
[16:25:32] <valexey > угу
[16:25:41] <TRUE> если исходить из того, что есть программа и есть файл, в который пишет программа, то разницы особой нет.
[16:26:00] <valexey > TRUE: а где же пролегает разница?
[16:26:59] <valexey > geniepro: а может ты нам человеческий форум на ерланге напишешь? :-)
[16:30:01] <TRUE> <TRUE> это точно оберон-парадигма
[16:30:07] <TRUE> забыл вопросик в конце добавить.
[16:30:31] <valexey > не, у оберона парадигма нечто вроде: интерфейс как интерфейс!
[16:30:39] <geniepro> на ерланге? веб-приложения? о_О
[16:31:02] <valexey > geniepro: ну да. у тебя же вроде как и опыт уже имеется :-)
[16:31:25] <geniepro> в принципе сделать-то можно, но там возьни ужас-ужас
[16:31:32] <TRUE> <valexey > TRUE: а где же пролегает разница?
[16:31:45] <geniepro> а что оно даст? если сервак вот так же лежать будет -- никакой ерланг не поможет
[16:32:14] <TRUE> форумный движок практически не обрабатывает данные из БД. В отличие от фотошопа
[16:32:25] <TRUE> как есть отдаёт
[16:33:12] <TRUE> то есть, самое главное - вне движка, получается
[16:33:18] <geniepro> уж есжели делать свой движок форума -- то на хацкеле, не иначе )
[16:33:19] <valexey > ну, кодировку он вроде пытается как-то конвертировать. да и вообще например кое-что обрезает
[16:33:31] <valexey > geniepro: а может не надо?
[16:33:52] <kemiisto> valexey : сервер должен быть ББ!!!111 ТОГДА НЕ УПАДЁТ!
[16:33:56] <valexey > TRUE: но вообще да. это и есть самая большая проблема форумка.
[16:34:25] <valexey > geniepro: ну, есть мнение что ырланк позволил бы проще сделать разпределенку скажем на два сервера
[16:34:27] <TRUE> почему?
[16:34:43] <TRUE> почему проблема?
[16:34:59] <geniepro> valexey > geniepro: ну, есть мнение что ырланк позволил бы проще сделать разпределенку скажем на два сервера
чем проще? чем хацкель? и чем же проще? )))
[16:35:00] <valexey > потому то sql ничего не знает про форумную специфику :-)
[16:35:21] <geniepro> kemiisto> valexey : сервер должен быть ББ!!!111 ТОГДА НЕ УПАДЁТ!
ща как лопнешь! )))
[16:35:21] <valexey > geniepro: в ырланке же уже искаропки есть распределенка нормальная
[16:35:57] <geniepro> valexey > geniepro: в ырланке же уже искаропки есть распределенка нормальная
я не уверен в её нормальности для данного случая... сомневаюсь я в ней...
[16:36:50] <geniepro> да и нафига тут распределённые вычисления? достаточно какой-то распределённой БД с автосинхронизацией
[16:37:44] <TRUE> <valexey >, а какая у него специфика? Есть какие-то правильные форумные движки, из которых можно понять идею, как он должен быть написан правильно?
[16:38:50] <geniepro> во! http://forum.gwan.com/index.php?p=/discussion/470/forum-software-written-in-c/p1
[16:48:04] <valexey > TRUE: эмм.. rsdn? :-)
[16:48:46] <TRUE> я не понял его идею
[16:49:43] <TRUE> да, не работает
[16:50:27] <romiras> Ку-ку
[16:51:06] <TRUE> ну, в общем, какая у форумов специфика? Древовидность?
[16:51:51] <romiras> А не слишком ли сложно? Обероновцы должны стремиться к простоте.
[16:53:00] <romiras> Давайте к критериям работы форума добавим режим реального времени со временем отклика 10мс
[16:55:05] <TRUE> обероновцы всегда добавить успеют. Поэтому, я считаю, что нужно от добавления вернуться к началу. Какой самый главный критерий существования форума?
[16:57:20] <romiras> Если форум будет существовать сам по себе, то это неинтересно. :)
[16:58:44] <TRUE> а если он не будет существовать, то это интереснее?
[16:59:37] <romiras> куда уж
[17:00:49] <TRUE> просто, что форум такое безо всяких там серверов движков и баз данных?
[17:01:17] <romiras> форум не имеет распределённой инфраструктуры, поэтому для сбоя достаточно одного сбоившего звена
[17:01:31] <valexey > нужна распределенка
[17:01:37] <romiras> вот если бы он был p2p
[17:01:38] <valexey > это во-первых даст надежность
[17:01:57] <valexey > во-вторых это даст скорость отклика, ибо предпочтимым будет тот сервер который ближе к данному юзеру
[17:02:35] <romiras> CDN?
[17:02:44] <valexey > не знаю такого слова
[17:02:46] <valexey > увы
[17:02:59] <valexey > но тут же гугль работает как-то так
[17:03:02] <romiras> > A content delivery network or content distribution network (CDN) is a large distributed system of servers deployed in multiple data centers in the Internet.
[17:03:18] <valexey > видимо да
[17:04:14] <romiras> а данные где будут храниться?
[17:04:23] <TRUE> romiras: форум не имеет распределённой инфраструктуры
[17:04:34] <romiras> ведь за всё надо платить
[17:04:38] <TRUE> а он вообще сам по себе имеет инфраструктуру? какую?
[17:04:42] <valexey > распределенно
[17:05:26] <valexey > TRUE: ты вот сейчас что именно под форумом подразумеваешь?
[17:05:46] <valexey > что-то конкретное, или же конкретный движог?
[17:05:52] <TRUE> мне самому интересно... Что такое форум?
[17:05:54] <valexey > вот скажем google+ - это форум же :-)
[17:06:03] <TRUE> не движок.
[17:06:13] <valexey > и оно явно не на одном сервере и даже не на одном датацентре
[17:07:24] <geniepro> не разу не был в гугл+, но вроде это какая-то асоциальная сеть же...
[17:07:38] <valexey > угу. оно
[17:07:43] <valexey > вконтактег - тоже форум :-)
[17:07:47] <valexey > или там фейспалм
[17:07:49] <valexey > ой
[17:07:50] <valexey > фейсбук
[17:08:09] <geniepro> да не, фейсбук или вк ни разу не форумы
[17:08:43] <valexey > логических отличий нет
[17:08:51] <valexey > то есть технологии для распределенки тут общие
[17:09:29] <geniepro> о! я зашёл в гугл+ )))
и чо тут делать? ))
[17:09:41] <valexey > а что ты хочешь?
[17:10:30] <geniepro> я не понял, гугл+ всё ещё в бете?
[17:10:38] <valexey > нет. оно релиз
[17:10:55] <valexey > я вообще слабо понимаю зачем социальные сети и что там делать
[17:11:03] <TRUE> valexey : то есть технологии для распределенки тут общие | То есть, ты решил, что уберспейс должен стать распределённым, нашёл кое-что распределённое и назвал это форумом? : ) Чтобы форум подогнать под эту штуку.
[17:11:13] <geniepro> там было написано -- бета-версия
[17:11:14] <valexey > но по сути в этом гуглоплюсе можно все то же что и в фейспалме, одноквасниках или вконтактеге
[17:12:04] <valexey > TRUE: я решил что распределенка не помешает. и заинтересовался тем как оная распределенка делается. пофиг для форума или чего-то еще. ближе всех к тому что у нас - это те самые асоциальные сети
[17:12:17] <valexey > осталось узнать какие там механизмы распределенки :-)
[17:12:26] <valexey > и насколько они у нас будут в тему
[17:12:39] <romiras> а ещё узнать сколько бабла они на них тратят
[17:13:39] <valexey > бабло они тратят в основном за ради удовлетворения высокой нагрузки. а нас такой нет и не будет никогда
[17:14:48] <romiras> чтобы тебя уважали, нужно не скупиться :)
[17:15:00] <valexey > ня. OPC Foundation опять меня спамит…
[17:18:02] <valexey > вообще, по сути, форумный движог состоит из двух частей - из сервера, который хранит и обрабатывает сообщения, и клиента который хранит state каждого из пользователей.
[17:18:11] <valexey > обычно это все слеплено в единый исходник на каком-нибудь пыхе
[17:18:18] <valexey > но клиента то можно и оторвать спокойно
[17:22:33] <valexey > и например поиметь оффлайн клиент десктопный :-)
[18:21:49] <vlad2> valexey: все еще лежит. Ты им деньги платишь?
[18:25:43] <vlad2> geniepro: ты кто в google+?
[18:34:03] <valexey > плачу
[18:34:05] <valexey > естественно
[18:34:22] <valexey > vps платный
[18:35:02] <valexey > ладно, пойду домой, буду оттуда их доставать
[18:37:30] <valexey > а то тут интернет кончился
[18:43:17] <valexey > /me написал им что не буду платить пока оно не взлетит
[19:24:37] <vlad2> "Ещё помню, что в каком-то компиляторе Ершова применялись slices и даже неравенства вида y < x < z. Немало интересного."
[19:24:59] <vlad2> Вот уже действительно интересно, а главное - востребовано практикой.
[19:25:10] <vlad2> http://forum.oberoncore.ru/viewtopic.php?p=71845#p71845
[19:25:58] <vlad2> И, конечно, если в Go такой херни нет, то "разработчики многих современных языков программирования просто проигнорировали накопленный опыт предыдущим поколением."
[20:17:40] <valexey> да уж
[20:18:25] <valexey> интересно, а как оно разгребало что-то типо a < b < c < d ?
[20:19:18] <valexey> вообще, думается мне, что в каком-нибудь хаскеле легко это дело можно слепить.
[20:19:23] <valexey> да и в испе тоже
[20:19:28] <valexey> *лиспе