Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.10;
Скачать: CL | DM;

Вниз

К обладателям клиента форумного..   Найти похожие ветки 

 
McSimm ©   (2009-11-04 13:09) [80]


> Протокол требует сквозной последовательный номер, независимый
> от других форумов, при том не на тему, а на каждое сообщение.
>

так и есть


 
xayam ©   (2009-11-04 13:09) [81]

это то? http://pear.php.net/package/Net_NNTP


 
McSimm ©   (2009-11-04 13:10) [82]


> так и есть

нет, ошибся. нет такого ID, но сформировать несложно


 
Anatoly Podgoretsky ©   (2009-11-04 13:14) [83]

> Kerk  (04.11.2009 13:02:17)  [77]

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


 
Anatoly Podgoretsky ©   (2009-11-04 13:16) [84]

> xayam  (04.11.2009 13:05:19)  [79]

Я не в курсе, наверняка есть, но не под шлюз/конвертор delphimaster.ru <--> NNTP сервер.
Почему возник твой вопрос понятно, кроссплатформенность, а не только Windows.


 
McSimm ©   (2009-11-04 13:18) [85]


> каждый следующий должен быть на единицу больше.

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


 
Anatoly Podgoretsky ©   (2009-11-04 13:18) [86]

> McSimm  (04.11.2009 13:09:20)  [80]

Это отлично, только вряд ли я вернусь к шлюзу еще раз.


 
Anatoly Podgoretsky ©   (2009-11-04 13:19) [87]

> McSimm  (04.11.2009 13:10:22)  [82]

Максим если не сложно, то заложи это, оно будет полезно для любого клиента.
Жалко что последовательная нумерация не была заложена изначально.


 
McSimm ©   (2009-11-04 13:21) [88]

Главная проблема в том, что изучение RFC никак в мой текущий график не вписывается. Я банальные формы модераторские уже месяц как начал и не могу доделать. Уже червяки в мозгах заводится начали из-за постоянного дедлайна :)


 
Anatoly Podgoretsky ©   (2009-11-04 13:34) [89]


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

Надеюсь по каждой конференции отдельно, а то остается тоже самое, только мягче, чем с датой в качестве ИД


 
antonn ©   (2009-11-04 13:50) [90]


> С номером ответа и есть проблема, сколько позиций для него
> ответсти?

в мускле одно автоинкрементальное поле Integer, беззнаковое. 4 миллиарда постов.


 
McSimm ©   (2009-11-04 13:54) [91]


> Надеюсь по каждой конференции отдельно

нет, такое не так просто сделать


 
xayam ©   (2009-11-04 14:38) [92]


> Anatoly Podgoretsky ©   (04.11.09 13:16) [84]
> NNTP сервер.

вот нарыл на php nntp-сервер http://sourceforge.net/projects/phpinn/ судя по дате заброшен в 2002 году. Зато исходники интересные.

А NNTP в каком году вообще появился?


 
Anatoly Podgoretsky ©   (2009-11-04 14:53) [93]

> McSimm  (04.11.2009 13:21:28)  [88]

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


 
Anatoly Podgoretsky ©   (2009-11-04 14:57) [94]

> antonn  (04.11.2009 13:50:30)  [90]

Все так, только мы говорим про текущую реализацию, где в качестве ИД текущее время в формате Юникс и отсутствия как бы деления на сообщение, логическое в пределах одной темы оно есть. У меня MS SQL я могу вообще под ИД выделить 128 бит, но протокол не позволяет более Integer, а время уже почти подходит к пределу, где то через 10 лет кончится и добавление к нему еще и номер поста сразу убивает это дело.


 
Anatoly Podgoretsky ©   (2009-11-04 14:58) [95]

> McSimm  (04.11.2009 13:54:31)  [91]

Это конечно убивает независимость форумов, но все же много лучше текущей ситуации


 
Anatoly Podgoretsky ©   (2009-11-04 15:00) [96]

> xayam  (04.11.2009 14:38:32)  [92]

Я затрудняюсь сказать, но оно появилось задолго до Интернета в современном виде, другое название USENET, дурипедия утверждает, что в 1980 году. Вот статья http://ru.wikipedia.org/wiki/USENET#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5


 
xayam ©   (2009-11-04 15:00) [97]


> Anatoly Podgoretsky ©   (04.11.09 14:57) [94]
> но протокол не позволяет более Integer, а время уже
> почти подходит к пределу, где то через 10 лет кончится и
> добавление к нему еще и номер поста сразу убивает это дело.

а есть ли разница? если у меня сервер на php будет крутиться, ID ведь я в исходниках прописать какое захочу?


 
antonn ©   (2009-11-04 15:10) [98]


> Все так, только мы говорим про текущую реализацию, где в
> качестве ИД текущее время в формате Юникс

помоему этот костыль уже давно надо выкинуть, и заменить обычным надежным автоинкрементом :)

про номер поста не понял. Я везде у себя для каждого поста завожу два иде: thread_id и post_id. И поддерживается запрос когда я пишу www.gg.ru/index.php?post=125 то сайт мне показывает тему с этим постом (thread_id у него есть), плюс прокручивает на нужную страницу. При этом я в урле не указываю ни ИД темы, ни ИД форума. И при модерации ничего не поменяется. А делать "номер поста" в пределах темы это костыль будет. (собсно отсюда так же легко реализовывать www.gg.ru/index.php?thread=125 без указания форума (у тебя хранится thread_id), перенесенная тема все так же откроется по старой ссылке)
Или я чего не понял?


 
xayam ©   (2009-11-04 15:20) [99]


> Anatoly Podgoretsky ©   (04.11.09 15:00) [96]

А sql-скрипт на создание структуры бд на Ваш nntp-сервер есть http://www.podgoretsky.com/Progs/apc/apc.aspx  ? Как это все хранится? Я там пощелкал на скачать скрипты, но структуры не нашел. Ее можно выложить?


 
Anatoly Podgoretsky ©   (2009-11-04 15:22) [100]

> xayam  (04.11.2009 15:00:37)  [97]

Ты не понял, я ничего не имею против твоего сервера, речь идет только о шлюзе к delphimaster.ru, где нормальный ИД взять негде, у меня и так свой последовательный, независимый от форумом ИД, но основа то delphimaster.ru


 
Anatoly Podgoretsky ©   (2009-11-04 15:35) [101]

> antonn  (04.11.2009 15:10:38)  [98]

Ты действительно немного не так понял. В текущей реализации есть номер темы, это время, и есть внутренний относительный, для клиентов форума) номер, я не знаю как точно это реализовано, это може Максим при желании рассказать. и нет никакого post_id. Для работы таких протоколов как POP/NNTP и вообще - нужен уникальный, автоинкриментный ИД. Тогда все будет нормально, а в протоколе есть понятие reference - это ссылка на ИД на который поступил ответ, что позволяет строить дерево. Номер форума нужен, поскольку форумы должны быть независимы, по требованиям RFC.
Одно из двух thread_id и post_id для протокола не нужно, это в референс уже есть, но оно удобно для построение HTML версии, выборка по thread_id и начиная с post_id - в случае без поддержки дерева. У меня собственно так сервер и устроен, только пользы от этого не очень, дерево не построить без уникального ИД сообщения.

Но все это говорится для случая NNTP, поскольку для HTTP без разницы как это организовано


 
Anatoly Podgoretsky ©   (2009-11-04 15:40) [102]

> xayam  (04.11.2009 15:20:39)  [99]

Я рекомендую взять EmptyDB и приаттачить, и там уже появится возможность автоматически создать скрипты, но вроде скрипт создания приложен, это CreateDB.sql - там создание базы и созадния структуры, но это лишнее, когда есть пустая ДБ

Кстати мы уже давно завели тему в шестой конференции http://delphimaster.net/view/16-1257329923/


 
xayam ©   (2009-11-04 16:05) [103]

люди, кто поможет переделать формат MSSQL http://xayam.com/nntp-server.structure.mssql.sql в MySQL ? Буду очень признателен, а то я в ms не силен :)


 
xayam ©   (2009-11-04 16:15) [104]


> Anatoly Podgoretsky ©   (04.11.09 15:40) [102]

что-то странная структура у Вас. Зачем в разных таблицах одни и те же поля? Можно отдельно же сделать? Примерно как здесь http://xayam.com/phpinn.sql


 
Anatoly Podgoretsky ©   (2009-11-04 16:35) [105]

> xayam  (04.11.2009 16:15:44)  [104]

По требованию RFC нумерация должна быть не зависима форум от форума, вот поэтому вместо одной таблицы сделано 14, по одной на форум и номер автоинкриментный. Это самое простое решение. При переводе на другую БД например с генераторами, можно будет сделать одну таблицу и 14 генераторов. В принципе мне 14 таблиц не мешали, но другого более простого и надежного решения, без генераторов я не видел.


 
xayam ©   (2009-11-04 23:36) [106]


> Anatoly Podgoretsky ©   (04.11.09 16:35) [105]
> По требованию RFC нумерация должна быть не зависима форум
> от форума, вот поэтому вместо одной таблицы сделано 14,
> по одной на форум и номер автоинкриментный. Это самое простое
> решение. При переводе на другую БД например с генераторами,
>  можно будет сделать одну таблицу и 14 генераторов. В принципе
> мне 14 таблиц не мешали, но другого более простого и надежного
> решения, без генераторов я не видел.

я структуру набросал, как я это вижу на все глядя со сторону http://xayam.com/struct.jpg  Реально такое сделать?


 
Anatoly Podgoretsky ©   (2009-11-05 00:49) [107]

> xayam  (04.11.2009 23:36:46)  [106]

Реально, у меня почти так и сделано, единственно я бы заложил возможность расширение на всякий случай, есть смысл добавить/заложить возможности расширени протоколов, кроме http и nntp, еще и rss и pop3/smtp.
Суть в том, что функции клиента переложить на штатного для системы клиента, какой нравится, а усилия перенести на сервер.
Только связи я бы сделал по другому, не NNTP обращается к http, а все подсистемы работают напрямую с БД, без лишних посредников, а пользовательские клиенты обращались к нужной подсистеме. Это более живучая и расширяемая система. Поток синхронизации должен быть отделен от NNTP, любая подсистема запускала бы цикл синхронизации, а для пользовательского клиента данные брала бы исключительно из БД. Поток синхронизации с delphimaster должен писать только в БД, ему ни к чему знать про клиентов.


 
Anatoly Podgoretsky ©   (2009-11-05 01:05) [108]


> McSimm ©   (04.11.09 13:54) [91]
>
> > Надеюсь по каждой конференции отдельно
>
> нет, такое не так просто сделать

Кстати если потом вздумаешь прицепить и NNTP, то это не выйдет из-за этого, поскольку в нем, есть не только одиночные запросы на сообщение, а и групповые по диапазону номер1-номер-N, или придется делать без деление на конференции или придется придумывать дублирующую, зеркальную систему нумерации, с отдельной таблицей/цами. Будет неудобно и будет сложно обеспечить целостность. С отдельными таблицами, по одной на каждый форум, это легко сделать.
Поэтому стоит подумать о будущем, если конечно еще не поздно.


 
Демо ©   (2009-11-05 02:05) [109]

Один вопрос - а всё-таки оно нужно?


 
VirEx(home)   (2009-11-05 13:00) [110]

Надо бы дмклиент переписать чтоб локальную базу в эскулайте хранила, с возможностью в эм эс эскуэль


 
Павел Калугин ©   (2009-11-05 14:18) [111]


> Gero ©   (02.11.09 16:55) [40]
>
> > Kolan ©   (02.11.09 16:53) [39]
>
> Я же говорю: собирался, давно. Сейчас предлагаю все выложить
> в открытый доступ.

А можно на почту?
И, если можно, с описанием протокола.


 
xayam ©   (2009-11-06 00:26) [112]


> Anatoly Podgoretsky ©   (05.11.09 00:49) [107]
> Только связи я бы сделал по другому, не NNTP обращается
> к http, а все подсистемы работают напрямую с БД, без лишних
> посредников, а пользовательские клиенты обращались к нужной
> подсистеме. Это более живучая и расширяемая система. Поток
> синхронизации должен быть отделен от NNTP, любая подсистема
> запускала бы цикл синхронизации, а для пользовательского
> клиента данные брала бы исключительно из БД. Поток синхронизации
> с delphimaster должен писать только в БД, ему ни к чему
> знать про клиентов.

значит так правильнее http://xayam.com/struct2.jpg  ?

> в есть смысл добавить/заложить
> возможности расширени протоколов, ... , еще
> и rss и pop3/smtp.

а зачем эти протоколы нужны в системе?

> Суть в том, что функции клиента переложить на штатного для
> системы клиента, какой нравится, а усилия перенести на сервер.

а какие функции нужно переносить на сервер? Конкретнее можно.


 
xayam ©   (2009-11-06 00:59) [113]


> Anatoly Podgoretsky ©   (04.11.09 15:35) [101]
> Но все это говорится для случая NNTP, поскольку для HTTP
> без разницы как это организовано

я так понял последний стандарт nntp этот - http://tools.ietf.org/html/rfc3977 за 2006 год.
Существует его перевод на русский? В инете искал, но пока предлагают только услуги по переводу спецификаций.


 
Anatoly Podgoretsky ©   (2009-11-06 10:24) [114]

> xayam  (06.11.2009 00:26:52)  [112]

Уже лучше, но я немного другое имел, похожее

NNTP, HTTP, RSS, POP3/SMTP каждый из них сам запускает поток для отправки сообщения и синхронизации с delphimaster.ru и забывает о нем, поток пишет данные в базу.
NNTP, HTTP, RSS, POP3/SMTP каждый из них сам обращается к mysql и забирает свои данные.
Альтернативой может быть отсылка сообщения на сервер в потоке, а синхронизация базы по рассписанию, решение зависит от нагрузки, но в обеих случаях не должно тормозить отсылки ответа клиенту.

То есть все клиенты независимы друг от друга, но так как ты сейчас предлагаешь уже лучше, единственно сложнее наращивать клиентов и лишнии посредники, если конечно не считать Apache как прокси, сериализация видимо решается автоматически средствами апаче и ответ выдает в NNTP не дожидаясь окончания синхронизации, кроме случая посылки сообщения на delphimaster.ru - тогда подойдет. Но если клиент будет ждать окончания синхронизации то это плохо.


 
Anatoly Podgoretsky ©   (2009-11-06 10:28) [115]

> xayam  (06.11.2009 00:59:53)  [113]

Я не знаю какой последний, но ты должен учесть, что нет никакой необходимости реализвовывать в полном объеме, поскольку это не полноценный сервер, а только шлюз к delphimaster. Вряд ли когда либо данный сервис станет членом USENET и конечно нужно иметь один свободный порт для службы, желательно стандартный 119, на shared hosting это сложно и иногда не возможно, на выделеном сервере без проблем.


 
Anatoly Podgoretsky ©   (2009-11-06 13:21) [116]

У меня реалихован следующий набор команд
> telnet inet.nitrofert.ee 119

200 Anatoly Podgoretsky NNTP Server Ready (posting allow)
help
100 Help text follows
Commands are:
 ARTICLE MsgNr or <MsgId>
 AUTHINFO USER name
 BODY MsgNr or <MsgId>
 DATE
 GROUP name
 HEAD MsgNr or <MsgId>
 HELP
 LAST
 LIST
 LIST NEWSGROUPS
 MODE READER
 NEWSGROUPS date time (formay yymmdd hhmmss)
 NEXT
 POST
 QUIT
 STAT MsgNr or <MsgId>
 XOVER FirstId[-LastId]
.

Этого достаточно, нужные rfc есть у меня на сайте в папке с документацией к APC SQL


 
xayam ©   (2009-11-07 14:58) [117]


> Anatoly Podgoretsky ©   (06.11.09 13:21) [116]

из этих команд в стандарте 3977 я не нашел только AUTHINFO (что она делает и как?) и XOVER (заменен на OVER)


 
Anatoly Podgoretsky ©   (2009-11-07 15:36) [118]

> xayam  (07.11.2009 14:58:57)  [117]

Не надо тебе 3977 смотри из моей коллекции.


 
xayam ©   (2009-11-07 16:00) [119]


> Anatoly Podgoretsky ©   (07.11.09 15:36) [118]
> > xayam  (07.11.2009 14:58:57)  [117]
> Не надо тебе 3977 смотри из моей коллекции.

почему ? более новая спецификация же


 
xayam ©   (2009-11-07 16:04) [120]

тем более она помечена как стандарт которого следует придерживаться



Страницы: 1 2 3 4 вся ветка

Текущий архив: 2010.01.10;
Скачать: CL | DM;

Наверх




Память: 0.71 MB
Время: 0.019 c
15-1257758697
vajo
2009-11-09 12:24
2010.01.10
Почему-то не запускается Explorer


3-1233218086
Konrads
2009-01-29 11:34
2010.01.10
Сортировка


1-1232544933
bartalbi
2009-01-21 16:35
2010.01.10
Выезжающие панели


2-1258621753
antonsha
2009-11-19 12:09
2010.01.10
TreeView


15-1257456612
Юрий
2009-11-06 00:30
2010.01.10
С днем рождения ! 6 ноября 2009 пятница