ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList

Страниц (13): « 1 2 [3] 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 186
Flat Отправлено: 25 марта 2019 — 04:17 • Тема: Перспективы дальнейшего развития • Форум: Новости

Ответов: 117
Просмотров: 98689
NordWest пишет:
Моё мнение было и остается неизменным - нужно было давным давно заниматься не так называемым "развитием" ExBB, а банальным наведением порядка в том движке, который был, устранением кучи мелких недочётов. А самое главное нужно как воздух перестроить структуру ядра таким образом, что бы платные моды устанавливались в отдельные папки и не смешиваись с ядром - без этого поддержка движка это всегда пляски с бубном.

Полностью, с этим согласен!
В тупик упёрлись потому, что изначально стараниями Маркуса или кого ещё, но форум двинулся в неверном направлении.
До сих пор не решены многие проблемы в самом ядре. К примеру онлайн статистика вообще никуда не годится. У вас тут по 1000 гостей накручивается, как и на других форумах на этом движке, хотя по факту раз в 100 меньше, а это потому, что не ведётся учёт уникальных гостей. Функция фильтрации ботов устарела. Больно видеть этот вопиющий самообман.. Бот заходит, неотфильтровывается, индексирует сотню, другую страниц и вот вам уже 200 гостей... Надо было элементарно через сессии сделать. исправлю по мере сил, это нетрудно и недолго.
Далее, уменьшить количество кукисов. Оно сейчас зашкаливает, а ведь у каждого браузера свой лимит на количество кук с одного домена. И как правило он не превышает 10..
Команда разбежалась по причинам того, что:
1) либо надо писать всё с нуля, а на это нужна команда.
2) либо надо менять код движка, а на это нужно время и желание, ведь отдачи в виде денег не будет. Я - фанатик, это моё хобби, ибо нравится мне этот движок, что ни говори..
Я за второй пункт. Сейчас этим плотно и занимаюсь. Надо привести код в порядок. Уйти от деления тем. Оптимизировать поиск - сейчас вообще он не фурычит, а если и фурычит то плохо. Создать единый реестр того, что к чему принадлежит в движке. Сейчас всё размазано по коду.
И всё вот уже у нас новая версия. А дальше будем наворачивать. Движок-то отличный несмотря на огрехи. Надо продолжать развитие в сторону упрощения кода и в сторону повышенного функционала и новых фич.
Новый движок НЕ НУЖЕН! Нужно доделать старый!!!
Столько труда вложено прошлыми разработчиками и это не должно пропасть в туне. Большая часть кода - рабочая, нормальная. Я-то знаю сколько времени уходит, чтобы написать и протестировать в боевых условиях даже небольшую часть кода. Программирование ужасно каторжная работа, по моему легче кирпичи таскать на стройке и в домино играть в обеденный перерыв. И за вредность никто приплачивать не собирается, а ведь сидеть за компом по 10 часов тоже не сахар, и зрение и гипдинамия и пр. постоянное напряжение мозгов тоже утомляет, это только в воображении далёких от программинга людей всё просто так само собой выходит, по щучьему веленью моему хотенью, а вреальности, терпение и труд, и самоотдача..
Flat Отправлено: 24 марта 2019 — 14:49 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
Тут намедни, протестил одну задумку, которая, впрочем, у меня уже давненько так крутилась в голове, да и когда-то слегка тестилась. Так вот, протестил сейчас и сравнил скорость поиска и загрузки..
Предположим у нас имеется текстовая база подобного формата, для файла users.php:
CODE:

<?php die()?>
^#id:1#n:'admin'#m:'ffffff@mail.ru'#p:2$
^#id:2#n:'vasya'#m:'gggg@mail.ru'#p:2$
^#id:3#n:'kolya'#m:'bbbbb@mail.ru'#p:2$
^#id:4#n:'lena'#m:'xxxx@mail.ru'#p:2$

^ это начало записи;
$ это её конец;
# это начало идентификатора поля, после чего через : идёт значение.

Так вот, к чему это я.. А к тому, что если такую базу НЕ сериализовать и НЕ десиреализовать, или как-то по другому конвертировать в массив и обратно, то скорость загрузки вкупе со скоростью поиска поля/значения/записи, через строковые функции типа strpos, возрастает, не упадите со стула, ... в 100 - 500 раз...

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

И база такая сохраняет способность легко её править вручную. И весит она в 2-4 раз меньше..

Может быть вот оно, то самое, что разгонит этот движок до космических скоростей, и даст ему новое дыхание? Как вы думаете?
Пока буду тестировать, авось что-нибудь из этого и выйдет, а может быть и нет, но результаты меня впечатлили.
Хотя не для всякой базы это подойдёт. Подойдёт там, где не нужно разбивать в массив, а нужно только убедится в наличии значения какой-то записи, или получить отдельную запись или значение поля, а не все записи/поля. Например для поиска хорошо подойдёт.
Flat Отправлено: 23 марта 2019 — 17:08 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
Прикрутил новый формат. Теперь всё работает, загружается быстрее в 2 раза. поверил на файле размером 60 мегабайт. Мой формат загружает его 15 секунд, а сериализированный вообще не загружается, по всей видимости функция сериализации просто не расчитана на такие обьёмы..

По ходу пьесы выявились некоторые концептуальные промахи предыдущих разработчиков. Во-первых номер сообщения в теме это время создания сообщения. Что тут неправильно? Может возникнуть ситуация, когда в течении одной секунды два юзера запостят сообщения в одной и той же теме и получат одинаковый timestamp.. А это значит, что два сообщения получат одинковые номера со всеми вытекающими. Проблема более чем реальна.
Будем решать.

Зачем сохраняем на веки вечные ip юзера в записи сообщения? Ведь ip меняется каждый день. Зачем эту ненужную информацию хранить вечно? Это обычный мусор, одноразовый..
Далее, Номер темы уникален только внутри форума, а не внутри конференции. Это мягко говоря неправильно. Номер темы, как и номер форума, как и номер сообщения должны иметь уникальные для всего форума(конференции) id.. В этом случае мы легко можем переносить без излишних телодвижений всё куда угодно откуда угодно, при этом сохраняя все ссылки. Но это будет работать только в том случае, если у нас будет своеобразный реестр того, что чему принадлежит. Реестр где собрана информация об этом в одном единственном месте.
Хотелось бы реализовать возможность иметь ссылку на сообщение пользователя в цитате на него, ну и другие возможности.
Flat Отправлено: 21 марта 2019 — 15:55 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
1Bot пишет:
Зачем оставлять неделимыми темы?

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

Что касается формата данных, то я решил проблему хранения при помощи var_export. Перед сохранением, строка с масивом ужимается удалением ненужных переводов строк и пробелов. При этом файл весит меньше, чем сериализированный на примерно 30%. Пробелы в текстовых строках заменяются на неразрывный пробел. при этом, пользователи могут форматировать свой текст пробелами. Загрузка такого файла в 2 раза быстрее сериализированного. Естественно, что с неразрывными пробелами файл будет весить несколько больше, но это несущественно. главное обеспечим читабельность и ремонтнопригодность данного формата.
Flat Отправлено: 21 марта 2019 — 14:41 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
Xeх... а эти функции работают только с юникодом.. жаль..
Flat Отправлено: 21 марта 2019 — 09:13 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
1Bot пишет:
Вы объединяете код и данные.

С функцией var_export возникли определённые проблемы. Массив в файле получается довольно большим(больше сериализированного на 50-30%) даже если убрать переводы строк и пробелы, которые эта функция вставляет для отступов, то получим меньший по весу файл, чем сериализированный, однако придётся в текстовых строках пробелы менять на html сущности, что геморрно.
Тут поэкспериментировал пол-дня, над функциями json_encode и json_decode, и получается, что файл занимает в 2-3 раза меньше места на диске, при этом скорость его загрузки возрастает в 2-2,5 раза, причём формат json как буд-то специально предназначен для хранения данных типа массивов и легко читаем. Надо, друзья шагать в ногу со временем, а сейчас, даже Опера использует такой формат, для хранения закладок в текстовом файле!
Пусть эти функции работают только PHP 5 >= 5.2.0, однако кто сейчас сидит на 4 пыхе?
Теперь всё устаканилось. Пока кардинально ничего менять не будем, на это нет времени, а сделаем:
1) новый формат json.
2) неделимые темы.
Flat Отправлено: 20 марта 2019 — 17:24 • Тема: Данные профиля из MySQL (регистрация с СМС) • Форум: Общие вопросы

Ответов: 3
Просмотров: 3407
dmitryms1 пишет:
Хотелось бы познать весь алгоритм. В PHP я еле-еле на 4 с минусом тяну.

Чтобы познать весь алгоритм, нужно просто прочесть весь нужный код. Но вначале подтянуть знание php. Чтобы расписать на русском языке весь алгоритм, нужно будет написать форум с нуля, но уже не на пыхе, а на могучем русском, а это новый "Война и Мир"... Так что никто за Вас это делать не будет, поскольку все заняты своими делами, никто за вас не будет кушать вашу кашу. Все через это проходили: садитесь за код, учебники и вперёд.
Flat Отправлено: 20 марта 2019 — 10:50 • Тема: Данные профиля из MySQL (регистрация с СМС) • Форум: Общие вопросы

Ответов: 3
Просмотров: 3407
dmitryms1 пишет:
Вопрос только в том как мне правильно "вклиниться" в код форума. Сможете описать алгоритм регистрации на ExBB (что откуда берется и куда пишется)?

Если вам надо будет "вклиниться" в код exbb, то по любому с ним надо будет познакомиться. Регистрация в файле register.php, вход/выход в loginout.php.
Flat Отправлено: 17 марта 2019 — 09:24 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
1Bot пишет:
Дополнительно следует добавить функционал при удалении/переносе в другую тему сообщений по перераспределению сообщений между файлами.

Да, естественно.
1Bot пишет:
Можно просто делать пометку для сообщения "удален" и из админки или отдельной плановой задачей делать полную перестройку файлов темы, убирая удаленные сообщения.

Так и сделаем.

Сейчас пока переписываю setforums.php. На RC у меня при определённой логике удаления/добавления/перестройки категорий и форумов посыпался весь allforums.php, после чего мне очень захотелось переделать данный файл.. К тому же иногда при удалении форумов остаются их папки. Кстати первоначальный setforums до переделки Маркусом был относительно правильней организован: там был свитч переключатель на функции, при этом в редакторе можно было легко найти функцию через их список, а сейчас приходится искать вручную, либо через поиск, что очень напрягает. С точки зрения программиста первоначальный вариант был правильнее, чем через ifelse.. Да и переменные не перекрывались..
Flat Отправлено: 16 марта 2019 — 06:06 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
Реализован собственный шаблонизатор. Весь php код из шаблонов убран. Примерно как в PhpBB, но несколько по другому..
Файлов шаблонов станет меньше и они будут более понятными. В редакторе код шаблона прекрасно подсвечивается. Честно говоря я "тащусь" от своего шаблонизатора, - мне он положительно нравится!!! Удивительно, но загрузка главной страницы стала быстрее, видимо потому, что файл шаблона единственный и грузится только 1 раз!

Решил каким образом реализовать проблему деления одной темы на несколько меньших, которая является ахилессовой пятой форумов типа exbb. Проблема эта давняя, но никто так и не приступил к её решению.
После напряжённых раздумий, решил сделать таким образом:
Каждая тема делится на отдельные файлы по 60 сообщений в файле. Число 60 оптимально по нескольким причинам.
Каждый юзер имеет право выбрать не произвольно число сообщений на станицу, а заранее определённое число, которое на цело делится на 60. В профиле он может выбрать такие числа количества сообщений: 1, 2, 3, 4, 5, 6, 10, 15, 20, 30, 60.
В этом случае не придётся качать помимо 60 сообщений ещё 60 сообщений второго файла, если часть сообщений будут лежать в другом файле.
При такой схеме мы получаем:
1. время загрузки темы является постоянной величиной. Поэтому тема может быть сколь угодно большой, и её не нужно делить на отдельные темы, и не будет потерь в скорости загрузки даже при огромных темах.
2. юзеры по прежнему имеют право выбрать определённое число сообщений на одну страницу, хотя и из ограниченного списка.
3. количество файлов тем будет относительно не большим при 60 сообщений на файл даже для огромных форумов.
Почему раньше это не было реализовано?..
Flat Отправлено: 13 марта 2019 — 02:53 • Тема: Рекорды одновременного посещения этого форума • Форум: О жизни

Ответов: 31
Просмотров: 18994
Не забываем, что гости сейчас безжалостно накручиваются..
Flat Отправлено: 13 марта 2019 — 02:50 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
1Bot пишет:
есть опасность вставки в такие "данные" любого кода, который также может перекрывать любые переменные;

Дело в том, что я и подключаю не через include, а через функцию exbb_read(), в которой делаю:
Цитата:
return eval($buf);

Всё делается примерно точно также, как и сейчас.
1Bot пишет:
- при неполной записи в такой файл во время его подключения будет фатальная ошибка.

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

Что касается отдельного файла с категориями, то возможно откажусь от этой идеи и оставлю один файл allforums, но несколько изменённый. Даже так и сделаю. Иначе придётся слишком много всего менять.. Да и так придётся многое изменить: практически новое ядро.

В setforums.php сейчас сделано добавление категорий, форумов и подфорумов(раздельно).
Думаю если постараться вскоре будет бета и возможно к разработке подключатся и другие пользователи.

Часть кода возьму от своих старых наработок, в частности отслеживание посещений пользователями отдельных тем и онлайн подсчёта. Сейчас тут применяется модуль sqlite, а будет силами самого скрипта. Отслеживаться будут последние 100-200 тем(число задаётся в админке), которые пользователь посетил/не посетил. Это всё практичски уже написано для другого движка.
Онлайн подсчёт должен быть более корректным. Вы думаете что тут каждый день по 400-1000 гостей? Это саомобман, достаточно взглянуть на логи посещений. Тут идёт подсчёт каждого действия гостя, хотя он и не уникален, а также не корректно подсчитываются боты.
Flat Отправлено: 11 марта 2019 — 17:13 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
По делам текущим..
Сейчас полностью работаю над оригинальным Exbb.
Сделано:
1) Движок переведён на другой, более читаемый формат файлов. Загрузка файлов стала в 2 раза быстрее;
Пример файла boardstats.php:
CODE:
<?php die('Access denied!');?>
return array (
'max_online' => 1,
'max_time' => 1552311233,
'lastreg' => 'admin',
'last_id' => 1,
'totalmembers' => 1,
'totalposts' => 0,
'totalthreads' => 3,
);


2) Все данные: папки members, messages, uploads, forums собраны в в data;

3) Функции exbb_read и exbb_write сделаны атомарными, т. е. убраны из кода функции fclose хэндлов файлов. Раньше это могло привести к неприятным последствиям, так как блокировка файлов и разблокировка были разнесены во времени, а некоторые файлы блокируются, но не разблокируются в коде движка, что может привести к конфликтам процессов.

4) Несколько изменён файл allforums.php. Создан отдельный файл со списком всех категорий. Это привело:
1. Возможность задавать модераторов отдельной категории, возможность задавать права на отдельную категорию, а также делать отдельную категорию приватной.
2. Избавится от бага тасовки категорий и форумов. Теперь там всё прозрачно.
3. Создавать категорию без форумов. Сейчас если удаляем единственный форум в категории удаляется и категория, что неприятно.
4. Сделать номера категорий уникальными, а не зависящими от порядка сортировки.

Сейчас надо полностью переработать работу в файле setforums.php и некоторых других. Короче, буду перелопачивать весь код.
Flat Отправлено: 27 февраля 2019 — 08:50 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
К тому же функция _OnlineLog() вызывается только в некоторых модулях, которые по представлению программиста должны учитывать онлайн посетителей. К сожалению можно просто забыть вызвать эту функцю, в каком-то модуле, что приведёт к искажению статистики. Правильней было бы вызвать эту функцию всего один раз: в функции авторизации, при этом будут учитываться все посетители.
Flat Отправлено: 27 февраля 2019 — 06:19 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38796
NordWest пишет:
Что то мне не сильно нравится этот код в плане безопасности. Может конечно и ошибаюсь, но похоже на дыру для SQL инжекции.

В смысле модулей, которые используют sqlite? Вполне возможно. Я вообще против пихания в чисто файловый движок каких-либо sql, sqlite и прочих баз данных. Это не наш путь, от слова совсем. Мы идём чисто файловым путём, а все те, кто вам будет говорить об обратном либо по хорошему ошибаются, либо лукавят. Вменяемых файловых движков и так кто наплакал..
Что касается данного случая, то тут видимо придётся ещё проверять сессионые переменные и константу IS_ADMIN. У меня, сейчас честно говоря голова занята конкретно своим проектом, да и приболел, поэтому не хочу тратить время на другое. Если буду растрачивать себя то ничего не выйдет..
Программирование очень серьёзная тема, тестирование ещё серьёзней и время-затратней. Тут надо быть полностью сосредоточенным на одном.
Что касается дела, то переписал авторизацию, надеюсь, что окончательно. К тому же сейчас делаю подсчёт онлайн посетителей, и посетителей за сутки. Сейчас число посетителей за день одномоментно сбрасывается, что на мой свежий взгляд несколько не верно. Делаю так, что будет проверятся время по каждому посетителю, в течение суток, и сбрасываться будет каждый отдельный посетитель при исчерпании времени. В этом случае, юзер, который зашёл на сайт во время сброса списка, не увидит пустое поле числа пос. за день, а увидит число пос. которые уже были здесь в течении прошедших часов.
Также будет учтены "свежие" или "старые" гости, то есть уникальные гости. Подсчитываться будут только уникальные гости, это чтобы небыло накрутки гостей. Статистика буде более полно отражать существующую картину посещений. Сейчас этого нет. Есть только разделение гостей на ботов и не ботов.

Страниц (13): « 1 2 [3] 4 5 6 7 8 9 ... » В конец

Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0594]     [ ]