• Стоит ли создавать отдельную базу для ключевых слов?

    daMage: индекс - это вы говорите базе - я хочу искать по такому полю часто, организуйка у себя структуру (B-tree), чтоб я мог в 5 шагов найти любое искомое значение.

    Дистинкт -- перебирай все значения в базе, выкидывая те что ты уже выбрала.
  • Нужен ли свежий ветер в зарубежном рынке соц.сетей?

    swcalc: если у вас крутая идея - не стоит ждать. А если нет - то пост на Тостере не сделает ее еще круче)
  • Как правильно построить приложение-парсер?

    **** дисклеймер : я ниже очень усложнил дизайн специально, не стоит писать именно так, уберите лишнее. Это не "правильное" решение, а инфа к размышлению. ****

    MikkiMouse: ну если дизайнить, то давайте подумаем вместе, самое простое что приходит на ум, делаем абстрактный класс AbstractCinema, внутри него абстрактный метод parse(), каждый наследник будет этот метод переопределять и парсить как душе угодно. Вполне себе удобный способ, но с ним одна проблема, теперь дерево классов Cinema будет зависить от метода parse(). Поясню : например у вас есть два наследника от AbstractCinema у которых метод parse() отличается лишь настройками, значит во избежания дубликатов кода, вам придется делать им еще одного общего предка внутри которого определять метод ну и так далее.
    Значит парсинг нужно выносить отдельно сразу. При чем логично предположить что некоторые сайты можно будет спарсить схожими способами, регулярки там, xpath, а для некоторых будет хватать чтения rss-а, или вообще веб-сервис коллы. Поэтому парсинг выносим в отдельный модуль, внутри которого можно будет расширяться как угодно. Во вне он выдаст какой-нибудь фасад, или фабрику, или просто пачку классов.
    Далее, у нас есть инструмент парсинга, теперь нужно его мапить на определенные инстансы Cinema_1..N и передавать параметры. По сути нужен класс с мапой(ассоциативным массивом), в котором вы бы могли записывать что то типа:
    ParserMapping.put('ImaxCinema', { 
                                        parseType : 'XPATH',
                                        params :    [
                                                        {
                                                            name : 'filmsPath', 
                                                            value : '/* ваш XPATH */'
                                                        },
                                                        ... // еще любые параметры
                                                    ]
                                        handlerClassName : 'DefaultXPathParser'
                                    });


    Выберите из писанины выше идеи подходящие вам и используйте. Надеюсь помог)
  • Сертификат coursera бесплатно. Реально ли?

    AUN: пишите в поддержку - пришлют. Он им тоже не нужен) Удачи.
  • Как вернуть код ошибки из метода?

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

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

    П.С. скорее всего метод был бы REST-вызовом, поэтому завернул бы его в какой-нибудь JSON на самом верху, по коду ошибки, но это уже ErrorHandling, чуть другая тема.
  • Как вернуть код ошибки из метода?

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

    Метод isUserAvailable() может возвращать true/false и заменять false на исключение - глупо, но можно пробросить "DB is not available" и вы должны такое поймать и обработать, или пробросить еще выше, пока не будет логического места, где обработчик будет уместен.
  • Как реализовать вывод статистики сообщества вк?

    KATOK9: мне, честно говоря лень гуглить готовые решения, но вам нужно:
    1. Изучить API вк, возможно можно через него получить нужную инфу. Если да - то гуглим примеры и переделываем под себя.
    2. Если API недостаточно тогда придется писать парсер
    2.1 Гуглим "Парсер на PHP" , "Парсер curl", "Парсер curl vk" и т.п.
    2.2 Сначала разбираемся что такое парсер в принципе, спарсите что угодно.
    2.3 Разбираемся как авторизоваться, можно сразу на примере ВК
    2.4 Авторизуемся и парсим нужную страницу.
    2.5 Профит.

    3. --- - еще вариант поищите готовые опен-сурс вещи на github, там можно прямо по коду искать:
    https://github.com/search?q=http%3A%2F%2Flogin.vk....
    но я бы рекомендовал сначала разобраться в вопросе самостоятельно, что такое парсер и с чем его едят.

    как-то так
  • Как вернуть код ошибки из метода?

    @abler Вы имели ввиду строку, типа "object not exists" ?
    Или ошибку как объект? Если как объект то выглядеть это будет типа :
    var error = {
        errorMessage :  'User not logged in',
        errorCode :  'UE001', 
    }


    Такое конечно лучше отдавать, чем просто коды, но выше правильно сказали про эксепшены - самое правильное решение.
  • Какой js-фреймворк выбрать?

    copal: на сайте видео, посмотрите) вышел, но документацию еще не написали. я смотрел давно, но вроде чувак из Фаербейза не особо торопился с ней))) но пользоваться можно, правда я бы в критических аппликухах не решился, а вот себе или админку, вот собираюсь).
    Вот пример:
    https://github.com/davideast/ng2do

    Код что я показал - для angular-а первого, это я себе для приложения админку делал на нем и код оттуда.
  • Почему в проекте файлы/классы группируют по слоям(ModelLayer/UILayer и т.п.)?

    Зависит от возможностей вашего инструментария. Но я проблемы, честно говоря не вижу вообще :)
  • Почему в проекте файлы/классы группируют по слоям(ModelLayer/UILayer и т.п.)?

    Denis Morozov: тогда скорее всего у вас в одном модуле должно быть 2 контроллера и 2 модели. В чем проблема? Остальные 30 контроллеров раскидываете по другим модулям. Это простое решение, в лоб.
    Модуль это не значит: 1с контроллер 1 модель 1 вью.

    Можно еще кучу вариантов придумать:
    Например, выделить такие глобальные модели (например юзер) в отдельный модуль.
    Еще например, настроить ваш сборщик (Maven, Grunt, Gulp) чтобы если вам одна и та же модель нужна в 10 модулях - пусть он ее копирует при сборке.
    Будет чтото типа :
    src
    -- module1
    ---- controller1
    -- module2
    ---- controller2
    -- globalModel
    ---- globalModel1

    build
    -- module1
    ---- controller1
    ---- globalModel1 // это сюда сборщик закинул
    -- module2
    ---- controller2
    ---- globalModel1 // это сюда сборщик закинул

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Было бы желание, а решение найти не проблема :))
  • Какой js-фреймворк выбрать?

    vgbege: я JSом плотно увлекся последние полгода, до этого плотно сидел на J2EE. Может поэтому он мне, наоборот показался достаточно логичным и простым.

    Например, мне кажется такое описание REST-сервиса - очень круто:

    this.instance = $resource('https://api.cloud.appcelerator.com/v1/posts/:methodName',
        {
          key: ACS_API_KEY,
          _session_id : function() { return Session.sessionId; }
        },
        {
          create  :   {method: 'POST',    params: { methodName: 'create.json'               }},
          count   :   {method: 'GET',     params: { methodName: 'count.json'                }},
          query   :   {method: 'GET',     params: { methodName: 'query.json', isArray:true  }},
          show    :   {method: 'GET',     params: { methodName: 'show.json',  isArray:true  }},
          update  :   {method: 'PUT',     params: { methodName: 'update.json'               }},
          delete  :   {method: 'DELETE',  params: { methodName: 'delete.json'               }}
        }
      );


    Даже начал делать себе "стартер-кит", в связке с Phalcon (хотелось очень быстрый REST на PHP).
    Правда я не выложил до конца связанную версию, но можете поглядеть: https://github.com/zo0m/angularjs-phalcon-rest-ze-...
  • Как реализовать вывод статистики сообщества вк?

    den4eg11: вот ваше скорее всего - совсем не уместно:
    "Здравствуйте, есть ли какой то способ реализовать вывод статистики сообщества вк на сторонний сайт."

    раз на сторонний сайт, значит он ее видит в вк. Значит нужно спарсить вк, залогинившись под юзером. Что я не так сказал? По ссылке в гугл какие-то готовые продукты. Можно посмотреть что они предлагают, а можно написать свой.
  • Как вы храните накопленные знания?

    bit_rainbow: хорошие статьи, к счастью, я не замечал чтоб пропадали. Был такой случай, но я решил это кешем гугла.
    Ноутсы да, но честно говоря, видимо не мой кейс. Я складываю в голову концепции\идеи, а ссылки чаще всего содержат развернутую мысль
  • Выбор языка программирования для работы с MySQL?

    дергаете получившийся скрипт планировщиком.