sfw
nsfw
KoMaTo3
KoMaTo3
Рейтинг:
140.820 за неделю
Постов: 10
Комментов: 1940
C нами с: 2011-09-09

Посты пользователя KoMaTo3

Всех с воскресеньем.
Он воскрес, воистину воскрес https://joy.komato3.net/
*Благодарствую нашему сотоварищу, что предложил оплатить сервер, но таки хз сколько всё это продлится, я решил не мучить никого*
Оформил таки сервер, второй день не сплю (ну 3 часа не сон, у меня ещё и переезд, ремонт, ахтунг полный) переношу (спойлер: перенёс) все дела.
По секретной информации у этого хостера не стоит *зацензурено*-оборудования и он не блокирует запросы на закрытые ресурсы, что не может не радовать.
Из плохих новостей... Взял сервер 3.6Ггц 6 ядер, но что-то производительности не ощущается. Пока собирал бинарники по старому, видимо, нужно подкрутить, но сейчас голова уже не варит. Замеры показали, что поиск вместо 0.03с теперь выдаёт 0.5с, некисло так, в 10 раз замедлилось. В целом, не критично, думаю. Зато запас по памяти теперь огромный. Если раньше в 4Гб укладывался точь-в-точь, то теперь 8Гб - разгуляться. По трафику - анлим, но ограничение по скорости 100Мбит. Ну тут не критично точно, километровые гифки грузятся по ощущению почти мгновенно.
Последняя неделя постов пока выпала из индекса, чуть позже переиндексирую.
Второй мой сервер, что отвечает за поддомены, отвалится в 20х числах мая. Если кто имеет знания по NS-серверам, напишите, пожалуйста, в личку, у меня нехватает понимания, могу ли я организовать свой NS-сервер для СУБ-доменов (чтобы в настройках домена указать этот NS-сервер для резольва), или же этим может рулить только хостер и те, кто выше. Для своего VPN я могу это настроить, но возможно ли это заставить работать глобально?

По поводу всяких API-запросов. Кто-что мутит/хочет замутить, пишите в личку, обсудим ТЗ, запилю не вопрос, в посте комментариями не очень удобно обсуждать ибо затеряется и забудется.

На этом всё. Спасибо вам за поддержку, баянометр в строю, постим, смотрим, *не*баяним, проверяем. Всем хорошего настроя и, наконец-то, наступившей весны!
Доброго (не очень) воскресенья, господа. Мой баянометр на данный момент недоступен, ибо хостил я его на голландском сервере именуемом scaleway. Всем он был удобный, но косяк с оплатой он не потерпел в связи с текущей обстановкой и... ну чо и, рубанул рубильник. В ближайшее время попробую переползти на что-то другое, где рублесы принимают. У меня вопрос к вам, господам. Я вижу, что поисковиком моим пользуются, но не факт что руками, а как-то скриптово по большей части. *Новая строка*

Новый сервер таки оформлю, это факт, не знаю ещё, как оно в наших реалиях будет работать. Вопрос-не-вопрос, надо оно (*в скобочках* - мой сервис поиска) или нет, может и не нужно оно никому? Этот весь поиск картинок чисто мой пет-проект, было интересно в этом разобраться и уложиться в минимум требований: 4гб оперативы (с учётом что под 50% жрёт система), и ограничение по количеству ядер, чем больше, тем лучше, тем, блин, дороже.

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

Спасибо всем, кто реально пользовался, надеюсь, всё наладится.

Graphql

Переделываю парсер под Graphql, возникла нехватка такого функционала, как получить информацию сразу по нескольким постам.
node(id: base64_encode('Post:ИдПоста')...) возвращает один пост. Может, не до конца вкуриваю в graphql, но как понимаю, этим функционалом не запросить посты по нескольким id.
Это создаёт проблему проверки уже размещённых постов на факт изменений. Проблему во времени. Даже вкупе с http://joyreactor.cc/api/changedPosts возникает необходимость парсить (ну как минимум делать запрос на данные поста) аж 300 постов, размещённых за последние сутки. Причём, вроде как, посты могут редактироваться и более, чем через сутки после размещения. Прибавляя время на хеширование картинок и пересоздание индекса получается обновление вместо старых добрых 5 минут - минут 20-30. При этом, не факт, что меняется картинка у поста. В итоге производится куча бесполезных graphql-запросов.
Возможен ли допил api для получения нескольких постов по id? Или же дальше биться с авторизацией?
Всех с воскресеньем!

И с наступающим, заодно. Довольно долго не постил обновлений, ибо их совсем не много, и они чисто бэкендовые.
Прошу прощения за полный аут сервиса 18 декабря и спасибо товарищам, отписавшимся в личку, я, мягко говоря, был занят и профакапил всё это дело. Не очень понял причины сего, но сервер лежал полностью от слова совсем, грешу на хостера, пришлось ребутать через веб-интерфейс, ибо даже ssh не отвечал. Дабы этого говна более не случалось (точнее, быстрее предотвращалось) заделал мониторинг на другом сервере от другого хостера, каждые 10 минут проверяет состояние и оповещает меня как только, так сразу. Правда, ребут занимает ни много, ни мало, а ~час из-за создания снимков.
И, да, какое-то время результат работы сервиса был просто печален по качеству, было несколько затупов в процессе доработки, уж простите, я позиционирую мой сервис как "экспериментальный", вылезли перекосы.
А теперь о хорошем. Переработал алгоритм сравнения, для чего пришлось перехешировать весь реактор заново, что заняло, ну, с месяц точно.
Перелопатил логику сравнения как картинок, так и гифок:
- по картинкам. На тех картинках, что выдавались тонны адового мусора из гифок и прочих сисек, теперь поиск работает почти хорошо. Оказывается, мной используемый хеш просто катастрофически херово работает с картинками, у которых равномерные края и только в центре вся суть (пожалуй, это половина всех Ваших bullshit-реквестов), типа такого:
,dev,реактор,Баян,баян, боян, баяны, бояны, баянище, боянище,баянометр,баянометрозаменитель,NSFW
 Почти заборол это, но странности могут вылезти.
- по гифкам. Долго ломал голову и в итоге выкинул все прошлые наработки, сейчас работает алгоритм, как и у картинок + немного по другому выбирается список сравниваемых кадров дабы не улетать в многоминутный поиск. На первый взгляд, выходит вполне неплохо, находит даже гифки, нарезанные по разному, например этот пост http://joyreactor.cc/post/3351456 и похожая гифка тут http://joyreactor.cc/post/3052315 :
Это, всё же, не баян, но... пусть будет.
Пока есть проблема с некоторыми картинками типа этой, не находит дублей: http://img0.joyreactor.cc/pics/post/Cyanide-and-happiness-%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-4141924.png , надеюсь, заборю и это.
Всё это вылилось в длительность поиска, приблизительно +50%. Не уверен, что смогу забороть это дело, но тему изучаю, экспериментирую. Если Вас это напрягает - ну, не пользуйтесь.
Добавляю потихоньку поддержку других ресурсов, например, можно вставить URL поста с imgur.com, парсер выцепит каринку/гифку без лишних телодвижений. Если есть пожелания по другим ресурсам - пишите в личку, добавлю.
Все Ваши пожелания занёс в wish-лист, как выдастся время - обязательно займусь. Если есть мысли, идеи и прочее - пишите в личку.
На этом, пожалуй, и всё. Всем степени мага в наступающем году, поменьше личных тупняков и хватит уже постить каждый год одни и те же баяны.
Всех с воскресеньем.

Продолжаю таки работу над баянометрозаменителем и после возрождения основного, и, судя по логам, кто-то им даже пользуется. Мне кажется, хоть какая-то от этого польза да есть, ибо хеши мы (сравниваю с детищем сотоварища ExtraDJ) используем разные, картинки обрабатываются по разному, баяны от этого ищутся немного по разному, тем самым дополняя друг друга. За месяц+ работал более-менее стабильно, нестабильности излечивал как только замечал (пару дней назад внезапно демон-поисковик+хешер+парсер+несколько фоновых процессов внезапно упёрлись в, смешно сказать, 2Гб памяти, перенёс всё это дело на сервер получше).

Спасибо всем тем, кто делал багрепорты, писал в личку и т.п., это сильно помогает подкорректировать как поиск, так и общую юзабельность сервиса. Поиск гифок сильно переделал за это время, теперь считается процентное соотношение как длительности гифки, так и процент соответствия всех захешированных кадров, стало гораздо меньше трэша вылазить, причём гифки ищутся с бОльшим разбросом по дистанции Хемминга, чем обычные картинки, это позволяет найти немного искаженные гифки, но может и сюрпризов выдать. Некоторые картинки по прежнему выдают лютейшую дичь, это особенность хеширования, попробую победить альтернативным хешем, т.е. помимо текущего хеша сейчас вычисляется альтернативный (идея такова, что если взять дистанции сравнения побольше, но прогнать картинку через разные хеши, результат должен быть более объективен. Опять таки, я не математик, а экспериментатор, в профите пока не уверен, но попробовать точно стоит, руки за это пока ещё не рубят), это пока в процессе разработки. И минусом ко всему этому - зааплоденные гифки режутся до 30 кадров, это может весьма влиять на качество поиска, но и позволяет избежать абуза загрузкой дохуя длинных гифок. Тут, думаю, для особо терпеливых и настойчивых добавить опцию на проверку бОльшего числа кадров, но считайте сами, каждый кадр по времени равен проверке одной любой картинки, время поиска растёт линейно.

Плюс наткнулся на один неприятный баг в парсере html/json, из-за этого говна немалая часть постов не попала в базу (в основном, фендомы), пофиксил, перехешируется, ждёмс. Дабы не травмировать мою нежную психику завёл аккаунт-парсер, подписанный на ваши любимые жесть-кровь-кишки-йифф-гуро-лоли-ад, всё это потихоньку пишется в индекс, отчего появился тумблер SFW/NSFW. Здесь прошу помощи, не очень понятна логика работы. Сейчас у меня фильтр такой, что под NSFW попадают такие теги, как Anime Ero Cosplay, art барышня/девушка, ecchi, Faphammer, furotica, Hard Bondage, oglaf (хотя и есть у Оглафа SFW серии), r34, секретные разделы... тут ибанёшься их все перечислять, вбивал в базу вручную на своём опыте и периодически пополняю. Вопрос, есть какой-то более адекватный способ отличить sfw от nsfw? Или есть где список этих тегов? Ну и, естественно, кто теги не проставил, их посты вылазиют вне зависимости от тумблера.

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

Есть переработки в интерфейсе, сейчас _весьма_ не юзабельно при большой выдаче, пока в dev-версии допиливаю, выложу на неделе, но это так, не самое важное в баянометре. Добавил обновлятор токена, теперь не должно (ну или сильно реже) ругаться на проблему загрузки картинок. Добавил вывод разрешения изображения, НО, это пока работает на клиентской стороне (браузер качает картинку, скрипт выдаёт размер как только картинку загрузил ваш браузер, соответственно, это ВАШ трафик, в настройке есть предупреждение если вас это беспокоит).

Есть ещё несколько мыслей по доработке интерфейса (не только моих, спасибо товарищам по переписке), + скорректировать под мобилы, это пока на совсем свободное время.

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

Здесь обращаюсь к Вождю: если текущая работа моей поделки устраивает, возможно добавить ссылку на неё на сайт (окромя ссылки в разделе http://joyreactor.cc/tag/баянометр )? ИМХО баянометры с разными хешами имеют право на жизнь. Дело бросать пока не вижу смысла ибо это весьма и весьма занимательно лично для меня и есть богатое поля для изысканий (хочу переписать линейный поиск на BK-tree, хотя, есть сомнения, что ~20-30% прироста скорости того стоят), сервер особо денег не ест (два нормальных пива в баре в месяц), работает стабильно (теперь да, ресурсов достаточно).

Если всё плохо, похуистично, или есть конструктивные предложения - с нетерпением жду в комментариях.
Всех с воскресеньем.
Пока основной баянометр в разработке заделал небольшой такой заменитель http://joy.komato3.net/
Сканирует апрувнутые посты 2 раза в минуту (надеюсь, не буду за это забанен).
Немного умеет в гифки, но это пока сильно эксперементально. Гифки бьются по 2 кадра в секунду и этот хеш идёт в базу.
Любителям поковыряться в JS-коде и прочей диагностике - найдёте API-запросы на странице, пожалуйста, не переусердствуйте.
Текущий интерфейс люто не дружелюбен: ограничен на загрузку 10 файлов одновременно, но в силу неких ограничений может туповато работать, так что не брезгуйте F5, и в целом выглядит как для роботов. Порой nginx может послать Вас нахуй за частоту запросов, такие дела.
У поиска есть не мнимая возможность найти лютейшее говно или не найти ничего, для этого есть кнопка "Bullshit" справа, создаёт некий реквест с копией вашей картинки. Поковыряюсь в алгоритмах поиска и хеширования, но не злоупотребляйте, пожалуйста.
В остальном, прошу потестить - есть ли смысл во всём этом?