• Какие поля в БД предусмотреть для интеграции с API соц.сервисов?

    GearHead
    @GearHead
    Fullstack разработчик и предприниматель
    как я понял, вы пишете на rails, поэтому посмотрите на OmniAuth.
    Во-первых, я бы вам посоветовал сделать модель аккаунтов в соц.сетях отдельно от профиля пользователя. К примеру, если пользователь ведёт два твиттера.
    Во-вторых, на первое время, если вы делаете только авторизацию, вам понадобится только t.string :adapter и t.string :s_id, где adapter — это к примеру «facebook» или «twitter», а sid — это (кажется) восьмибайтное число, однако которое лучше хранить в строке, если вы к примеру потом будете не только через OAuth интегрироваться.
    Дальше уже вам могут понадобиться разные поля для имени-фамилии, пола, возраста к примеру. У всех соц.сетей они разные, и надо смотреть в доках каждой, что из них вам надо, а что нет.
    Поле пароля вам не нужно. Авторизация в соц. сетях сейчас делается через OAuth и строки-токены, поэтому максимум, что вам понадобится — это поле под token, если вы хотите offline-доступ (т.е. делать какие-то действия с аккаунтом юзера в соц.сети, когда он не на сайте). Подробнее советую посмотреть доки к OmniAuth.
    Ответ написан
    3 комментария
  • Древовидные комментарии

    GearHead
    @GearHead
    Fullstack разработчик и предприниматель
    не надо никаких деревьев и parentID. из-за них вы можете столкнуться с JOIN'ами или проблемой (n+1) запросов. всё проще:
    1) выберите признак, по которому сортируете комменты в топике. к примеру это created_at.
    2) для всех комментов храните created_at и parent_created_at. для корневых кладите в parent_created_at значение created_at.
    3) Выборка ORDER parent_created_at DESC, created_at DESC получает комменты в нужном порядке
    4) при рендеринге проверкой parent_created_at равно created_at — без отступа, не равно — с отступом
    5) ?????
    6) PROFIT дерево комментов с макс. уровнем вложенности равным двум
    Ответ написан
    4 комментария
  • Проблемы с установкой git-commit-notifier

    GearHead
    @GearHead
    Fullstack разработчик и предприниматель
    насколько знаю, при сборки native extension ему не только shared-libraries нужны, но ещё и исходники или заголовочные файлы. не знаю как в centos'e решается эта проблема, но в убунте обычно решается установкой пакета с припиской dev, т.е. libiconv-dev и libxml2-dev.
    И кстати, вы в параметр для include-файлов пихаете путь shared-library.
    Ответ написан
    Комментировать
  • Функция jQuery — антипаттерн God Object?

    GearHead
    @GearHead
    Fullstack разработчик и предприниматель
    Функция jQuery, т.е. сама по себе $(smth) — standalone-функция, возвращающая набор DOM элементов в особой обёртке. Все функции $.smth (к примеру $.each, $.get и т.д.) просто в отдельном пространстве имён. Здесь нет никакого God Object. Иначе отделение мат. функций в объект Math все бы тоже называли этим антипаттерном.
    Ответ написан
    1 комментарий
  • Как определить авторизацию пользователя в Моем Мире?

    GearHead
    @GearHead
    Fullstack разработчик и предприниматель
    максимум, что вы можете сделать — это зная конкретный мыльник, получить его статус (онлайн/оффлайн), либо авторизация через ваш сайт. просто так узнать, авторизован или нет пользователь не получится, политика безопасности междоменных куки и т.п.
    Ответ написан
    Комментировать
  • Тяжелые скрипты и ruby on rails?

    GearHead
    @GearHead
    Fullstack разработчик и предприниматель
    для rails существует не мало написанных скедулеров. общий принцип работы с ними: устанавливаете гем, указываете в инициализаторе настройки запуска, и затем пишете сами задания полностью в скопе rails (с activerecord и прочими плюшками).
    конкретнее можете посмотреть это:
    backgroundrb.rubyforge.org/
    github.com/tobi/delayed_job
    github.com/javan/whenever
    Ответ написан
    Комментировать