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

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

> Найдено сообщений: 763
1Bot Отправлено: 9 апреля 2019 — 13:00 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Flat пишет:
Изменил, концепцию удаления/перемещения сообщений в теме, приходится всё переписывать.
Идея такая:
теперь мы не будем перестраивать ВСЮ тему целиком, если, к примеру, мы удаляем сообщение/я из начала темы. Теперь будем удалять сообщение/я только из того файла, в котором находится данное сообщение, без перестройки темы. По ходу проверяем файл на количество сообщений. Если в нём менее половины или половина сообщений(на файл), то проверяем следующий файл и если в нём тоже менее половины сообщений, обьединяем соседние файлы.
При такой схеме при показе темы мы откроем максимум 2 файла. А при удалении_перемещении также будут обработаны в лучшем случае 1 файл, а в худшем 2, даже если в теме большое количество файлов.
Это только сейчас меня торкнуло. И это окончательное решение.
Пользователь по прежнему имеет право выбрать ПРОИЗВОЛЬНОЕ количество сообщений на страницу.
Для exbb лучше не придумаешь! Бывают просветления..

Идея не до конца раскрыта, так не понятно:
- откуда известно в скольки файлах располагается тема?
- какая последовательность сообщений в файлах темы?
- как производить все манипуляции объединения при MSFIOA (Multiprocess Simultaneous File Input Output Access / многопроцессный одновременный файловый ввод вывод)?
1Bot Отправлено: 2 апреля 2019 — 15:31 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Flat пишет:
В том, что гораздо проще не париться, а перевести базу на sqlite, при этом у нас будет та же самая база прямого доступа в одном файле, который для нас доступен. Но тут возникает момент: файл-то доступен, но его практически невозможно редактировать вручную.


Вы пришли к самому правильному выводу - нужно использовать sqllite3 для хранения данных в файлах. Очень много плюсов. Да и в редактировании данных вручную совсем нет необходимости - есть множество готовых клиентов: DB Browser for SQLite, SQLite Manager, DBeaver, SQLiteStudio.

Блокировки при файловом доступе все равно придется использовать либо напрямую, либо опосредовано через готовые библиотеки.
1Bot Отправлено: 2 апреля 2019 — 15:03 • Тема: Мод: Спойлеры • Форум: Модификации и дополнения

Ответов: 115
Просмотров: 87573
Flat пишет:
К сожалению, информация в спойлере не видна тем, у кого отключен javascript - пример плохого юзабилити. Нельзя обделять любых пользователей. Попробую сделать через джейквэри в качестве домашнего задания..


Вы меня удивляете, как в браузере будет выполняться jQuery, если выполнение javascript выключено?
1Bot Отправлено: 1 апреля 2019 — 13:15 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Flat.
Есть у меня одна идея для хранения произвольной информации в файлах прямого доступа.
Возможно Вы попробуете ее реализовать.

1) Файл данных прямого доступа, который хранят наборы текстовых данных произвольной длинны (фактически это данные произвольной структуры после сериализации).

2) Каждая хранимая структура имеет уникальный идентификатор (по которому ее можно добавить/удалить/изменить).

3) Есть файл для быстрого доступа к данным (файл-индекс) - файл с наборами данных фиксированной длинны, а именно хранит массив структур вида
CODE:
(
id_block - уникальный идентификатор порции данных,
offset_block - смещение порции данных в байтах для прямого доступа в файле данных
length_data - длина в байтах, занимаемая порцией данных
length_block - длина в байтах, занимаемая блоком
)


Одна такая пара файлов может хранить как весь форум, так и одну тему, а может только раздел - это вопрос только идентификации данных, а вся работа с блоками будет унифицированна на данной структуре.

Остается реализовать несколько операций над такой структурой с учетом возможного одновременного параллельного доступа:
- вставка нового блока
- изменение существующего блока
- удаление существующего блока

Размеры сохраняемых блоков данных не имеют значения - лишь бы один блок помещался в память, т.к. данные будут сохраняться и считываться в режиме прямого доступа к файлу.
1Bot Отправлено: 28 марта 2019 — 17:05 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Flat,
Теперешнюю структуру нет смысла менять, т.к. для одинаковых данных:
  • serialize дольше выполняется, чем json_encode
  • unserialize выполняется быстрее, чем json_decode
  • для данных до 70М serialize текст занимает меньше, чем json
  • у serialize практически неограниченная вложенность структур, у json - до 256 уровней
  • в serialize можно хранить экземпляры классов со всеми свойствами, в json - только публичные свойства
  • unserialize может полностью восстановить экземпляры классов, json_decode - восстановит свойства в StdClass

Дополнительно хочу порекомендовать Вам выставить для тестов у себя настройки как на реальных хостингах:
  • Суммарная нагрузка за день (статистическая нагрузка) не должна превышать 50 cp на CPU, 1000 единиц на MySQL.
  • Запрещается использование процессами процессоров сервера более 60% в течение 5 секунд и более 10% в течение 25 секунд. В случае превышения данного лимита процесс завершается.
  • Максимальное число процессов пользователя не может превышать 40.
  • Максимальное использование оперативной памяти на процесс (memory limit): 128 Мб
  • Максимальное время исполнения скрипта (параметр max_execution_time): 120 секунд.
1Bot Отправлено: 21 марта 2019 — 15:17 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Зачем оставлять неделимыми темы? Для больших активных тем это будет приводить к чрезмерному чтению (Вы сами об этом писали).
1Bot Отправлено: 17 марта 2019 — 07:03 • Тема: EXBB gold edition • Форум: Обсуждаем

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

Хорошая идея!
Дополнительно следует добавить функционал при удалении/переносе в другую тему сообщений по перераспределению сообщений между файлами.
Можно просто делать пометку для сообщения "удален" и из админки или отдельной плановой задачей делать полную перестройку файлов темы, убирая удаленные сообщения.
1Bot Отправлено: 12 марта 2019 — 20:24 • Тема: Рекорды одновременного посещения этого форума • Форум: О жизни

Ответов: 31
Просмотров: 18868
Участников: 1575
Сообщений: 32484
Тем: 1795
Рекорд одновременного пребывания: 461, 13.03.2018 00:34
1Bot Отправлено: 12 марта 2019 — 20:15 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Flat пишет:
По делам текущим..
Сейчас полностью работаю над оригинальным 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,
);


Вы объединяете код и данные.

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

Недостатки:
- есть опасность вставки в такие "данные" любого кода, который также может перекрывать любые переменные;
- при неполной записи в такой файл во время его подключения будет фатальная ошибка.
1Bot Отправлено: 21 февраля 2019 — 07:07 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Flat пишет:
Изменена концепция входа администратора в админцентр. Вопрос на засыпку: зачем существует функция повторного залогинивания админа при входе в админ центр? Мне действительно интересно. Насколько я знаю нигде такого нет.. По вашему мнению это повышает безопасность скрипта? .
Давайте подумаем: админ уже авторизован на форуме. Теперь ему показывается ссылка на админцентр. При переходе ему показывается форма входа в админ центр. Зачем??? Это просто дубляж функции залогинивания. Админ и так уже авторизовался! Зачем ещё раз? Чтобы войти в админ центр? Так и каждый гость знакомый с кодом будет знать ссылку в админцентр!!! И сейчас именно так и есть! Понятно что делали студенты первокурсники, это по коду сплошь видно и понятно. Я тоже бывает косячу.. Убрал этот ненужный дубляж. В админ центр и так никто кроме админа не пройдёт: хоть триста раз авторизуйся это безопасность ни на йоту не повысит, друзья..

Отдельная авторизация в админ-центре из-за того что доступ на основной форум можно закрыть (и соответственно доступ к основной форме авторизации будет недоступен).
1Bot Отправлено: 16 февраля 2019 — 07:05 • Тема: EXBB gold edition • Форум: Обсуждаем

Ответов: 87
Просмотров: 38453
Flat ,
Как Вы решаете вопрос с зависимыми модами?
Пример: мод, который закрывает/открывает определенные разделы в зависимости от репутации пользователя или количества его сообщений в определенном разделе и т.д.
1Bot Отправлено: 11 февраля 2019 — 05:52 • Тема: Мод: Текстовое подтверждение при регистрации • Форум: Модификации и дополнения

Ответов: 97
Просмотров: 88921
Parapsixolog пишет:
1Bot пишет:
Пока не вижу способа сделать моды полностью независимыми. Как вы предполагаете это сделать?

Разве WebMaster уже не делал что то подобное - http://exbb.info/community/topic...m=53&topic=1 ? Правда дело у него далеко не продвинулось.


Да тестировала данный подход, потому знаю детально о нем. Он событийно-ориентированный. Его достоинствами есть максимальная стандартизация событий в ядре.
Его недостатки в том, что все возможные события, которые понадобятся для конкретного мода невозможно описать в ядре и моды практически не могут взаимодействовать между собой.
(Добавление)
Flat пишет:
Может отдельную тему образовать, ибо рождается новый форк движка? Там и буду выкладывать то что сделано; все версии; там будем обсуждать конкретные вещи?

Желательно, чтобы потом по всему форуму не искать.
1Bot Отправлено: 10 февраля 2019 — 07:27 • Тема: Мод: Текстовое подтверждение при регистрации • Форум: Модификации и дополнения

Ответов: 97
Просмотров: 88921
Yamaliya пишет:
Flat , тебе бы в депутаты..

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

Хороший разработчик планирует свои действия перед реализацией, советуется в спорных решениях, чтобы по возможности получить как можно более сбалансированное решение, которое максимально учитывает замечания.
Соответственно их обсуждает, реализует наброски, говорит о своих планах...
1Bot Отправлено: 10 февраля 2019 — 07:04 • Тема: Мод: Текстовое подтверждение при регистрации • Форум: Модификации и дополнения

Ответов: 97
Просмотров: 88921
Flat пишет:
Судя по коду exbb все эти моды глубоко проникли в ядро движка, по сути став одним целым с ним. Это конечно не правильно. Причина в том, что изначально об этом и не думали.. двиг просто не был заточен на моды. Мод должен быть независим от ядра, чтоб его можно было легко вкл. и выкл. Одной кнопкой.. Ну, это дело поправимо..


Для ядра это ключевой вопрос. Пока не вижу способа сделать моды полностью независимыми. Как вы предполагаете это сделать?
1Bot Отправлено: 8 февраля 2019 — 15:13 • Тема: Мод: Текстовое подтверждение при регистрации • Форум: Модификации и дополнения

Ответов: 97
Просмотров: 88921
Flat пишет:
В строчках:
CODE:
if (is_array($_GET))

и
CODE:
if (is_array($_POST))

Условия ВСЕГДА возвращают TRUE!
Правильно:
CODE:
if (!empty($_GET))

Настоятельно прошу заменить у себя.

Если это не было изменено каким-либо образом, например
CODE:
$_POST = 'not array';

Обычно в целях защиты обнуляют пост данные, если например crfs-токен неправильный.

Страниц (51): « 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.029]     [ ]