Vitaly
multimath 1.0.0

github.com/nodeca/multimath

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

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

Опросец, как улучшить диалоги в нодеке

dev.rcopen.com - там если залогиниться, то из выпадающего меню можно добраться то того, во что превратилась нынешняя “личка”. Теперь все сгруппировано по тредам, модно и современно.

Но некоторые товарисчи убеждают меня, что надо пойти дальше - выкинуть заголовки диалогов, чтобы на каждую пару юзеров была ровно одна бесконечная переписка. Как на мобилках и мессенжерах. Не скажу что мне подобное очень нравится, но старперствовать что “наши деды завещали делать диалоги с заголовками и никак иначе” тоже не собираюсь. Признаю, что возможностью создавать разные темы мало кто пользуется. Часто все валят в одну, и еще делают там дурацкие заголовки типа “вопросец”, “привет”, и т.п.

И так, вопрос ко всем: надо ли оставлять возможность создавать несколько диалогов с разными темами, или для каждой пары юзеров оставить только один диалог? Выберите пожалуйста, какой вариант вам больше нравится:

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

PS. Если что, можно потом сделать, чтобы у любой переписки можно было подкрутить “название” на свой вкус, в любой момент. Но это на суть не влияет. Итак - по одной переписке в одни руки или нет?

PPS. Вопрос серьезный. Чего бы не выбрали, проворачивать потом фарш обратно будет трудно. Поэтому хочется разобраться основательно.

О заворачивании шурупов молотком

Оказывается есть специальные девайсы:

Бложики. Уже почти.

dev.rcopen.com/blogs

Уже успели накидать рыбы, потестить юзабилити, поправить с дизайнером косяки в интерфейсе и выкатитить исправления.

Осталось:

  • поправить стили, чтобы страницы точно соответствовали макетам
  • добить комментарии
  • оживить мелкие кнопки
  • придумать как добавлять/редактировать теги, чтобы это было под рукой но не сжирало рабочую область редактора.

По срокам - где-то неделя на доделки и еще неделя на исправление ошибок. Потом перейдем к “клубам” (то что сейчас “социальные группы”) и на закуску останется барахолка.

Бложики начали поживать...

dev.rcopen.com/blogs

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

Через пару недель разгребем основное и будет понятно сколько еще времени надо.

А кому трудно открыть ссылку из почты в ТОМ ЖЕ браузере, в котором смотрим сайт?

Я тут схлестнулся с кое-кем на тему правильного подхода к безопасности в различных архитектурных решениях. Узнал много удивительного. Например, что в аду сгорели еще не все провайдеры, которые постоянно меняют IP адрес юзера (постоянно = хоть каждую секунду). То есть, на привязку логина к IP закладываться не стоит. Ну окей, у нас еще куки есть, переживем.

Если вы попробуете залогиниться на dev.rcopen.com, то увидите что пароль можно не вводить. Когда без пароля - вам на почту приедет ссылка, которую надо кликнуть.

А теперь внимание вопрос! Кому было бы неудобно открыть ссылку в ТОМ ЖЕ браузере, откуда делался логин?

Мне объясняли, что некоторые читают почту с мобильника, и оттуда ссылку на десктопе не откроешь. Согласен, что такие люди могут быть. Но много ли их? Например, если я лазаю на десктопе, то у меня там же открыта вебпочта. Если лазаю с мобилки - ну тогда и с мобильной почты всё в нужном браузере откроется.

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

Что еще предстоит похерить в блогах

Пока перепроверяли архитектуру новых блогов, вылезло еще пара позиций на вылет, про которые забыл сказать в предыдущей записи:

  • Название + описание блога
  • Личные записи (оказывается, такие есть, и их аж 50 штук)

Ну и для полноты картины повторю предыдущий список:

  • Стили
  • Кастомные страницы
  • Разделение между категориями и тегами
  • Всю лабуду из нынешней правой колонки

Картинки с новым интерфейсом можно посмотреть тут github.com/nodeca/nodeca-design/tree/…/pages

Если считаете что я собрался отчекрыжить что-то архиважное, можно попробовать меня отговорить. Но, аргументированно.

Приступаем к блогам

Внезапно, похоже на форуме задачи закончились. Какое-то непривычное ощущение 😃. Еще не допилены странички со статистикой юзеров и странички “новостей” (подписок). Но их я хочу попозже переосмыслить - на реальных данных будет проще проверять, как их сводить воедино.

Еще я все-таки выдурил ник autopilot (большое спасибо владельцу), и пока бот будет выглядеть вот так. Попутно переделали сообщения о предупреждениях (они теперь от автопилота), и добавили в конец ссылку, где смотреть полный список замечаний и задавать по ним вопросы модераторам.

Начинаем пилить блоги, и проверять мою теорию что “всё остальное по аналогии фигачится очень быстро, потому что думать уже не надо”. За блогами по такой же схеме пойдут клубы (который сейчас “социальные группы”). На сладкое барахолка, где все с нуля но надеюсь что не очень сложно (там все выборки страниц на основаны поиске, и каких-то мегафич нет). Ну и потом еще раз пройтись по всему-всему, проверить что пропущено (вроде страниц со статистикой у каждого юзера).

Теперь по блогам. Я планирую выпилить эти странные фичи:

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

github.com/nodeca/nodeca-design/tree/…/pages - тут можно позырить дизайн страниц. Я уже не упомню всех деталей, но точно помню что мы с дизайнером очень плотно пыхтели над интерфейсом и проверяли что всего хватает. Всё дванольненько, мобильненько и т.п. Там где несколько вариантов одной страницы - значит я с какими-то мелочами по оформлению еще не определился.

Если у кого-то есть не очень сложные пожелания по блогам - сейчас самое время из озвучить. Напоминаю общий принцип: пока делаем только то “без чего нельзя”. Чтобы поскорее переехать, не потеряв фичи. Но если есть что-то совсем очевидное - постараюсь учесть сразу.

И еще раз спасибо всем, кто помогал подбирать альтернативные имена для бота.

Помогите придумать ник для робота на новом сайте

На новом сайте планируется сделать специальный аккаунт для всяких системных уведомлений. Помогите придумать ник, который бы одинаково хорошо воспринимался и на русском и на английском языке.

Пока в голову пришел только autopilot, но он слегка занят и отбирать не хочется 😃. “system” как-то уныло выглядит, не нравится.

Tags:
Привернули историю изменений к постам

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

С текущего форума историю изменений импортировать не планируется, чтобы никого не спалить 😃

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

Если хочется поиграться, то делаем так:

  1. Создаем тему
  2. Ждем 5 минут и редактируем
  3. Наблюдаем наверху сообщения иконку с количеством правок. Если нажать - покажет что менялось.

Правки, сделанные в течение 5 минут автоматически объединяются в одну общую.

Изменения в правилах (формальные)

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

Кому надо - смотрите 2 последние главы. Изменения сделаны чтобы идти в ногу со временем (а точнее, с нашими дебильными законами). Для людей все остается без изменений.

После переезда более капитально все перелопачу, типа “новый сайт - новые правила”. А пока менял по минимуму, чтобы никого не путать лишний раз.

Если что-то непонятно или вопросы - пишите, отвечу.

Запилили контакты

dev.rcopen.com/contacts (залогиненым показывается на 2 ссылки больше)

По сравнению в нынешним сайтом - сократилось количество форм и подрихтовались формулировки. Ну и внешний вид позадорнее.

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

Tags:
Бета NNTP

Поднял на dev.rcopen.com NNTP сервер. Развлекайтесь, кому интересно. Там примерно то же самое что и тут, только сильно облагороженное. Обычным пользователям теперь не надо логиниться, более качественные потроха и т.п. Если кому нужна нормальная серверная “рыба” NNTP-протокола под node.js - исходники тут.

Но вообще тема как-то загибается. Программы для чтения ньюсов не прогрессируют, компрессию и starttls до сих пор никто не поддерживает. Фактически, если грамотно подойти к вопросу, то уже вполне реально слепить подобие хорошего “почтового” интерфейса в браузере. Правда, для этого сначала понадобится весь текущий код переводить на очередные новые технологии. Пока разбираюсь, во что это вообще может обойтись.

Поиск готов, проверяйте

dev.rcopen.com

Выкатил доделанный (надеюсь) поиск.

  • Есть поиск по разделам.
  • Есть поиск по темам.
  • Есть сортировка по датам, с запоминанием состояния.
  • Должно быть хорошо и на десктопах и на мобилках.
  • Темы из барахолки мешаться не будут.
  • По мере доделки бложиков и т.п. в результатах поиска просто появятся дополнительные закладки.
  • В конце страниц выводятся “похожие темы”, но там с релевантностью еще разбираться.

Нужны отзывы, что неудобно, что непривычно, чего не хватает.

Добавили автоматическое выпиливание рефералок и мусора из ссылок

Т.к. тратить время на раздачу медалек за рефералки лень, привернули к нодеке автоматическую очищалку ссылок. Она делает две вещи:

  1. Выпиливает параметры топовых рефералок (aliexpress, banggood, …)
  2. Выпиливает всякую трегинговую фигню, которую любят добавлять в рассылки и т.п.

Текущий алгоритм с комментариями можно посмотреть на гитхабе github.com/rcdesign/…/link_query_cleanup.js. Конечно он чистит далеко не все, но количество ада уменьшает в десятки раз. Если ссылка сделана через популярные сокращалки ссылок - она будет сначала автоматически развернута.

Почему чистится именно это? Очень просто - сдампил статистику, и взял оттуда самое массовое.

Пора проверять поиск. Совсем пора :)

dev.rcopen.com/search

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

Если замечаний и пожеланий не будет, то примерно такое и пойдет в релиз.

PS. Поиск по разделу и поиск по теме привернем на днях, это будут отдельные страницы

Потычте в поиск палочкой пожалуста

dev.rcopen.com/search

Завелась балалайка. У меня до последнего момента знатно пригорало - думал что есть серьезные баги в поисковом движке. К счастью, оказалось что основные баги были у нас. Мне даже нравится что теперь показывает.

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

Интерфейс конечно пока не доделан, но результаты должны быть верными. На следующей неделе будем добивать красивости. Ну и релевантность покручу, если напишете куды копать.

UPD. Подкрутил стили, поправил для мобилок, сделал чтобы раскрытая форма запоминалась, и чтобы при смене фильтра результаты сами обновлялись. На той неделе еще с дизайнером посидим, подумаем.

Альфа поиска

dev.rcopen.com/search

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

Есть пара вопросов к телезрителям:

  1. Нормальная ли форма поиска, или чего-то еще не хватает?
  2. Достаточно ли того, что показывается в результатах поиска, или надо что-то еще и как-то иначе?
  3. Сейчас сортировка по времени для тем использует дату обновления. Это ок или надо дату создания или и то и другое? Если и то и другое - обоснуйте пожалуйста, не хочу интерфейс усложнять.

Ну и чтобы не дергали что все плохо, краткий список того что будем чинить:

  • Нет поиска по секциям/темам, и удобного перехода на них (надо доделывать красивости в тулбаре, уже продумано)
  • Пока нет поиска по блогам и т.п. - потом в результатах просто появятся дополнительные табы.
  • Нема подгрузки результатов при скроле вниз.
  • В результатах поиска какая-то жуткая хрень, например не ищет слова через дефис, и часто не находит ничего в постах. Надо разбираться.
  • При индексации не режутся цитаты и т.п.
  • Я с больших раздумьях, надо ли показывать для постов снипеты, или просто показать содержимое (то что могут вылезти большие видосики и картинки - решаемо).
  • Поиск по форуму перестал выдавать объявления из барахолки. Для нее вообще отдельный поиск будет.

В общем, все что пока можно - пойти по ссылке и позырить массо-габаритный макет. А еще ответить на вопросы, кому не лень.

Чем нынче смотрят сайт

Если смотреть по старым браузерам, на поддержку которых не хочется тратить силы, то любителей opera12 стало всего 1%. А загадочных пользователей “android browser” (не путайте с мобильным chrome) - 1.5%. То есть 9 месяцев назад их в сумме было 4%, теперь 2.5%.

Переверстал нодеку на флексбоксы, убрав очередную пачку костылей.

Добили установку местоположения в нодеке

Всё, можно играться dev.rcopen.com

Теперь установка местоположение делается по карте, а название города, посёлка и т.п. вытягивается из OpenStreetMap и Overpass. Это все конечно сразу с поддержкой кучи языков. Если города нет - пытаемся искать ближайший в радиусе 100км.

Развлекайтесь, пишите что как.

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

Новая порция баек про успехи

Как-то давно не рассказывал, что в нодеке творится.

  • Запилили кастомные поля в профиль (контакты)

  • Заполнение регистрационных данных теперь немного другое (после регистрации)

    • день рождения выбирается через нормальный виджет, теперь не ошибиться
    • там же текст, что точную дату указывать не обязательно 😃
  • Запилили нормальную логику апгрейда групп. Такой фигни, что надо ждать после большой паузы, больше не будет.

  • Полностью переписали распределенную очередь задач, теперь она крута как Celery и даже лучше github.com/nodeca/idoit.

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

Пока так. Теперь начали думать как приворачивать выбор города через карты.

Финальные скриншоты барахолки

github.com/nodeca/nodeca-design/tree/…/pages

Смотрите “baraholka_*”, критикуйте. Вроде ничего не забыл. Я не до конца уверен в юзабельности страницы с описанием товара, но по-моему она хотя бы не ужасная.

Между делом там еще добавились скриншоты email-ов и полноэкранного просмотра фоток. На этом все что касается работы с дизайнером - закончено.

Надо еще навтыкать рекламу хобби-кинга и всех остальных, но это ближе к делу решим.

Tags:
Это ж неспроста...

Один из программеров решил свалить в Израиль, насовсем. Поэтому внезапно образовалась вакансия. Ну я погрустил и пошел на хедхантер. Как ни странно, этой осенью отклик очень большой. При том что в минимальных требованиях стоит сеньор/архитектор с овердофига лет опыта. Как-то даже подозрительно. Обычно специалистов такого класса даже одного найти трудно - не ищут они работу. Давайте послушаем по этому поводу песню 😃

Из хороших новостей - на проекте замена людей не сказывается вообще никак (не считая времени на поиск). Есть свои плюсы в том, чтобы писать хороший код.

Новый скриншот из секретных лабораторий

Спасибо всем кто прокомментировал вопросы насчет барахолки. Ловите скриншот как оно будет:

github.com/nodeca/…/baraholka_main-5.png

  • Карточки товаров и мобильный вид еще не допилили, но там и так все понятно, на днях добавятся.

  • Темы “куплю” останутся. Пока отдельным параллельным каталогом.

  • Поиск надеюсь что сразу будет нормальный. Смотрите форму на картинке.

  • Подписки на поисковые запросы пока откладываем на “после переезда”, сорямба.

    • Там нужна фича поискового движка под названием “перколатор” (реверсивный поиск). Ее нет в sphinx search, а ставить elastic search где она есть пока не хочу по техническим соображениям. Возможно, пока переедем, проблема решится сама собой.
  • Картинки к объявлениям планируется сделать обязательными. Мобилки с камерами нонче есть у всех.

  • Отзывы пока не планируются, т.к. для их достоверности нужна автоматическая обработка факта оплаты. А как сделать иначе и чтобы всё не скатилось в бардак - лично я пока не знаю. Готов выслушать разумные продуманные идеи.

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

Расскажите кто как пользуется подписками на ebay, avito и т.п.

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

Т.к. я активно такими вещами не пользуюсь, нужна помощь зала - как это реализовно в других местах, и что полезно лично для вас:

  • это полноценные поисковые запросы, или только на ключевые слова?
  • строгое совпадение или с падежами?
  • если несколько слов, хватит ли просто их наличия или важна последователоьность?
  • нужны ли дополнительные условия вроде цены, местоположения и т.п.
  • примеры ваших подписок, если не секретно (чем больше тем лучше)

Вопросы очень приблизительные, т.к. в теме я особо не разбираюсь. Напишите что считаете нужным в произвольной форме.

PS. Я вообще эту фичу хотел делать “как-нибудь потом”, но можно ускорить, если прояснятся технические моменты.

This site will not work without javascript!
This site will not work if cookies are completely disabled.
Site is offline
  • 53.50ms - Total
    • 0.09ms - http_prepare
    • 0.03ms - cookies_read
    • 0.02ms - tz_offset_read
    • 41.41ms - server_chain_exec
      • 0.07ms - session_load
      • 0.02ms - session_new
      • 0.06ms - csrf_token_set
      • 0.08ms - fill_session_from_AuthSession
      • 0.15ms - fetch_guest_user_info
      • 0.09ms - fill_user_info_locale
      • 0.02ms - layout_common_set
      • 0.41ms - show_announces
      • 34.59ms - server_method_exec
        • 2.13ms - offline_mode_check
        • 2.28ms - fetch_user_by_hid
          • 0.42ms - fetch_can_see_deleted_users
          • 1.77ms - fetch_user_by_hid
        • 0.37ms - bot_member_pages_forbid_access
        • 0.10ms - fetch_current_tag
        • 12.95ms - subcall_entry_list
          • 0.45ms - fetch_and_fill_permissions
          • 0.03ms - define_visible_statuses
          • 2.09ms - get_entry_ids
          • 5.08ms - fetch_and_sort_entries
          • 1.16ms - fetch_and_fill_bookmarks
          • 0.25ms - fetch_infractions
          • 1.49ms - collect_users
          • 1.28ms - check_ignores
          • 0.67ms - blog_entries_sanitize_and_fill
        • 4.63ms - fetch_tags
        • 1.25ms - fetch_categories
        • 5.97ms - fill_pagination
        • 0.10ms - fill_head
        • 0.07ms - fill_breadcrumbs
        • 4.39ms - fill_prev_next
      • 0.02ms - fill_runtime_locale
      • 0.29ms - inject_acp_access_state
      • 0.05ms - fill_runtime_user_info
      • 0.29ms - inject_dialog_permissions
      • 0.02ms - token_live_inject
      • 0.30ms - fetch_can_see_deleted_users
      • 2.93ms - users_join
      • 0.02ms - add_users_to_page_data
      • 0.02ms - session_ttl_increase
      • 0.14ms - assets_info_inject
      • 0.02ms - footer_common_inject
      • 0.01ms - navbar_common_inject
      • 0.02ms - recaptcha_pubkey_inject
      • 0.17ms - session_save
      • 0.02ms - session_delete
      • 0.01ms - last_active_update
      • 0.14ms - token_live_save
      • 0.78ms - response_to_plain_object
    • 0.02ms - not_modified_check
    • 0.03ms - http_loading_stub
    • 11.42ms - http_render
    • 0.04ms - inject_security_headers
    • 0.01ms - puncher_end