Ычан: [d | au / b / bro / hr / l / m / mu / o / s / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 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 кБ.
  • Ныне 3638 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
hc.png - (521.18KB, 1920×1052)
18554
No. 18554  
Пишу принципиально новый движок для борды. Спрашивайте ваши вопросы.

Тред в /b/ удалили :(
75 сообщений пропущено. Показаны 50 последних сообщений
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]