Пользователь
0,0
рейтинг
21 ноября 2012 в 20:28

Разное → Background Dating — в поисках людей, с которыми интересно говорить

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

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

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

А вот, кстати, и описание в «рекламном» стиле:

Вы давно хотели найти себе девушку, которая умеет программировать на Brainfuck? Или вам важно, чтобы она была сторонницей адаптивной и семантической вёрстки? А может, вы хотите познакомиться с той, кто может легко рассказать об отличиях микроядра от монолитного, но при этом ещё является танцовщицей?

Теперь у вас появилась такая возможность — если, конечно, она уже зарегистрировалась на Background Dating. :)

Вместо анкет на сайте есть ключевые фразы. Каждая ключевая фраза — это короткое утверждение от первого лица.

Вот несколько примеров:

  • Программирую на Lisp
  • Играю в Dungeons and Dragons
  • Хожу в клуб Place
  • Пишу на Хабрахабр
  • Занимаюсь сетевой безопасностью

У каждого пользователя может быть сколько угодно ключевых фраз, и любую ключевую фразу можно использовать при поиске. Также у пользователей есть возможность искать сразу по нескольким интересующим ключевым фразам — в этом случае в результатах выдаются только те люди, которые добавили у себя все указанные ключевые фразы (соответственно, если результат поиска оказывается пустым, значит, можно попробовать убрать часть заданных ключевых фраз из запроса).

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

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

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

Работает сайт, кстати, на Django (язык Python). Для передачи данных о личных сообщениях используются Web Sockets (RFC 6455). При свёрнутых вкладках (исключение — чат) соединение с сервером временно закрывается, чтобы не нагружать интернет-канал — это реализовано через HTML5 Visibility API, а именно с помощью Visibility.js небезызвестного iskin.

С серверной стороны поддержка веб-сокетов реализована с помощью асинхронного неблокирующего сервера Tornado. Если кто-то захочет, готов поделиться исходниками и информацией о том, как это деплоить — там, в принципе, ничего сложного. Для того, чтобы передавать сообщения между Django и Tornado (а также хранить некоторые данные) используется Redis, в котором есть отличная поддержка pub/sub. В Django используется стандартный клиент redis-py, а в Tornado асинхронный клиент brükva.

Для валидации файла (фотографии) на клиентской стороне используется File API. Разрешение фотографии, правда, не проверяется — это можно сделать, но я пока что решил не усложнять, тем более, что на сервере всё перепроверяется. Зато проверяются тип и размер файла, что тоже неплохо. Однако меня удивил один интересный факт — дело в том, что по спецификации File API атрибут type объекта, представляющего файл, должен содержать MIME-тип файла, согласно RFC 2046, но браузеры при этом используют не фактический тип файла, а генерируют его на основе имеющегося расширения.

Иными словами, возьмём MP3-файл, скажем, file.mp3. Посмотрим MIME с помощью команды file:

$ file --mime-type file.mp3
file.mp3: audio/mpeg

Теперь уберём расширение, и попробуем ещё раз:

$ file --mime-type file
file: audio/mpeg

То же самое. Попробуем другое расширение.

$ file --mime-type file.jpg
file.jpg: audio/mpeg

Аналогично.

А вот у веб-браузеров другое мнение — в первом случае files[0].type содержит строку audio/mpeg (что и ожидается), во втором пустую строку, а в третьем случае уже image/jpeg. Опять же, это не критично, потому что перепроверяется на сервере, но всё равно немного удивляет. Кстати, если очень хочется сделать, чтобы тип файла проверялся «по-настоящему», то это можно сделать вручную, через FileReader. Возможно, потом ещё сделаю.

Ещё одна отличная технология, которую я решил здесь использовать — это Web Storage. Сначала технология Web Storage была частью спецификации HTML5, но потом была описана в отдельной спецификации. С помощью неё на сайте происходит сохранение данных формы регистрации в локальном хранилище браузера (localStorage) — прямо при заполнении пользователем. То есть если пользователь, например, уже указал какие-то ключевые фразы, и собирался регистрироваться, а потом вдруг случайно закрыл вкладку (или браузер, или у него вообще выключился компьютер), то когда он снова зайдёт на сайт, ему не придётся снова добавлять эти ключевые фразы — они автоматически будут загружены из локального хранилища и появятся в форме.

Также на сайте используется адаптивная вёрстка, и поэтому им можно пользоваться с мобильников, планшетов и нетбуков — главное, чтобы там был современный браузер (кстати, браузер по умолчанию в Android 4.2, к сожалению, пока не всё поддерживает, но с другой стороны под Android есть Firefox, Opera Mobile и Chrome, где всё отлично).

Если кому-то будут интересны какие-либо ещё технические подробности (например, серверная валидация и crop фотографий, или хочется обсудить авторизацию по email в Django и изменения в версии 1.5), могу рассказать о них, например, в личной переписке.

И, конечно, если есть какие-то идеи о том, как можно сделать использование сайта лучше/проще/удобнее, буду очень рад услышать их в комментариях. У меня, кстати, есть некоторые идеи того, что, скорее всего, будет довольно интересно добавить, и, если кто-то хочет, могу о них заранее рассказать. Опять же, если у кого-то есть желание присоединиться к разработке (на данный момент над этим сайтом работаю только я) — пишите.

Всем приятного дня и интересных знакомств. :)
Арсений @MaGIc2laNTern
карма
232,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разное

Комментарии (116)

  • +15
    Хотя, если подумать, любой/любая, кто знает о модульных/монолитных/микроядрах, в некоторой мере является танцором или танцовщицей.

    Просто одного конкретного вида танцев. :)
    • +1
      Танцы с компьютером? Остроумный эвфемизм :)
  • +2
    Интересная идея :)
    Открылись только сейчас или уже набрали «массу»? Если набрали, то сколько, если не секрет?
    • +4
      Открылись — звучит гордо. Я всё это сам писал (где-то за месяц включая разработку интерфейса), и то — в свободное от основной работы время. :)

      А вообще сайт работает с этой ночи только. Ночью не работали WebSocket (вернее, они работали, но cookie устанавливались не с тем доменом, поэтому фактически чат не функционировал в реальном времени) — это я сегодня поправил. И после этого написал на Хабр.
      • 0
        так сколько пользователей уже?)
        • 0
          Сейчас 266.
          • +10
            А девушек сколько?
            • +21
              There are no girls on the Internet.
            • 0
              А не знаю, кстати. Я хотел сначала добавить автоматическое определение пола по лицу, но сейчас понял, что с таким количеством котяточек на фотографиях статистика бы вела себя очень странно. :)
              • 0
                Похоже добавить графу «пол» при регистрации вам всё же придется.
            • 0
              Ну, смотрите, сейчас 573 пользователя, и среди последних зарегистрированных девушек уже довольно много (во многом благодаря вот этой блогозаписи в ЖЖ).
      • 0
        «Программирую на си» — я одинок.
      • +3
        Спасибо, автор, ваш проект очень понравился, объединить функционал соц. сети и сайта знакомств — классная идея. Считаю у вас может быть большое будущее. Теперь надо наступать на соц. сети. На вас сейчас вывалится куча идей и предложений о помощи, но прежде чем развиваться, сформулируйте цель сайта и двигайтесь к ней, не идите у аудитории на поводу, проявите твёрдость. Недавно была на хабре статья на эту тему. У меня тоже появилась пачка идей:

        • Сделайте в html метатеги для социальных сетей на главной, чтобы картинка нормальная подцеплялась при ссылке на вас, а не длинный бэкграунд (привлечение аудитории будет и через СС — пусть выглядит красиво);
        • Зарегистрировался, зашёл в профиль какого-то человека, вижу толковые утверждения, хочу внести себе — нифига. Приходится переключаться между вкладками, на одной мой профиль, на другой его. Сделайте возможность добавлять себе утверждения из других профилей, так легче отсекутся редкие утверждения, кстати;
        • Очень нехватает возможности сортировать свои ключевые фразы чтобы выстраивать их в логические блоки, а может быть даже в виде повествования.


        Из необдуманного:
        • Надо чем-то привлекать дам, но это не должно быть розовое оформление или котики (и так на аватарах полно);
        • Можно сделать что-то типа голосования за ключевые фразы других, чтобы отфильтровать неудачные (вроде endorse в linkedin или простого голосования за комменты), и это голосование может быть невидимым для автора ключевых фраз;
        • Надо предлагать больше вариантов что писать в ключевых фразах, а то примеры только на главной для незарегистрированных, больше нигде не увидеть кроме других профилей (я бы предложил помечать в базе удачные и показывать для примера возле полей ввода — этакая тень модерации).
  • 0
    Всё сломалось: «Ой! В настоящий момент страница недоступна.» и сообщения стали приходить другим получателям
    • 0
      Там был баг с возможностью посмотреть историю сообщений другого юзера, уже исправлено. Проверьте, пожалуйста.
      • 0
        А у меня не отправляются сообщения. Win7 + FF (послений stable) + flashblock (ваш сайт в вайт-листе) + adblock plus.
        Пробовала отправлять по Ctrl+Enter и кнопкой. Открывая «как открывается» и в новой вкладке… И нифига. Оно даже не пытается отправиться. Вот что пишет фаербаг по мере печатания сообщения:
        Request headers:
        GET /1017/ HTTP/1.1 Host: chat.backgrounddating.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-gb,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive, Upgrade Sec-WebSocket-Version: 13 Origin: http://backgrounddating.com Sec-WebSocket-Key: 1RufArOPpSIXviCqqfNllA== Cookie: sessionid=5de97f5e0846bbd91b8fc6351dde055d Pragma: no-cache Cache-Control: no-cache Upgrade: websocket
        Response headers:
        HTTP/1.0 400 Bad Request Date: Wed, 28 Nov 2012 10:47:09 GMT X-Cache: MISS from interceptor Via: 1.0 interceptor (squid/3.1.12.2) Connection: close
        • 0
          Я так понимаю, что проблема у вас в том, что между вами и сервером Background Dating находится Squid, и, так как у этой версии Squid нет полноценной поддержки HTTP/1.1, WS-соединение установить не удаётся. То есть, если это ваша домашняя сеть, то попробуйте убрать или обновить прокси-сервер, а если вы пытаетесь выходить с работы — то попробуйте поговорить с вашими системными администраторами (если они ничего не имеют против свободного использования Интернета, конечно).
          • 0
            Спасибо за ответ. Выхожу с работы, с админами говорить лень. Попробую потом из дома выйти, посмотреим что получится.
  • 0
    Спасибо за статью!
    Пожелания по улучшению (надеюсь что-то пригодится):
    1) Когда я добавляю новые ключевые фразы, я ожидаю, что они сразу же сохранятся. Ведь логично, я ввел фразу, нажал на кнопку с плюсиком, и она добавилась. Кнопку «Сохранить» я в итоге так и не нажал… и ничего не сохранилось. Обидно.
    2) Поработать над текстовыми элементами. К примеру, «ключевые фразы» — это техническое определение. Пользователю нужно более человеческое определение. «Мои качества» как вариант.
    3) Дизайн. Минималистичность функций меня радует, но над их визуальным оформлением стоит поработать. Шапка навевает мысли о биолаборатории, о хакерском форуме, о чем угодно, но не о сайте знакомств.
    Успехов вам!
    • 0
      Еще кстати стоит определиться с тем, с какой буквы должны писаться качества. А то у всех по-разному. Добавляю, например качество себе, а такое уже есть, еще и написанное с большой буквы. А мои все с маленькой написаны. Мне от таких мелочей плохо становится. Кстати, а что если качества не списком выводить, а по принципу «облака тегов»? Крупнее выделять те, которые наиболее совпадают с друзьями. Можно ненавязчиво анимировать. Кстати, а где возможность добавить человека в друзья?
      • +1
        Привет, и большое спасибо за замечания. Обязательно учту их. К сожалению, пока что быстро реализовать не получится, потому что я ещё занимаюсь основной работой. Другое дело — если удастся взять ещё кого-нибудь в команду, например. В общем, посмотрим — я напишу вам, если что-то сделаю из того, что вы предложили.

        Кстати, у меня есть и другие идеи по улучшению.

        Например:

        Отображение количества найденных людей по каждой ключевой фразе. В принципе, это и так отображается при вводе ключевых фраз.

        Автоматические подсказки с информацией о том, какие ключевые фразы исключают больше всего людей из поиска.

        Возможность искать по отсутствию тех или иных ключевых фраз.

        Проверка фотографий модераторами: если пользователь хочет, он может нажать на специальную кнопку у себя в настройках и загрузить отдельную фотографию, где он держит в руках лист бумаги, на котором написан автоматически сгенерированный код. Модератор просматривает фотографию, и, если у него нет сомнений о том, что на основной фотографии (которая отображается на сайте) может быть другой человек (или что код был добавлен средствами обработки фотографий), то он отмечает в профайле пользователя, что его фотография была проверена. Соответственно, далее это отображается при просмотре профайла этого пользователя.

        Возможность подписаться на определённые ключевые фразы, чтобы когда появлялись новые люди с такими ключевыми фразами (или кто-то из существующих пользователей их выбирал), подписавшемуся пользователю отправлялся email, или SMS, или сообщение в джаббер.
        Jabber-сервер, подключившись к которому можно оставаться на связи, не заходя на сайт (и общаться с другими пользователями). Аватары и имена, соответственно, ставить пользователям Jabber-сервера автоматически на основе фотографий и имён на сайте.
        • 0
          Было бы здорово, если бы в профиле ключевые фразы были ссылками на людей с этим качеством. Потом, можно добавить что-то вроде «закладок» видных только собственно пользователю. Чтобы можно было не сразу писать сообщение заинтересовавшему человеку, а просто сохранить на будущее «этот человек меня заинтересовал»
    • +2
      Случайных людей можно побольше выводить. Или настраиваемо — в профиле.
      Поиск надо продумать. К примеру, мне надо найти этих людей:

      image

      Можно только по очереди. С другой стороны при большом объёме людей будет куча невнятных тегов…
      • 0
        Да, наверно, я сделаю потом вариант «Искать по любой из ключевых фраз». Реализовать это легко, но единственное что — очень хочется не перегружать интерфейс. Теоретически, чем меньше в нём всего — тем лучше. Но тут надо сохранять баланс, чтобы всё, что действительно нужно, при этом было.

        В конце концов, кнопка «Искать» сейчас специально отображается только тогда, когда указана как минимум одна ключевая фраза. Соответственно, если добавлять туда чекбокс, то можно и его показывать только тогда, когда пользователь уже что-то добавил в запрос.
        • 0
          В принципе, если каждый включит себя в уже существующий подходящий тег, то будет нормально. Но люди ведь не роботы, надо что-нибудь придумать.
          • 0
            Первое, что приходит в голову — автоматически делать первую букву всех ключевых фраз большой. Но всем ли это понравится? Хммм, а может в базе хранить так, а показывать в профайле в зависимости от настроек (то есть пользователь может выбрать: все фразы с большой буквы или все фразы с маленькой буквы)?

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

            Другой вариант — работать с этим вручную из админки. Пустить модераторов, чтобы они могли объединять несколько ключевых фраз в одну. Но тут опять же вопрос в том, насколько пользователям понравится, что у них меняется список ключевых фраз без их участия?
            • +1
              Тогда можно сделать, чтоб модераторы не объединяли их в одну, а помечали эквивалентными, соответственно при поиске находить полное совпадение и выводить в результаты вместе с эквивалентами
              • 0
                Да, этот вариант тоже вполне неплох. Может, на этом в итоге и остановимся (начинаю писать во множественном числе, потому что команда, возможно, вскоре расширится — есть желающие).
            • 0
              Так как я не соображаю в веб-делах, но плотно работаю с БД, то понимаю, что у вас есть отдельная таблица ключевых слов (новое не добавляется, если уже существует), и к пользователю привязывается только ссылка на них? Т.е. если отсечь регистр, пользователь введёт «Слово», а уже есть «сЛоВо» — оно и привяжется?

              С модераторами, мне кажется, не выйдет, т.к. тут будет чистая рутина — модератор будет вместо ИИ, приводить в соответствие сухие фразы. Вскоре всем это надоест.
              • 0
                Нет, ключевые фразы, написанные в разном регистре, сейчас не объединяются. Возможно, мы это ещё поменяем, но тут надо учитывать определённые тонкости: ведь никто не гарантирует, что первый добавленный в БД вариант с точки зрения регистра символов является грамотным/корректным/приемлемым для следующих пользователей, которые хотят добавить такую же ключевую фразу.
                • 0
                  Что сейчас так работает понятно, я говорил «если отсечь регистр». Вопрос был больше про механизм.
                • +1
                  Во профиле у пользователя хранить ключевые фразы в таком виде, в каком сам пользователь ввёл их.

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

                  Так, например, устроены ключевые слова (тэги, ярлыки, категории), указываемые внизу блогозаписей на Хабрахабре. Вводить их можно в любом регистре, и показываться внизу блогозаписей они станут именно в том регистре, в котором ввёл их автор. Однако в общей базе Хабрахабра они хранятся в нижнем регистре, и автоподстановка по мере ввода предлагает варианты только в нижнем регистре.
                  • 0
                    Да, хорошее решение. Можно тогда наборы ключевых фраз для каждого пользователя вообще сохранять отдельно в Redis, например. Они так и считываться будут быстрее, и регистр может быть любой, и порядок, в котором пользователь указал ключевые фразы, можно легко сохранить (без добавления дополнительной колонки в таблицу M2M-связи пользователя и ключевой фразы).

                    А в PostgreSQL, соответственно, хранить все фразы в нижнем регистре. Тогда и надобность в ILIKE отпадает — просто keyphrase.decode('utf-8').lower(), и затем LIKE.

                    Спасибо, Мицгол! :)
      • 0
        Я имею ввиду, когда ты не выбираешь из списка, а просто сам вводишь «Ruby». Ну и с поиском надо немножко поработать, потому что Я например хочу всю людей которых есть «Программирую на Ruby» и «Я программирую на Ruby». Сейчас показвыает, что людей не найдено. Хотелось бы все-таки не конъюнкцию, а дизъюнкцию в этом плане.
      • +1
        В данном случае просто напрашивается возможность искать по всем тэгам, связанным со словом Linux, примерно так: *Linux*;*linux*;*Линукс*;*линукс*.
        • 0
          О, кстати, неплохая идея, спасибо.
  • +5
    О, спасибо, наконец-то, это моя старая идея, знакомства (да и социалки вообще) с поиском по ключевым словам/тегам. Всегда удивлялся, почему такая простая и очевидная вещь не приходила в голову создателям крупных социальных сетей. А то все по росту и по весу знакомиться предлагают:) («интересы» в том или ином виде конечно есть в социалках, но этот вид обычно примитивный и почти нефункциональный)

    Вы не думали о весовых коэффициентах для ключевых слов? Например, пользователю дается фиксированное количество «плюсов», которые он может распределить между тегами. Какие-то теги для него мега-важные, какие-то так себе. И использовать эту информацию при поиске.
    • 0
      Интересная идея. Напоминает прокачку в RPG. :)

      Подумаю над этим, спасибо.
      • +1
        В некое продолжение мысли…
        Ввести некие рейтинги для тегов юзера. Например я указываю что мега мозг в виртуализации. Меня находит человек, и из разговора понимает, что я 1 лишь раз открыл hyper-v и не разобрался как машину создать. Мне кажется, он как то должен сказать об этом остальным.
        • +1
          Давайте тогда ещё добавим при регистрации прохождение небольшого математического теста. :)

          Ну, или визуального на IQ.
    • +1
      Например, пользователю дается фиксированное количество «плюсов», которые он может распределить между тегами.

      Тут можно проще: процент важности. 100% распределить по ключевым словам.
      Но делать это обязательно после регистрации. Да и обязательное заполнение ключевых слов при регистрации можно убрать, просто предложить это сделать после в профиле.
      Нормально понять, нравится сервис или нет, можно только зарегистрировавшись. Но когда вас просят выложить всё до регистрации — неприятно.
      • 0
        Если сервис для программеров — то да. А большинству людей распределять проценты… не осилят:) Плюсики/звездочки — это те же проценты, только юзабельнее.
        Хотя еще проще, наверное, сделать просто линейный список тегов и кнопки перемещения тега в списке: «выше», «ниже», «в начало», «в конец», «на 5 позиций выше», «на 5 позиций ниже» etc. Теги наверху более важные, внизу — менее.

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

        Еще идея: отдельно сделать «отрицательные» теги, то есть способ отметить то, что пользователю НЕ нравится. Например, способ отметить отрицательное отношение к алкоголю/курению, каким-то чертам характера/привычкам, вопросам политики и т.д. С помощью обычных «положительных» тегов эти вещи нормально не отметить, не для всех понятий есть антонимы, да и не всегда антоним однозначно относится к тому что «нравится» (может быть нейтральное отношение).
  • +2
    Про деплой Tornado было бы интересно почитать.
  • +1
    Ах да, багрепорт навскидку: кажется, теги чувствительны к регистру? Наверное, стоило бы их автоматически того, lower() :)
    • +1
      puu.sh/1sOEb — вот что я вижу.
      Надо что-то с регистром делать, желательно оставить первую заглавную.
      • 0
        Да, согласен — подумаем на эту тему и, скорее всего, поменяем.
  • +4
    что-то мне пока только одни парни попадаются ) Девочек нет совсем?
    • –1
      There are no girls on the Internet.
  • +6
    В случайных людях предложил пообщаться с самим собой )
    • 0
      Fatal error..)
    • +7
      Всегда приятно поговорить с умным и интересным человеком :)
  • 0
    А можно узнать сколько уже людей в базе?
    • +1
      Ровно 200. Пару минут назад было 196: сейчас много регистрируются.

      А до публикации на Хабре было трое, кстати. :)
  • +6
    Вы давно хотели найти себе девушку, которая умеет программировать на Brainfuck?

    А вот задумался, на самом деле очень многие умеют, при чем на уровне Senior Developer. :) Искусство порой передается из поколения в поколение. :)
    • +2
      Senior Brainfucker.
      • +2
        Meet the Brainfockers. :)
  • 0
    В предложениях ключевых фраз при поиске предлагает фразы, которые ни у кого не отмечены (возможно были добавлены а потом удалены?)
    Например, больше никто не ищет умную девушку
    • 0
      Подтверждаю.
      Ввёл фразу типа «Тестирую сайт» при регистрации, потом в профиле удалил, поставил другие, а фраза так и осталась в поиске.
      • 0
        Ну, это скорее фича, чем баг — то есть я это оставил осознанно. Если кто-то захочет снова её добавить, то можно меньше печатать. Но вообще посмотрим.
      • 0
        Вот на что скорее стоит обратить внимание — это на отображение очень длинных фраз в подсказке. Например, попробуйте ввести слово «программист». Наверно, стоит обрезать такие длинные фразы и выводить многоточие (но при выборе вставлять в строку ввода ключевой фразы целиком, разумеется).
  • +2
    Заведите дизайнера, чесслово. Тентакли в полэкрана отвращают.
  • 0
    А ещё хочется сделать расширенный механизм feature detection.

    Например, в IE8 чат просто не откроется, хотя ожидаемое поведение — открывшийся чат и сообщение о том, что надо обновить браузер до чего-то приличного (такое сообщение показывается в стандартном браузере на Android, например). Причём с этим сообщением интересно — оно показывается в том случае, если браузер вообще не поддерживает WebSocket. То есть если браузер уже из тех, где поддержка появилась, но ещё не из тех, где WebSocket последней версии (RFC 6455), то чат отобразится, но работать не будет.

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

    И ещё — один человек написал, что у него чат не работает несмотря на то, что бразер новый. Судя по всему, тут проблема в фаерволле или прокси. Пока что не знаю, стоит ли что-то с этим делать — надо подумать.
    • 0
      • 0
        Спасибо. :)

        На самом деле, о Modernizr я, конечно же, уже знаю. Но он тоже не всё определяет. Например, совместимость реализации WS с RFC 6455 он проверить, к сожалению, никак не сможет.
  • +3
    На Background Dating нету анкет, и нету фильтрации

    Чойта какта коробит от деревенского говора на заглавной странице :3

    И да. Хороший тон — делать возможность входа по опен-айдит в наше время.
    • +1
      Хм, по факту это слово в Питере очень активно употребляется, и почти всеми. Ваш опыт отличается? :)
      • +2
        А ещё в Питере и ещё в массе мест очень активно употребляется пяток других слов, но это не становится поводом употреблять их на сайте.
      • +1
        Паребрики и бордюры это понятно, но «Нету» — это иное, это, как сказал бы нам Word — просторечное выражение :)
        • +2
          <grammar-nazi>«Поребрики» же.</grammar-nazi>
    • 0
      Кстати, небольшое оправдание для меня. Я ведь сейчас на самом деле живу в деревне, причём в черногорской. :)

      Какой уж тут русский язык. :)

      Фотография

      (Снимал с балкона в декабре прошлого года.)
  • +2
    Кстати, автор, очень критичное замечание: «Люблю котов» и «люблю котов» воспринимается сайтом как два разных интереса, хотя различие лишь в заглавной букве. В итоге с интересом «Люблю котов» 5 человек, а «люблю котов» — 1. Думаю, этот косяк сильно ухудшит поиск потенциальных собеседников на сайте.
  • +4
    Теги просто улет, добавляйте больше!

    «пишу на php
    пишу код как мудак
    Употребляю наркотики»
  • +1
    Утомился искать подходящее фото себя размером больше чем 300 на 200. Если сайт про знакомства по интересам, то может не нужно так требовать полноразмерное фото, а достаточно только аватарки?
    • 0
      Не зарегистрировался только по этой причине. Может я не только с девочками собрался знакомиться, мне просто интересно пообщаться с интересными людьми, не моя вина, что в основном это парни. И зачем мне для такого общения фотка нужна хорошего качества?
      • 0
        Фото размером 300 на 200 (или 300 на 300, или 300 на 400 или что-нибудь побольше) — это в наше время уже «фотка хорошего качества»?
  • +2
    Задумка, кажется, интересная, желаю успеха.
    Пока пойду повышу вам популяцию.
  • +4
    Что-то мне кажется, соотношение полов после этого поста начнёт стремиться к бесконечности в пользу М. :)
  • 0
    Как устроен поиск на сайте? Неужели не юзаете sphinx какой-нибудь? Потому что вот например у человека тег «Пишу на Ruby», я пытаюсь ввести просто Ruby, не находит ничего, ввожу «Пишу на Ruby» — нашел. Как-то не очень мне кажется.
    • 0
      Хм, интересно. У меня работает.

      Скриншот

      Но вообще там пока что ILIKE используется (ключевые фразы хранятся в PostgreSQL). Насчёт поискового движка надо подумать — может, и добавим в итоге.
  • +1
    Всего 3 случайных анкеты на огромной пустой главной странице все же имхо маловато :)
  • 0
    Connection refused: backgrounddating.com:80


    Похоже накрыло.
    • 0
      Скорее всего, это я просто nginx перезагружал. :)

      Сейчас трафик не такой большой, думаю — ночь на дворе (в Питере и Москве).
      • 0
        Нет, не просто, до сих пор «Connection refused». Провайдер зарубежный трафик не фильтрует? У меня сейчас американский IP.
        • 0
          Так, возможно, я понял в чём дело. У вас не ipv6 случайно? Дело в том, что у меня там есть AAAA-запись, но HAProxy работает только на ipv4.

          То есть надо либо убрать AAAA-запись, либо разобраться с HAProxy.
        • 0
          Пожалуйста, проверьте ещё раз, сайт теперь работает по ipv6.

          Всё оказалось довольно просто, достаточно было прочитать ещё немного документации. :)
          • 0
            Теперь работает, спасибо. Хотя, насколько я знаю, у меня не IPV6.

            Самое первое впечатление — шапка в виде PNG 326 KB 2 000 x 354 pixels @ 32 bits per pixel — это совсем не комильфо. Я бы даже сказал, ужас-ужас.
            • 0
              326 KiB в наше время это не много. Такое большое разрешение у неё специально для отображения на больших экранах. Вероятно, имеет смысл автоматически определять мобильные устройства и там отображать шапку в два раза меньше.

              А вообще дизайн ещё, скорее всего, будет меняться. То, что изображено на логотипе, кстати, буквально единицы могут определить (обычно думают, что это инфузория или тентакли). :)
              • 0
                Синапс, не?
                • 0
                  Нейрон. :)

                  Синапс — это, по Википедии, «место контакта между двумя нейронами или между нейроном и получающей сигнал эффекторной клеткой».

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

                  Мне вот ещё интересно, все ли понимают, почему background. Но айтишники почти все англоговорящие, так что, думаю, понимают. :)
              • 0
                > 326 KiB в наше время это не много.

                Смотря для кого. Для глючного 3G много.
                Хотя бы jpeg сделайте и порежьте.
    • 0
      Кстати, схема деплоя — отдельный момент. Там haproxy (он используется как балансировщик — плюс у nginx «всё сложно» с веб-сокетами), который в зависимости от домена (самое интересное, кстати, что там можно и по другим условиям делать выбор — в документации много всего описано) отправляет запросы либо на nginx (который в свою очередь отдаёт статику и проксирует gunicorn, с помощью которого работает Django-проект), либо на один из нескольких серверов Tornado (они запускаются и, при необходимости, перезапускаются с помощью Supervisor).

      Я вот, кстати, думаю — если haproxy будет отправлять запросы напрямую к gunicorn (а не через nginx), то будет быстрее? Документации на эту тему довольно мало, к сожалению, но можно почитать официальную документацию haproxy и/или просто проверить.
  • +5
    Так уж сложилось, что у хабра, в основном, мужская аудитория. Так что Вам, автор, в целях избежания гендерного дисбаланса на Вашем ресурсе, нужно срочно найти в интернете женский аналог хабрахабра, где тусуется много умных женщин и опубликовать там эту статью.
    • +6
      Найти не получится, придется создать.
  • 0
    в чате не работает перевод строки
    • 0
      Known issue, но спасибо. На самом деле я уже сделал, чтобы он работал в сообщениях, которые загружаются из истории, но в реальном времени они пока не добавляются. Я скоро это тоже исправлю.
  • 0
    Зарегистрироваться с айпада нельзя, тк на айпаде нельзя выбрать фотографию, а без нее — никак ;(
  • +1
    Чувствую большое будущее у проекта :)
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Ищи фразу «Я девушка :)»
  • +10
    Вы давно хотели найти себе девушку, которая умеет программировать на Brainfuck? Или вам важно, чтобы она была сторонницей адаптивной и семантической вёрстки? А может, вы хотите познакомиться с той, кто может легко рассказать об отличиях микроядра от монолитного, но при этом ещё является танцовщицей?

    Рекламируй для женщин! Для женщин рекламируй!
    А то опять будет мужской клуб
  • 0
    Хотел попробовать, но стало лениво регистрироваться. OpenID не планируете использовать?
  • +1
    Ключевые фразы — это короткие утверждения от первого лица, которых у каждого пользователя может быть сколько угодно.
    Например:
    Был в Калининграде

    Как будто это заграница. Ладно, выставлю тег «Живу в Калининграде», авось, это увеличит мой пени рейтинг.
    • 0
      Ну, я вот, например, хотел бы побывать в Калининграде. Всё-таки расположение у него получилось очень нестандартное.
  • +1
    Забыл пароль. Как восстановить?
    • 0
      На выходных добавим, скорее всего (очевидно, что эта функция одна из самых важных).
  • 0
    Сейчас регистрируюсь и появился вопрос/пожелание/заметка
    При ключевых фразах учитывается регистр, мне кажется, его лучше убрать. Так как многие одно и тоже пишут по разному, а это создает множество «лишних» ключевых фраз, т.е одинаковых.

    • 0
      А можно еще сделать оповещение о личном сообщении на почту?
      • 0
        Да, будет обязательно — я ещё не успел почтовый сервер настроить (а Яндекс бы меня забанил, мне кажется).
        • 0
          Буду ждать.
          Знаете, понравился проект) Успехов вам)
  • 0
    Кроме поиска и случайных, людей больше никак не увидеть? Последние зарегистрированные, например, или еще что.
    (Перебор ID не в счет :)
    • 0
      Пролистывание всех пользователей будет, конечно же. :)
      • 0
        Признавайтесь, что сделали? В случайных людях одни девушки! :)
        • 0
          Да ничего, просто моя сестра в ЖЖ написала. А она биолог и тысячница, и в друзьях у неё в основном девушки. :)
  • 0
    Было бы удобно посмотреть список ключевых фраз, которые уже есть, с сортировкой по количеству людей, по алфавиту и т. д.
    А да, и людей с совпадающими фразами смотреть

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