Ычан: [d | b / bro / hr / l / m / mu / o / s / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 18554)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5120 кБ.
  • Ныне 3708 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
hc.png - (521.18KB, 1920×1052)
18554
No. 18554  
Пишу принципиально новый движок для борды. Спрашивайте ваши вопросы.

Тред в /b/ удалили :(
No. 18555  
Ненужно.
No. 18556  
>>18555
Почему? Новые фичи, новый лэйаут. Уведомления, ответы на посты.
No. 18557  
>>18556
Борду делает не её программная реализация, а посетители и модерационная политика. Вся техника это вторичное средство, должное служить людям, а не самоцель. Но занимающиеся ей часто путают.
No. 18558  
Шо, опять Оланет/Фрипорт изобретают?
No. 18559  
>>18554
Я знаю. Люди останутся те же, где я тебе других возьму.

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

Насчет политики. У меня есть мысли на этот счет, их еще предстоит оформить в простой свод правил. Пока лишь могу сказать, что мне не нравится, чем стали нынешние Д и Ы.
No. 18560  
>>18558
Коль фрипорт закрыли, то почему бы и не изобрести.
>>18554
Выглядит движок хорошо, Антон. На чем пишешь?
Список тредов слева всегда казался удачной идеей, даже удивительно что нигде это толком не реализовали, разве что писали такие скрипты для форчана.
t. тоже пишет движок
No. 18561  
>>18560
Тьфу, блин, спалился.

Backend - Django, frontend - react + redux.

Тоже движок пишешь? Есть скрины?
No. 18563  
>>18561
На скринах ничего интересного, обычная вакабовская верстка. Бекэнд node, express, mongo, фронтенд статика.
Идея в том, что в 2018 году многие, даже если тут поскроллить, ставят себе форки вакабы с кусабой, поэтому почему бы не создать что-то привычное снаружи, но простое и опрятное внутри, с установкой одним кликом.
No. 18564  
И сразу первый и важный вопрос тебе ОП: какой функционал у данного твоего движка имеется? И если быть точнее, то какие у него есть особенности, которых нет у других движков?
>>18563
> На скринах ничего интересного, обычная вакабовская верстка.
Где ты ее там увидел-то?
> ставят себе форки вакабы с кусабой
Просто не смотря на говнистый код под капотом особенно у кусабовских у них есть пару уникальных фич, которых нет во всяких вичанах и я уже не говорю про всякие запили движков на ангуларе.
No. 18565  
Алсо, было бы хорошо еще, если бы ты скинул больше скринов с ним (включая то, как админка там реализована). Ну и можешь ссылку дать, чтобы я лично там посмотрел, полазил и сделал вердикт.
No. 18567  
.png - (129.88KB, 450×437)
18567
>>18564
> Где ты ее там увидел-то?
Пик.
> у них есть пару уникальных фич, которых нет во всяких вичанах
А с этого места поподробнее.
No. 18572  
berseria__velvet.jpg - (346.71KB, 1920×1080)
18572
ОП вернулся.
>>18563
Я несколько лет назад изучал ноду, было у меня начинание на нода+монго+экспресс+вебсокеты сделать быстрый реалтаймовый борд с классическим дизайном. Тогда я подзастрял, не поняв сути монги, но кое-какие идеи пригодились сейчас. Сейчас же я хочу именно отойти от канонов вакабы.

>>18564
А что это за фичи, расскажи, пожалуйста.

>>18565
Завтра днем сделаю скринов, но функциональность не богатая, только начинаю подходить к уровню "можно публичную версию запустить", без запланированных отличительных фишечек.
No. 18573  
14670400485490.png - (743.13KB, 1072×900)
18573
По фичам, на самом деле поле не паханное еще.

Сейчас не хватает:
  • Ссылок на ответы на пост, таблицы в базе для их хранения и контроллера для запросов к ней
  • Удобной админки, в наличии только автосгенеренная админка джанги. Жить можно с ней, но очень неудобно
  • Жалоб на посты/треды
  • Банов
  • Автообновления списка постов и боковой панели
  • Спойлеров
  • Некоторых фич парсера разметки
  • Своей капчи, используется гугловая
  • Удобного компонента для выбора картинок к посту, сейчас обычный input type=file используется
  • Закладок и сортировки в боковой панели
  • Статичных страниц (стартовая, правила, FAQ)
  • Годных конфигов вебсервера и БД
Что-то я смогу довольно быстро сделать, но админка, похоже, много времени займет.
No. 18575  
14683506742500.gif - (56.50KB, 500×399)
18575
Что у меня, получается, есть.
  • Более-менее установившаяся структура проекта, стабильные фронтенд и бэкенд, знания по технологиям, которые хотел изучить, общая концепция
  • Постинг (с капчей от гугла, простым парсером разметки, прикреплением нескольких картинок, созданием тредов)
  • Для картинок простенький просмотрщик а-ля lightbox
  • Собственно, доски и треды с лимитами на число постов, закреплением тредов, блокировкой от новых постов
  • Скрытие постов и тредов в списках, запоминание собственных постов и тредов, хранение всего этого в LocalStorage
Вроде как и все. Зарелизиться с этим уже можно, я думаю, но похоже, что никто не впечатлится с таким набором.
No. 18577  
14628267305620.jpg - (126.23KB, 801×1080)
18577
Итак, что должно получиться. Лол, что-то у меня мысли в обратном порядке идут.

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

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

Также, хотелось за счет "одностраничности" приложения хочется увеличить его производительность: загружать только новые посты при обновлении треда, не грузить сразу весь тред со всеми картинками.

Да, и не маловажно для меня - люто корежит от того, как вакаба сотоварищи ведут себя на широких экранах - текст растягивается на все 1920, читать тяжело, нужно его огранчить по ширине.

Как-то так. Завтра наделаю больше скриншотов.
Хочу узнать ваше мнение по дизайну и концепции.
No. 18580  
>>18575
Админка самое тяжкое. Тут надо предусмотреть перенос тредов между досками, алгоритм автоматического удаления старых тредов (по принципу уплыл за последнюю страницу - подход не очень), права модераторов, удаление в корзину (модератор удалил, супермордератор решил что зря и воскресил обратно), архив тредов (собирать и хранить статику, удалив из базы), при этом сохраняя возможность этот архив посмотреть списком (в json-файл метаданные тредов записывать).
Проблема в том, что это не только тривиальные манипуляции с базой, но и с файлами (для каждого удаленного поста и треда нужно удалять прикрепленное), если есть карта ответов в базе, то и удалять все ссылки на пост в других постах.
При переносе тредов между досками та же ситуация. Совет: нужно делать сквозную нумерацию постов. Иначе при переносе треда возможны коллизии, а если нумеровать все посты заново, то все >>ссылки внутри треда полетят, и нужно будет их как-то восстанавливать.
No. 18582  
К чёрту скриншоты, это /dev/, всё-таки, а не /webfuckingdesign/. Лучше бы ссылку на гитхаб скинул.
No. 18586  
>>18580
> Проблема в том, что это не только тривиальные манипуляции с базой, но и с файлами (для каждого удаленного поста и треда нужно удалять прикрепленное), если есть карта ответов в базе, то и удалять все ссылки на пост в других постах.
> При переносе тредов между досками та же ситуация. Совет: нужно делать сквозную нумерацию постов. Иначе при переносе треда возможны коллизии, а если нумеровать все посты заново, то все >>ссылки внутри треда полетят, и нужно будет их как-то восстанавливать.
На вичане и кусабе это ж как-то решили.
No. 18595  
>>18580
>это не только тривиальные манипуляции с базой, но и с файлами (для каждого удаленного поста и треда нужно удалять прикрепленное), если есть карта ответов в базе, то и удалять все ссылки на пост в других постах
Каскадное удаление @ триггеры. И можно было бы даже без кода обойтись, но я за монгу не скажу, умеет ли она так.

Алсо, хранить карту ответов в базе ненужно, это лучше реализовывать на клиенте, все данные для этого там есть - >>ссылки на пост и сами посты.
No. 18602  
147962853256.jpg - (471.71KB, 1325×1000)
18602
>>18580
Часть из этого сложно, часть не очень.
>Тут надо предусмотреть перенос тредов между досками
Задел для этого есть, коллизий не должно случиться. У постов и тредов есть две нумерации - уникальные в пределах всей базы первичные id и "человекочитаемые" id, уникальные для поста в пределах треда и для треда в пределах доски.
То есть для переноса треда на новую достаточно доску просто задать ему ссылку на запись с ней и выдать следующий свободный id, оба id постов не поменяются. У меня в моделях сейчас есть лишние внешние ключи, например у поста есть ссылка на доску, но они не сильно нужны, собираюсь удалить их.

Видимый id поста строится так 0x1а30f1. (0x) "для красоты", первые три знака (1а3) это id треда, последние три (0f1) - id поста. Соответсвенно, при переносе изменится только id треда, связи в БД между постами останутся прежними.

>удаление в корзину
Да, это предусмотрено - у всех сущностей есть флаги is_deleted и все выдачи фильтруются по ним.

>архив тредов
Будет нужен, но на первое время можно обойтись, мне кажется.

>Проблема в том, что это не только тривиальные манипуляции с базой, но и с файлами
Да, есть такой момент, но это не большая проблема. Иерархия данных в базе такая:
Доска -> Тред -> Пост -> Изображение, у потомков проставлено каскадное удаление при удалении родителя.
Получается, достаточно триггеров на удаление записей изображений. С переносом чуть сложнее, сейчас картинки сохраняются в каталогах, содержащих имена досок и id тредов, придется что-то решать - оставлять старые пути (они все в модели изображений сохранены) или переносить файлы.
No. 18604  
>>18595
А мне кажется, что все-таки нужна карта на сервере - чтобы получать данные об ответах не только в открытом треде, но и во всех остальных. ОП
No. 18605  
>>18582
Извини, но нет - закрытый репозиторий на битбакете под моей реальной учеткой, это уже полный деанон будет.
No. 18607  
Форма ответа - довольно простая, вызывается кнопками с верхней панельки. Выбор картинок - простой инпут с возможностью мультвыбора. Для создания треда форма такая же, но на темно-сером фоне, как у навигатора справа.
No. 18608  
Скрытие постов и тредов, все сохраняется в localStorage и синхронизируются между открытыми вкладками без обновления страницы.
No. 18609  
>>18573
Layout интересный, но если не работает просмотр и постинг без джаваскрипта, то это поделие ненужно.
> Сейчас не хватает:
> Своей капчи, используется гугловая
Капча должна быть своя.
>>18605
> Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером до 10000 кБ.
Можешь прямо сюда залить архив с исходниками.
No. 18613  
Какую сборку сервера ты используешь для создания борды?
No. 18614  
>>18613
Полностью самописный бэкенд.
No. 18667  
Бамп
No. 18708  
011000.jpg - (75.93KB, 600×512)
18708
hexchan.org

Задеплоил текущую версию
No. 18709  
http://hexchan.org/b/
No. 18710  
Ошибка сетевого запроса.
No. 18712  
>>18709
Ты бы админку показал что-ли? И расскажи, что сейчас по функционалу можно там вытворять и что планируется добавить? Не забывай, что твоя борда должна быть уникальна. Но только не в смысле фронтэнда, в смысле функционала. Она чем-то должна опережать кусабы/вакабы/вичаны, которые не смотря на то, что они старые как двери, зато поддерживают широкий функционал.
No. 18713  
Даты как-то странно перемешаны.
Нет проверки, есть ли вообще посты/треды с убиранием кнопки «Показать ещё».
Возможно, стоит добавить галерею хотя бы для картинок из одного поста.
Вместо ручного обновления, наверное, можно сделать live-формирование ленты. Тут, наверное, понадобится сортировка тредов не только по бампам, но и по времени.
Доски… Ну чёрт знает, ничего принципиально нового.
Без активного треда вместо «Выберете тред для просмотра» можно показывать всякую информацию о доске, самые активные треды и прочую лабуду.
Вместо загрузки всего треда можно подгружать по n постов. Для тех, кто без ЖС можно пагинацию.
Автоматическая подгрузка новых постов или уведомление с оной по клику.
Номера постов можно скрыть для пользователя, если не планируется один ответ на несколько постов.
No. 18714  
2018-01-20 18_43_18.jpg - (511.08KB, 1366×667)
18714
キタ━━━(゚∀゚)━━━!!
No. 18715  
>>18710
Капча отвалилась, пока не понял в чем дело.
>>18712
Админку я еще не написал. Черт, еще так много всего нужно сделать, а я работаю один, да еще и не каждый день - надо и основной работой заниматься.
>И расскажи, что сейчас по функционалу
Смотри в треде выше, там и планы, и текущее положение дел. Капча гугловая отвалилась, постинг пока не работает.
>>18713
>Даты как-то странно перемешаны.
Это нормально, фэйкоданные из генератора.
>Возможно, стоит добавить галерею хотя бы для картинок из одного поста.
Кнопок вперед-назад при просмотре, что ли?
>Вместо ручного обновления, наверное, можно сделать live-формирование ленты.
Это в планах и одна из ключевых фишек, но пока не понял, как эту концепцию на Redux натянуть. Вообще, state приложения на клиенте поддерживать - это тот еще ад.
>Без активного треда вместо «Выберете тред для просмотра» можно показывать всякую информацию о доске, самые активные треды и прочую лабуду.
Вот это очень хорошая мысль, спасибо. Надо будет надизайнить.
>Вместо загрузки всего треда можно подгружать по n постов.
Сейчас так и есть. Обрати внимания, как быстро треды переключаются. Загружаются 16 тредов по 16 последних постов + ОП. Если ты тред читал - можно, переключившись на него, сразу подгружать новые последние посты, а можно читать его с начала, загружая по 128 постов за раз.
>Для тех, кто без ЖС можно пагинацию.
Без JS нет и не будет точно. Без JS сейчас не сделать что-либо уровня пустой вакабы, а я хочу современное одностраничное приложение.
>Автоматическая подгрузка новых постов или уведомление с оной по клику.
В планах.
>>18714
Проклятье, опять эта багуля вылезла. Не могу никак ее отловить.
No. 18716  
>>18712
>Она чем-то должна опережать кусабы/вакабы/вичаны, которые не смотря на то, что они старые как двери, зато поддерживают широкий функционал.

А что у них такого, чего я хотя бы не запланировал?

У меня будет "одностраничность" с быстрой загрузкой, свежий дизайн, лента тредов, автообновление с уведомлениями об ответах даже в невыбранных тредах.
No. 18717  
>>18715
Да, вперёд-назад.
>читать его с начала, загружая по 128 постов за раз
Вот тут неясно. Имел в виду, вместо «Пропущено постов: 111 из 128 Показать» показывать какой-нибудь счётчик постов и под ОП-постом кнопку «Показать все х сообщений», если меньше 128, либо «Показать предыдущие сообщения». Ну или просто «Загрузить ещё».

Отловить просто: подгрузи треды со второй страницы, зайди в один из и обнови страницу.
No. 18718  
>>18716
> с уведомлениями об ответах даже в невыбранных тредах.
Ты сейчас серьезно это? Не вздумай делать такого! Серьезно. Подумай, если вдруг твой движок вздумает взлететь и на нем будут поднимать борды что очень вряд ли если ты такое собираешься влепить то у многих будет знатно гореть от этих уведомлений на те треды, которые не нужны. Надо двигаться в противоположном направлении. Хорошими примерами будут здесь из наших бордостроителей - так это движки орфереус и эксаба. Особенно последний с ОП-модерацией (опционально).
No. 18719  
>>18718
Воу, воу, погоди. Уведомления только на ответы тебе лично. В локалсторадже будут храниться ид твоих постов, периодически делается запрос на сервер на получение ид ответов.

>Надо двигаться в противоположном направлении. Хорошими примерами будут здесь из наших бордостроителей - так это движки орфереус и эксаба. Особенно последний с ОП-модерацией (опционально).

А что у них такого отличительно хорошего?

>ОП-модерацией
Я читал о таком подходе, когда еще думал о концепции. Есть нюанс - ОП будет удалять все сообщения, которые ему не нравятся, останется лишь хор подпевал. Согласись, суть борд (тм) не в этом.

Сделать это не сложно, работы чуть ли не на один день. Но вот будет ли это хорошо, не знаю.
No. 18720  
>>18718
Алсо, я не хочу делать движок общего пользования. Да и, прямо скажем, там уже так много сложного фронтендного дерьма, что средний студент с ним разобраться просто не сможет.

Я хочу сделать свой борд. Хотелось бы сделать великий борд, но наверно не выйдет. Так что хотя бы просто что-то в своей жизни довести до конца.
No. 18722  
>>18719
> Воу, воу, погоди. Уведомления только на ответы тебе лично. В локалсторадже будут храниться ид твоих постов, периодически делается запрос на сервер на получение ид ответов.
А, соррян, я подумал ты имеешь ввиду вообще в целом.
> Есть нюанс - ОП будет удалять все сообщения, которые ему не нравятся, останется лишь хор подпевал.
Ну да, не исключено. Но есть нюанс еще в том, что если на имиджбордах перестает работать модерация, то они обрастают ракообразных существ. С другой стороны модерация - всегда была/есть/и будет субъективной вещью. Объективности не бывает. Поэтому, раз все хотят свободного общения - так сделайте его в движке.
> Согласись, суть борд (тм) не в этом.
Не соглашусь. Ибо сути у борд нет, вообще никакой. Это всего-лишь разновидность веб-форумов без регистрации и с возможностью анонимного постинга. На этом все. В остальном же, это фантазии и домыслы отдельных анонов. Да и к тому же мы живем сейчас в постдвачевсков веку, где чаносфера уже давно децентрализирована и каждая борда равняется на себя саму.
Энивэй, сделать это можно все ОПЦИОНАЛЬНО.
No. 18723  
>>18722

оп модерация это плохо, потому что на бордах модераторы как правило хоть сколько-то адекватны, а главное редко проявляют личную заинтересованность в предмете обсуждения в плане удаления постов, которые им не нравятся, тогда как заметная доля тредов будет иметь неадекватных опов, которые будут махать модеркой направо и налево если их критикуют и т.п. если на борде много долгоживущих тредов, а это реальность всех медленноборд, то это катастрофа
No. 18724  
Я думаю, что это хорошая идея - модерирование опами своих треда. Причина, люди зачастую создают треды о том, что им интересно, поэтому они будут с большим энтузиазмом тратить на модерирование время, чем обычные модераторы. Но, тут есть один момент, не должно быть монопольных тредов как на доброчане, когда все идут пить чай только к определенным опам, а если эти опы разливают не чай, а что-то другое, то приходится кушать, что дают. Правда, в варианте опа этого треда, я бы заметил, что скорее всего ему придется по-началу игнорировать эту ф-ю, ибо тут важно кол-во людей, а эта ф-я может привести к их сокращению. Впрочем, может и не привести, смотря какие люди будут.
No. 18726  
.png - (401.25KB, 428×600)
18726
>>18723
> потому что на бордах модераторы как правило хоть сколько-то адекватны
Адекватность понятие субъективное. Давай лучше будем говорить о таком понятии как человеческий фактор. А он будет всегда, пока борды модерируются людьми, а какими-нибудь GAN-нейросетями.И да, откуда такая уверенность в адекватности всех модераторов?
> главное редко проявляют личную заинтересованность
Вот это вообще пушка. Модерирование на имиджбордах, скажем так, отличается от таковых на форумах тем, что тут даже сам админ может участвовать наравне в дискуссии и никто об этом не узнает и не заподозрит никогда. Потому что обычные пользователи не видят же IP или какой-то глобальный ID его. Следовательно, ты никак не можешь утверждать, будто модеры это всегда нейтральные игроки на борде и постоянно сидят только в ридонли.
> тогда как заметная доля тредов будет иметь неадекватных опов, которые будут махать модеркой направо и налево если их критикуют и т.п. если на борде много долгоживущих тредов, а это реальность всех медленноборд, то это катастрофа
Что тебе мешает, если ты видишь неадекватного ОПа создать свой тред с ханафудой и 2Д няшками. Тем более, если у тебя будет там более адекватная для всех модерация, то аноны потянутся к тебе в тред, как Моисею. Он будет более активно бампаться, а значит быть на самом верху. А треды с неадекватными ОПами уйдут на дно. Даже если они будут семенить там, это им рано или поздно надоест.
No. 18727  
>>18724
Я думаю, что тут исход будет зависить от публики, которая будет сидеть: все может закончится и тем, что это станет системой анонимных картинкоблогов, а может и закочится тем, что это система будет прямо таки поидеальнее всяких нульчанов и инфинитчанов с их пользовательскими досками. Все треды разобъются по субтематикам доски: такое уже и сейчас существует. Просто как ты сказал, обычные модеры более лениво редактируют. Как правило, на практике они удаляют только, когда кто-то репортнит кого-то.
No. 18728  
>оффициальные™ треды вместо тегов и пользовательских досок
Ты же понимаешь, что для этого нужно отказаться как минимум от тредлимита, а ещё лучше от бамплимита? В идеале сделать многостраничные треды с возможностью редактирования ОП-поста или хотя бы автоархивацию. Также для этого понадобится регистрация, чтоб можно было получать и передавать права модерирования треда.
No. 18729  
>>18728
Все что ты перечислил кроме регистрации уже реализовано в эксабе. Вообще как-раз регистрация среди выше перечисленного и не нужна.
> тэги
Кстати, это хорошая идея на самом деле. Насколько я знаю, в Орфереусе такая идея была реализована. Вместо досок тэги, причем даже пользователь каждый может придумывать такие тэги. И как по мне, она куда более удобнее чем пользовательские доски.
No. 18730  
>>18729
Теги очень спорны. Лучше всего некая смесь тегов и классических досок — лимит на количество символов, никаких пробелов, возможно, только латиница и цифры. Не знаю, остались ли ещё борды на Эксабе, но как пример можно увидеть на Альтерчане (криво реализовано из-за отсутствия возможности перейти на /tag/ или /tag+tag/ как раньше), Форчонге (на доске можно ввести /board/tag и откроется поиск в каталоге по этому тегу) и Аноме (пусть они и называются досками, фактически это те же теги, которые можно перечислить при создании треда, плюс возможность создания треда на универсальной нулевой, чего часто нет на бордах с классическими досками и этой самой нулевой). Короче, не ново и стало популярно среди тех, кто пилит свои движки.
А вот что было бы действительно интересно увидеть, так это древовидную структуру досок, чтоб наследование было и разбиение тематики от общего к частному, от широкого к узкому. Причём опять же можно реализовать в виде сорт оф тегов. Тут, правда, встаёт проблема доверия создания основных категорий пользователям.
No. 18731  
>>18730
> board/tag и откроется поиск в каталоге по этому тегу)
Не понял тебя совсем. Где это на форчонге есть тэги? Там же в поиске каталога ищет именно текст из ОП-поста или тему.
No. 18732  
>>18731
Формально тот же механизм, что у тегов, так как позволяет ввести запрос в адресную строку и получить результаты поиска. Хоть и кривое исполнение. На, кхм, русскоязычном клоне Форчонга наоборот: есть поле для тега и поиск именно по тегу, но нельзя искать запросом в адресной строке.
No. 18733  
standards.png - (23.74KB, 500×283)
18733
>>18726
>Что тебе мешает, если ты видишь неадекватного ОПа создать свой тред с ханафудой и 2Д няшками.
Пикрелейтед.
>>18715
>современное одностраничное приложение
А оно будет превращать мой проц в кашу, когда я начну крутить за пределы десятой страницы?
No. 18734  
>>18733
Ну сейчас не превращает?
No. 18735  
>>18734
А тут сейчас современное одностраничное приложение? Не знал. Пойду Соусу расскажу.
No. 18736  
>>18735
Давай-ка ты откроешь отладчик, посмотришь как все устроено и не будешь выпендриваться? Видал я твоего Соуса.
No. 18737  
>>18736
А давай я не буду пытаться делать работу за тебя, и читать код, в котором ничего не понимаю? По ссылке я не ходил, и увидел её в треде только сейчас.
No. 18738  
>>18737
Давай. А что тогда за комментарии на тему того, чего не понимаешь?

Объясню, все-таки, "современность" подхода: клиентское JS-приложение в браузере + универсальный серверный API. Навигация происходит без обновления страницы, запрашиваются только данные, дальше приложение обновит содержимое страницы, внося минимальные изменения. Следствие - очень быстрая навигация, меньше расход трафика, меньшая нагрузка на сервер.

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

Сорян, чет вызверился
No. 18739  
>>18738
> Следствие - очень быстрая навигация, меньше расход трафика, меньшая нагрузка на сервер.
Заодно эти современные сайты исполняют код, который кроме облегчения ускорения навигации может делать непонятно что, например красть печеньки из соседней вкладки через Spectre.

мимокрокодил
No. 18740  
>>18739
Я не буду красть, я хороший :3
No. 18741  
>>18733
> Пикрелейтед.
Лол, ты сравниваешь комикс-сатиру на современный "рыночек порешал" и борду со свободой даже от вашего рыночка. Не надо так.
No. 18742  
>>18738
>JS-приложение в браузере
Плохо.
>универсальный серверный API
Хорошо. Если оно не будет меняться, можно написать стэндалон клиент. Да, я ненавижу "реалтайм ЖС пинг-понг" между сервером и клиентом настолько сильно.
>Следствие - очень быстрая навигация, меньше расход трафика, меньшая нагрузка на сервер.
>Загружаются 16 тредов по 16 последних постов + ОП
Сэр, плиз. Экономить траф и ресурсы сервера на статичных страницах я тож могу, следи за руками.
>10 тредов на страницу доски
>3 последних поста из треда показаны на странице доски
>бамплимит в 100 постов (вообще длинные треды зло, и читать их полностью становится обузой)
>можно добавить жс-кнопку на подгрузку последних пяти/пятидесяти постов динамически, если уж совсем неймется
Все это можно реализовать на автобусе прямо сейчас, и по-моему, только лучше станет. Старые треды можно отправлять в архив, при этом осуществлять ротацию быстрее. Автобус достаточно медленный, чтобы не было по десятку тредов за день, так что тут я тоже не вижу проблем.
>спойлер
Они, как и я, видимо, тоже ненавидят сайты, где ОБЯЗАТЕЛЬНО включать JS, чтобы хотя бы посмотреть на сайт. В целом, от таких сайтов мы ожидаем
а) Неконтролируемого воровства печенек коннектинга к местам в интернети, о существовании которых мы и не подозревали (параноик вариант)
б) Жуткого тяжелого (опционально: обфусцированного) JS от моднявых фреймворков и в целом сырой технологии динамического рендеринга страниц, которые жрут бесстыдные количества процессорного времени. Даже не на кофеварках этот лаг ощутим, но это, как можно догадаться, уже субъективные предпочтения (кодопурист вариант)
в) комбинации а,б)) и, возможно, с чем-то еще

Обобщая мысли: конечно, что-то новое искать надо, но наиболее интересен новый юзер экспириенс (теговая организация, например). Вообще, по-моему, "веб-бизнес", если он не связан с реальным сектором, нацелен на новый опыт прежде всего. И даже если связан, юзеру там должно быть хорошо и понятно. А используемые для этого технологии - вообще детали. А уж если они обладают недостатками, с которыми я не хочу мириться, я просто игнорирую технологию.
No. 18743  
>Все это можно реализовать на автобусе прямо сейчас
Ну, кроме кнопки подгрузки, естественно. Еще забыл указать более безжалостный post trimming, то есть обрезание длинных постов еще короче (на странице доски), если это необходимо, конечно.
No. 18744  
buhanka sempai.jpg - (35.99KB, 400×400)
18744
>>18742
Ты уж извини, но я не понимаю этой JS-паранойи. Братюнь, очнись, матрица уже тебя поимела, когда ты включил компьютер.
>а) Неконтролируемого воровства печенек коннектинга к местам в интернети, о существовании которых мы и не подозревали (параноик вариант)
man CORS

>Сэр, плиз. Экономить траф и ресурсы сервера на статичных страницах я тож могу, следи за руками.
Количество одновременно загружаемого контента надо тюнить. В текущей конфигурации с рендерингом успешно справляются бюджетный планшет и смартфон 4-х летней давности, нужно увеличивать лимиты и тестировать дальше.

>б) Жуткого тяжелого (опционально: обфусцированного) JS от моднявых фреймворков и в целом сырой технологии динамического рендеринга страниц, которые жрут бесстыдные количества процессорного времени.

Фреймворки ушли вперед далеко. Используемый мной React при обновлении данных минимально модифицирует DOM, а это самая затратная операция на клиенте. Технология не сырая, Пейсбуку уже несколько лет как норм.

И в чем "тяжесть", брат? Бандл приложения загружается и кешируется надолго. Если народ попросит - можно отдавать не обфусцированный код. Имеется ввиду тяжесть выполнения? Первоначальная загрузка библиотечного кода и кода приложения выполняется лишь при открытии страницы, для навигации и просмотра не нужно рефрешить и перезапускать всю аппликуху. Есть сценарий "открыто много вкладок", но имея быструю навигацию, закладки в боковой панели и уведомления пользователю их открывать ящитаю не захочется.

Пикрандом
No. 18745  
>>18744
>Братюнь, очнись, матрица уже тебя поимела, когда ты включил компьютер.
Из того, что я, возможно, использую фундаментально небезопасную систему, не следует, что я не должен выкладывать уровни защиты от самых разных типов атак.
>man CORS
Ну, я блочу 3rd party домены с помощью расширения, но следствия от подгрузки скриптов на выполнение более фатальны, нежели. Хотя, чисто в теории можно овнить и через картинки, была бы дыра в либе.
>Количество одновременно загружаемого контента надо тюнить.
Не понял. У нас есть GET от клиента, и если он не задница и не дампит весь твой борд скриптами, тебе надо обслужить только один GET, который можно вообще выдать из кеша клиента, например, если страница не поменялась.
Так-то в потенциале у реалтайма, может, и побольше возможностей к экономии, но тут это уже зависит от того, насколько часто тебя рефрешат.
>Фреймворки ушли вперед далеко. Используемый мной React при обновлении данных минимально модифицирует DOM, а это самая затратная операция на клиенте. Технология не сырая, Пейсбуку уже несколько лет как норм.
Ну, хуже всего с автообновлением. Оно у тебя вообще есть или нет еще? Когда на такой доске будет появляться с пост за десять секунд, я точно захочу куда-то исчезнуть, лол.
Если все будет по сути на кнопках, то есть без действия пользователя тяжелый код просто не исполняется, то все ок с точки зрения юзабилити.
Но теперь это принцип. Если я захожу на сайт и вижу пустую страницу, я просто пройду мимо. I got stuff to do. Кстати, about stuff to do, тебе следует прямо сейчас разрабытывать свой сайт, а не флудить тут со мной. Спасибо за разговор, в итоге я даже открыл твою борду, она все-таки шустрая.
>имея быструю навигацию, закладки в боковой панели и уведомления пользователю их открывать
Возможно, повторяю тред, но считаю уведомления антифичей. Я бы предпочел, чтобы ничто нигде не уведомляло меня ни о чем за исключением случаев, когда я сам попросил об этом. И обычно я не прошу об этом. И конечно, уведомления не должны настраивать себя сами. У меня и так столько гештальтов открыто, что я больше похож на призрак, чем на человека.
No. 18748  
>>18741
>Не надо так.
Мне сходить на форчонг, где треды перекатываются из одного в пять разных?

>>18738
Зашёл я на борду.
>Навигация происходит без обновления страницы, запрашиваются только данные, дальше приложение обновит содержимое страницы, внося минимальные изменения. Следствие - очень быстрая навигация, меньше расход трафика, меньшая нагрузка на сервер.
Следствие - когда я хочу в списке тредов достать тысячный, мне нужно ручками прокрутить 999, и они все будут забивать мне браузер. Это сейчас проблемы нет, потому что даже тредов на 1к+ постов нет. Но если они __принципиально__ не планируются - вопросы отпадают.
No. 18749  
>>18748
>Следствие - когда я хочу в списке тредов достать тысячный, мне нужно ручками прокрутить 999, и они все будут забивать мне браузер
О, кстати да, это еще вопрос. Плюс, как я понял, все это время он будет подгружать треды 16 по 16 постов, то есть трафик будет гоняться мама не горюй в этом варианте?
Олсо, экономия трафика в таком варианте в целом не ясна. Как я предложил для статики, пусть у нас 10 тредов по три поста из каждого, то есть вместе с ОП четыре, забивают одну страницу, то есть у нас в целом 40 постов статики (не знаю, какой пост будет жирнее, из статичного варианта или из приложения - это уже от формы статики/динамики зависеть будет) на один запрос. И если мы хотим еще, мы делаем еще один запрос. Мы можем прыгнуть на какую угодно страницу из разбивки, мы не обязаны просматривать ВСЕ страницы по порядку.
Полагаю, это предлагается решить путем построения кастомных "user bubble"'ов, где мы скроллим только через то, что сами выбрали как-то (ответили или "подписались на тред" или еще что). Но это не решает проблему фундаментально. В целом, ты все еще можешь основательно угадить себе эти самые "replied" или "followed", лол.
No. 18754  
f1-ng1JO6LI.jpg - (97.84KB, 1024×578)
18754
>>18748
999 Тредов? 100 страниц по 10 тредов? Такого даже на 4чане нет. Там 10 по 10 сейчас, если не ошибаюсь. Столько ты отскролить сможешь один раз, дальше добавишь тред в избранное. Пока не вижу проблемы, на крайняк возможно сделать поиск по оп посту.

>>18749
16х16 трафик небольшой на самом деле, но в ближайших планах грузить гораздо больше тредов только с оп постом, отзывчивость, похоже, позволяет не кешировать последние 16 постов. Это было сделано, чтобы загруженные в боковике трелы открывались мгновннно.

Дальше, я не понимаю юзкейса скакать по страницам доски в произвольном порядке. Зачем? Список тредов постоянно меняется по порядку. Интересные ты добавляешь в избранное и отслеживаешь там.

Добавлю по экономии. Во-первых, экономия не столько ради самих килобайт, сколько ради скорости работы. Я хочу, чтобы все открывалось мгновенно. Во-вторых, с постепенной подгрузкой удобнее читать длинный тред, и картинки не все сразу грузятся. И в-третих, JSON всегда будет по размеру меньше и формироваться будет быстрее, чем HTML.

Парни, статики не будет, это принципиальный момент. И по моему убеждению, одностраничник даст крутой экспириенс в плане скорости работы и динамике общения, и это только начало.
No. 18755  
>>18754
>Такого даже на 4чане нет.
4чан плохой контрпример, потому что он следует весьма краткому количеству страниц на доске как принципу.
Я в принципе тоже скорее солидарен в том, что такое количество страниц хранить не стоит с точки зрения экспириенса. Никому не нужно на борде копаться в куче старья. Но если на твоей доске будет большой лимит для тредов, такая ситуация может запросто случиться.
>16х16 трафик небольшой на самом деле, но в ближайших планах грузить гораздо больше тредов только с оп постом, отзывчивость, похоже, позволяет не кешировать последние 16 постов. Это было сделано, чтобы загруженные в боковике трелы открывались мгновннно.
Ага, ясно, то есть мы выбираем треды для подгрузки.
>Дальше, я не понимаю юзкейса скакать по страницам доски в произвольном порядке. Зачем?
На твоей доске точно незачем, мистер, у тебя же только одна страница!
На статической доске - если хочется сразу посмотреть наиболее старые треды, например. Но тут ты прав, большинство экшна обычно на нулевой.
>Список тредов постоянно меняется по порядку.
Господи, это звучит так, будто, открываю я, значит, твою досочку, там постят И ТРЕДЫ ПРЯМО ПЕРЕДО МНОЙ ДИНАМИЧЕСКИ ПЛАВАЮТ, МЕНЯЯ ПОРЯДОК, И Я ВЫНУЖДЕН ЗА НИМИ ОХОТИТЬСЯ. Скажи мне, что это не так.
>Интересные ты добавляешь в избранное и отслеживаешь там.
В целом, я тоже "не понимаю этого юзкейса". Отслеживать что-то на борде, ну елы-палы. Обычно на досках даже поиск по постам не впиливают.
>Я хочу, чтобы все открывалось мгновенно.
Ну, когда тебе надо что-то подгрузить, типа постов или тредов, лаг на долю секунды присутствует. Этот лаг сопоставим с лагом на статике в целом, хотя твоя борда делает его несколько более приятным.
>И по моему убеждению, одностраничник даст крутой экспириенс в плане скорости работы и динамике общения
Ну, это действительно будет другой экспириенс, но насколько он хорош, мы пока не выяснили. Вон, у кого-то уже есть проблемы с этим. У меня на самом деле меньше проблем, чем я, возможно, обсуждаю, но такой уж я придира.
No. 18758  
>>18754
>Такого даже на 4чане нет
Такое есть на любой доске с автоархивом. И на досках, где принципиально дампают всё подряд. Впрочем, можно сразу прописать, что движок не предназначен для такого в доках. Тогда у меня нет вопросов.
>Дальше, я не понимаю юзкейса скакать по страницам доски в произвольном порядке. Зачем?
Если я хочу найти тред про X, но не знаю ничего, кроме того, что там в итоге обсуждали X, и может дату примерную последнего бампа, угадай, что я буду делать?
>Во-вторых, с постепенной подгрузкой удобнее читать длинный тред
Только первые N-50 постов мало кого волнуют.
>И по моему убеждению, одностраничник даст крутой экспириенс в плане скорости работы и динамике общения, и это только начало.
И я каждый раз проклинаю умников из гугла, когда пытаюсь найти записи из истории ютуба, которым больше полутора лет. Проклинал бы и Санкаку, но там можно включить пагинацию.
No. 18759  
>>18748
> Мне сходить на форчонг, где треды перекатываются из одного в пять разных?
Не знаю я такого там не замечал. По крайней мере в /u/ так точно. В других разделах я думаю, если такое и существует, то это только пока модеры не потрут такую безобразицу.
No. 18760  
>>18759
>/u/
Попробуй /vg/.
>пока модеры не потрут такую безобразицу
В случае с ОП-модераторами это нонсенс.
No. 18763  
01e000.jpg - (42.68KB, 400×751)
18763
>>18755
>На твоей доске точно незачем, мистер, у тебя же только одна страница!
Азаза. Имелись ввиду страницы списка тредов.

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

>Господи, это звучит так, будто, открываю я, значит, твою досочку, там постят И ТРЕДЫ ПРЯМО ПЕРЕДО МНОЙ ДИНАМИЧЕСКИ ПЛАВАЮТ, МЕНЯЯ ПОРЯДОК, И Я ВЫНУЖДЕН ЗА НИМИ ОХОТИТЬСЯ. Скажи мне, что это не так.
Ну вообще-то ДА. Но это все будет включаться и отключаться галкой внизу страницы, плюс обновление не в реальном времени, а, допустим, каждые 2 минуты.

>Ну, когда тебе надо что-то подгрузить, типа постов или тредов, лаг на долю секунды присутствует.
В пределах секунды лаг можно скрыть анимацией плавного обновления.

>>18758
>Такое есть на любой доске с автоархивом.
Архив действительно нужен. Но потом.

>Если я хочу найти тред про X, но не знаю ничего, кроме того, что там в итоге обсуждали X, и может дату примерную последнего бампа, угадай, что я буду делать?
Угадываю. Без поиска ты в любом случае будешь страдать. Чтобы не страдать, добавляешь интересные треды в избранное ИЛИ скрываешь весь треш на доске, тогда скроллить будет проще. Это если тред еще в архив не попал.

>Только первые N-50 постов мало кого волнуют.
Согласен, именно поэтому я разделил просмотра последних N постов + более новые или же с самого начала. Опять же, чтобы лишнее не грузить и быстро оценить, интересен ли тебе тред, появилось ли что-то новое в нем.

>И я каждый раз проклинаю умников из гугла, когда пытаюсь найти записи из истории ютуба
Опять же, нужен архив, это ценный момент, что я из этой дискуссии вынес. Надо разделять интерфейс для быстрого общения, грубо говоря чат, и архив ценных тредов.
No. 18765  
>>18730
> древовидную структуру досок, чтоб наследование было и разбиение тематики от общего к частному, от широкого к узкому
Такое ощущение, что чтобы это имело практический смысл, имиджборда должна быть невероятно огромной (гораздо крупнее, чем существующие крупнейшие имиджборды).
No. 18766  
>>18709
> http://hexchan.org/b/
Не работает без джаваскрипта ⇒ борда — говно.
No. 18791  
Бамп.
Обновил онлайн-версию. Теперь работает постинг!
В процессе реализация самопальной капчи, масштабный рефакторинг фронтенда и бэкенда, увеличины лимиты на число получаемых за один запрос объектов.

http://hexchan.org/b/
No. 18848  
1. 2018 год, а ссылка без https
2. ссылка не открывается
No. 18849  
>>18848
1) Лень настраивать, до релиза не нужно.
2) Деньги кончились на хостинге.
No. 18851  
>>18849
Все, переподнял сервак.
No. 18895  
admin.png - (569.06KB, 1332×968)
18895
Видел на сайте реквест скринов админки. Выложу их сюда.

Админка пока в зайчаточном состоянии, одна полурабочая страница и несколько скетчей. Вообще, админка для меня менее интересная часть проекта, скорее даже муторная.
No. 18896  
posts.png - (82.40KB, 1280×800)
18896
Скетч панели картинок с прошлого скрина.
No. 18897  
reports.png - (96.17KB, 1280×800)
18897
Панель рассмотрения жалоб.
No. 18898  
images.png - (122.88KB, 1280×800)
18898
>>18896
Тьфу, не та картинка.
No. 18899  
>>18895
Ты сделал только что более-менее нормальный поиск, который можно даже юзеру.
No. 18975  
013000.jpg - (200.57KB, 800×800)
18975
Бамп. Новинки:

Самописная капча, подключена и работает. Картинок сгенерил немного, но для теста сойдет. Что думаете насчет стойкости к автораспознаванию и удобства для юзера?

Возможность ответа на пост, по клику на его id откроется форма и вставится этот id. После отправки и сохранения он станет зеленой ссылкой на пост, по ней можно кликнуть и проскроллиться к указанному посту.
Цитирование с одной угловой скобкой также работает. По разметке пока все.

По-моему получилось удобно, что форма ответа всегда наверху - не нужно скроллить, когда отвечаешь сразу на насколько постов.

http://hexchan.org/b/
No. 18997  
Прикольно получилось. Мне нравится. Но не логичнее местами поменять ответы со списком тредов? Чтобы по стилю ВК/ ФБ/ Телегу напоминало. Список слева, как только что-то открываешь - оно в середине. Сейчас очень странно всё ощущается.
А так - быстро, приятно, потенциал хороший, кмк.
No. 19000  
01c000_0.jpg - (228.29KB, 600×846)
19000
>>18997
Спасибо. С лейаутом можно поэкспериментировать.
Мотивация была такая, что поскольку читаешь слева направо, боковик слева будет мешаться. Хотя, с другой стороны, слева он более привычен, как в почтовиках или социалках, да.
No. 19005  
>>19000
Это "выберите тред для просмотра" вводит в ступор. Лучше чтобы по-умолчанию панель справа была бы развернута на полный экран, а при выборе треда отъезжала в сторону.
No. 19007  
01a068_0.jpg - (36.63KB, 337×403)
19007
>>19005
А как насчет, ну не знаю, выбрать тред для просмотра? :3

Ладно, на самом деле там будет более осмысленная информация, как тут подсказали. Описание доски, правила, прикрепленные треды.

Не все сразу, парни. У меня есть доска с задачами в трелло, их там уже на полсотни, и это еще нет задач по админке. Текущими темпами, боюсь, понадобится еще полгода-год.
No. 19630  
> Прошло 3 месяца
> Дизайн выкинут
> 2/3 кода выкинуто
> Смена парадигмы на обычное Django+Python
> И это после полутреда моих гневных кукареков о расовом превосходстве Single page apps

Ох лол, посаны. Я снова с вами :3

(ПОТРЕБИТЕЛЬ БЫЛ ЗАПРЕЩЁН ДЛЯ ЭТОГО СТОЛБА)
No. 19631  
7phwvajAS_s.jpg - (50.12KB, 604×465)
19631
Блин, хотел забавненько объявить о своем камбеке, а схлополтал бан. Неловко вышло.
No. 19632  
>>19631
Скорее всего, последняя строка гринтекста была лишней.
No. 19635  
>>19630
ОП, ты хоть объясни нормально, что вообще случилось. Почему вдруг больше не хочешь делать SPA?
No. 19664  
>>19635

Дык он же вроде как забанен. Как он тогда объяснит?
No. 19669  
20161222220906_1.jpg - (460.24KB, 1920×1080)
19669
>>19664
Ну, это всего на один день было, по статье "троллинг". Троллил, по факту, сам себя, ну да и ладно.
>>19635
Отчасти я просто психанул, из-за огромной кучи мелких проблем ИРЛ и довольно жесткого выгорания на работе, на которой я тоже всем этим дерьмом занимаюсь. Еще в текущей SPA-ветке есть куча недостатков, не все пока придумал, как решить:

1) Во-первых и главных - начало бесить, что для простого, в общем-то, проекта нужно столько кода. Уйма логики дублируется между клиентом и сервером, нужны сложные JS-подпрыгивания, организовывать хранилища данных и там, и там (Redux на клиенте, БД на сервере), синхронизировать их. А в статике - выборку из БД сделал, шаблон с ней отрендерил и збс.

2) Я допустил большой архитектурный проеб в бэкенде. Есть в БД четыре базовые сущности: Доска, Тред, Пост, Картинка, в соответствующей иерархии. Сделал для каждой из них "красивый" REST API. Так вот, пример проблемы. Когда первый раз открываешь сайт, начинают грузиться: отдельно борды, отдельно открытый тред со своими постами, отдельно список тредов для боковой панели. Потом начинаешь ходить по тредам, грузится только открытый тред, боковик не обновляется. Экономия трафика все быстро, простые запросы к бд, все разбито по сущностям, красота.

Только, блядь, состояние может между запросами рассинхронизироваться! Ты открываещь тред, в нем последний пост появился только что, в боковике у него дата обновления - позавчера. Если активная переписка идет в треде, он за пять минут может еще 10 постов набрать, а ты еще в боковике видишь что там целых ноль ответов, и по списку он во второй десятке. Или ты подгружаешь "еще тредов", и хотя я сделал так, что порядок при подгрузках будет сохраняться, но число постов и дата обновления снова вызовет недоумение.

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

Выход я вижу только делать так, как для полностью статичного варианта - за один запрос API выдавать всю пачку данных для отрисовки страницы. Опять же, а с подгрузками что делать?..

3) Боковая панель. Как бы я не отбрехивался ранее, она красива (наверно), но не удобна. При автообновлении списка тредов их порядок будет меняться, мельтешить будут перед глазами, тред дальше второй страницы тяжело будет найти. Тут решения взаимоисключающие. Отсортировать треды по дате создания - не будут мельтешить, да, но зато активную дискуссию в поднятом с третьей страницы треде ты просто пропустишь.
No. 19670  
admin.png - (120.67KB, 1920×885)
19670
Так я и пришел к текущему положению дел. Пока пилил статичную версию - наслаждался тем, как все быстро и просто получается. Никакой возни с состоянием приложения, понятно как сделать кеширование, не нужна "сборка" фронтенда.

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

В ближайших планах - убрать шероховатости интерфейса (сейчас даже в тред не сразу попасть можно, если постов мало), восстановить паритет по фичам со старой версией (скрытие тредов и постов, по-просто).

Дальше, я думаю отказаться от личного репозитория и выложить в анонимном на гитхабе. Буду пилить заурядный, но зато универсальный бордодвижок, может кому-то еще пригодится.

Потом будут нужны механизмы репортов и банов, переноса тредов между досками. Кеширование. Масштабирование для маленьких экранов. Подсветка постов юзера и ответов на них в треде. Автообновление треда. Вроде как и все.

Было на самом деле тяжело признать, что задумка, на которую угробил больше полугода не взлетает.
No. 19671  
Такой вопрос, а почему ты не использовал сокеты на SPA?
No. 19672  
>>19671
Я бы наверно мог, но зачем? Real-time обновления здесь не сильно нужны, плюс нужен сервер помощнее, плюс бэкенд на Django с веб-сокетами не дружит.
No. 19673  
Как и на новом нульче, кукла работать не будет?
No. 19674  
>>19672
Я всегда думал, что со SPA неразрывно связаны веб-сокеты, особенно в тех местах где используются чаты и нужно вовремя реагировать появление новой информации.
В твоём случае это была, как минимум, боковая панель.
No. 19675  
>>19673
Нет и не нужно.
>>19674
Нет, достаточно старого доброго AJAX. Алсо, имиджборд концептуально не чат, другой формат общения. Текст длиннее, немедленного ответа никто не ждет.
No. 19676  
>>19675
Движок не нужен? Тогда зачем ты его пилишь и ведешь по нему тред?
No. 19678  
3S3aYN.png - (1.14MB, 1280×720)
19678
>>19669
> для простого, в общем-то, проекта нужно столько кода. Уйма логики дублируется между клиентом и сервером.
Не понимаю что тут такого сложного ты нашел. Ну, с редуксом и реактом я не работал, может, там и вправду сложно. А на сервере у тебя было что-то кроме самой БД и API-ки?

> Ты открываещь тред, в нем последний пост появился только что, в боковике у него дата обновления - позавчера.
> и хотя я сделал так, что порядок при подгрузках будет сохраняться, но число постов и дата обновления снова вызовет недоумение.
А в чем проблема регулярно обновлять его?
No. 21082  
58752735_p2_master1200.jpg - (919.57KB, 1200×802)
21082
Я снова в деле, братцы.

http://hexchan.org/b/
No. 21090  
screenshot.png - (129.49KB, 1062×873)
21090
>>21082

В консоли у браузера ошибка вылазит (скриншот прилагаю).

Рекомендую в скрипте http://hexchan.org/static/imageboard/localCollection.js в функции readCollection() результат работы метода JSON.parse прогонять через метод https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray для проверки.

В качестве примера предлагаю первые две строки функции togglethread в скрипте https://410chan.org/lib/javascript/kusaba.js на 410чане.
No. 21092  
TOR croud.png - (36.07KB, 343×191)
21092
>>21082

И далѣе: пора бъ навѣсить https://letsencrypt.org/ для того, чтобъ провайдеръ не вмѣшивался въ траффикъ.
No. 21099  
>>21090
Спасибо, посмотрю сегодня.
>>21092
HTTPS будет, но наверно не от let's encrypt. Я им не доверяю.
No. 21108  
>>21090
Ты бы лучше человеку объяснил, как превьюхи в PNG делать, умник.
No. 21114  
Ol5f6AInTm0.jpg - (129.85KB, 720×1014)
21114
>>21108
А что с ними не так?
No. 21116  
>>21114
http://hexchan.org/media/thumbs/0x00000015.png — они какие-то перешарпленные будто.
No. 21117  
>>21116
Тоже обратил внимание на этот файл, но он один такой получился. Остальные арты нормально масштабированы.
No. 21122  
>>21117
Остальные — это какие? Там подавляющее большинство картинок в JPG, с ним проблем никогда не было. А с PNG:
— скриншот http://hexchan.org/media/thumbs/0x00000021.png перешарплен;
— кадр из Dog Days http://hexchan.org/media/thumbs/0x00000025.png перешарплен;
— картинка из >>21116 тоже.
Ну и не ты первый, и не ты последний, кто на эти грабли наступал. Если идти путём наименьшего сопротивления, то я бы превьюшки делал в одном формате, например в WebP для людей и JPG для всех остальных — сами по себе они всё-равно никому не интересны.
No. 21125  
little penguin.jpg - (26.55KB, 333×500)
21125
>>21122
А, то есть превью из JPG в PNG нормальные получаются, а из PNG в PNG дефектные? Теперь понял. Надо чет делать тогда.
No. 21128  
Alice1.jpg - (1.02MB, 1920×1440)
21128
>>21090
Подстелил соломку на случай кривых значений в LocalStorage. Должно хватить, во всяком случае больше не дампует в консоли.

>>21122
Разобрался с картинками, теперь превью для них красивые генерятся. Проблема была в том, что в них использовались индексированные цвета из палитры, я добавил конвертацию в полноценный RGBA. Я и не догадывался, что это все нужно учитывать пока вы не сказали.
http://hexchan.org/b/0x000005/#0x000028
No. 21133  
0x0000001b.jpg - (62.63KB, 640×480)
21133
Выкладываю код на Гитхаб: https://github.com/hexchan/hexchan-engine
No. 21167  
generated_captchas.png - (78.06KB, 1920×1080)
21167
Коллеги, работаю над новой капчей, оцените образец, пожалуйста.

Портировал из Вакабы на Python генератор слов, очень он мне нравится.

Изображение строится просто - слово отрисовывается побуквенно, буквы размещены с небольшим пересечением и смещением по вертикали, получается почти непрерывная строка, дальше рисуется ее контур. Когда-то читал, что контур буквы тяжелее распознать программно, чем саму букву. Это правда?
No. 21169  
ni.png - (118.12KB, 1920×1080)
21169
>>21167
Не знаю. Немножко банальных преобразований (чистка от мелкого мусора в пеинт/ирфан не входит, извините, только заливка и инверсия), и ни о какой разнице между слитыми буквами и контуром слитых букв нету. Даже от мусора чистить проще, самое большое пятно - капча.
No. 21170  
>>21167
Я бы добавил ещё случайные поворот символов на небольшой угол и искажение символов по размеру (сжатие, растяжение). У тебя пока одинаковые символы во всём наборе. Ну и банальщина: смысл подобных мероприятий в том, чтобы усложнить распознавание примитивными техническими средствами сохранив при этом удобство работы нормальных пользователей. Ну а если уж ты насолил человеку, занимающемуся компьютерным распознаванием образов профессионально, то созданием капчи тут, очевидно, не отделаться, так что этот edge case можно не рассматривать — см. дихотомию «Моссад — не Моссад».

Ну и я бы больше внимания обращал на фронт, ибо сферический в вакууме бэк никому не интересен, тем более, что его клиенту не видно.
No. 21171  
>>21167
Если хочешь безопасности, то делай не просто контуры символов, а разноцветные контуры с переливающимся цветом, мусорными линиями схожих цветов и переливающимся фоном с цветами схожей яркости, чтобы при переводе в чб фон сливался с контурами символов.
Но это скучная капча. На твоём месте я бы попробовал изобрести свою мемную рекапчу на хешах.
Кроме того, чтобы вайпалки не вайпали просто так, хорошо пошаманить над правами доступа и прочей верификацией открытия страницы в браузере. Например, жс, дающий дополнительный хеш с солью на сервере. Для безжсных можно сделать хитрее: открывать капчу в айфрейме, а капчу генерировать матрицей символов 10×10 с цсс-правилом выравнивания первого символа в начале вьюбокса. То есть обычный пользователь видит условные шесть символов, а вайперу нужно будет найти эти шесть символов из сотни.
No. 21174  
>>21171
Последние ухищрения легко решаются простым скриншотом страницы браузера, со всякими электронами реализация ломалки капчи будет проще, чем реализовать саму капчу. Это касается как хитрого жс, так и айфреймов. В 2011 году ЕФГ реализовал похожую защиту капчи с хешем, у многих из-за этого отваливался постинг, но зато кто-то написал вайпалку на adobe air, где был встроенный вебкит.
В современных реалиях капча - дань традиции и защита от script kiddie, не стоит тратить много времени на ее взломоустойчивость.
No. 21176  
>>21174
>В современных реалиях капча
А она когда-то для чего-то другого была нужна?
No. 21177  
>>21174
Всё так. И если хочешь защитить что-то капчей — воспользуйся той же рекапчей, но по назначению, а не как обычно: одна капча на сессию, а не на каждый пост.
No. 21241  
Рекапча это банально и скучно. Если уж делать свой движок для борды, то есть нечто заранее ненужное, то есть делать просто ради самого процесса деланья, то вполне уместно самому с нуля сделать какие-то фановые фичи. Например, свою капчу.
Но я согласен, можно было более креативно подойти. Распознавать выражения лиц, анимешных персонажей, решать задачки по матану или го.
No. 21252  
>>21177
Рекапча вполне себе разгадывается. Толку от нее нет, вред один.
No. 21253  
>>21252
Рекапча если и разгадывается, то только индусами или топовыми нейронками, оба за бесплатно работать не будут. И это главный фактор, отсеивающий 99% вайперов. Алсо рекапчу нужно правильно использовать, уже вроде писал, что если рекапча будет одна на сессию, то обычным пользователям нечего бояться, особенно если с лимитами на постинг по времени поиграться.
No. 21266  
>>21253
http://iichan.hk/d/res/247134.html#247394
No. 21289  
current.png - (235.67KB, 1126×926)
21289
Бампаю свежим скрином и ссылками:
https://hexchan.org/b/
https://github.com/hexchan/hexchan-engine
Удалить сообщение []
Пароль  
[Mod]