• Чем MongoDB лучше ElasticSearch?

    @jaymecd
    JaymecD
    Согласен с un1t и с lega, но есть пара замечаний:
    - elasticsearch: fulltext и комплексный поиск по проекциям (модель для чтения). как основное хранилище не очень советую, т.к. убить ноды это 2 случайных клика в веб морде.
    - mongodb: основное хранилище (модель для записи), гибкая структура данных, скорость записи.

    Посмотрите на mms.mongodb.com - система деплоя, мониторинга и бэкапа mongodb.
    Ответ написан
    1 комментарий
  • Как совместить 2 меню сайта?

    @IceJOKER
    Web/Android developer
    КОД УЖАСЕН
    Если не ваш сайт и пхп не знаете, то какого хрена вы собираетесь что-то там менять?
    Если верстальщик, то смело скажите заказчику, чтоб привели код в порядок или заплатили двойную цену(половину переведете мне и я вам помогу xD).
    А в других случаях - платите.
    Вряд ли кому захочется разбирать такой код, даже если он небольшой
    Ответ написан
    4 комментария
  • Какую лучше взять книгу по C++ для начинающего?

    fuzz0
    @fuzz0
    1. Стенли Липпман - Язык программирования C++. Базовый курс
    2. Стивен Прата - Язык программирования C++. Лекции и упражнения.
    можно и страуструпа нового
    Ответ написан
    Комментировать
  • Правильно ли хранить дополнительные методы в модели?

    @Akellacom
    CTO
    Я считаю что это правильно. Ведь модель для этого и нужна, для работы с базой. Главное чтоб вы не делали дублирование стандартных методов :)
    Ответ написан
    Комментировать
  • Тяжело ли, зная язык программирования на уровне джуниора, найти удаленную работу?

    God-emperor
    @God-emperor
    create a golden path
    Сложно, но возможно.

    Другой вопрос, что не рекомендую. Вам бы опыта и знаний набраться. А без личного общения с Senior'ами это будет напряжно.
    Ответ написан
    Комментировать
  • Верстка в Linux?

    zorro76
    @zorro76
    Я перешел с винды на Ubuntu 3 месяца назад. Все ок и все работает должным образом. Начиная от командной строки и заканчивая редактором. А то что нет полноценного Photoshop это миф. Посмотри тут https://www.youtube.com/watch?v=wjmQJckOATM И собственно зачем Photoshop верстальщику, понятно что для посмотреть макет и нарезать, все. Правда все это можно сделать и на gimp, но тут дело вкуса. Лично я за продукт Adobe assets.adobe Все остальное настраивается и работает на Linux в разы проще и быстрее. node, npm, bower, gulp, grunt, git ... да собственно все, что нужно фронт-энд разработчику. Тот же looftblog выложил видео с настройкой среды разработчика на Linux https://www.youtube.com/watch?v=DfSm7SVq4LA

    UPD: и да сейчас вообще Avocode рулит
    Ответ написан
    4 комментария
  • Лучший мессенджер для обмена исходными кодами?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Чат от GitHub просто создан для вас - https://gitter.im/
    Ответ написан
    Комментировать
  • Помощь в написании конфига gulp.?

    rOOse
    @rOOse
    Frontend developer
    Или просто делать так:
    gulp.task('build', ['clean'], function(){
      gulp.start(['jade', 'css', 'js', 'etc']);
    });
    Ответ написан
    2 комментария
  • Что можно написать на Node.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js

    Часто применяется для:

    1. Локальные приложения и утилиты командной строки
    • Сборщики и трансляторы
    • Пакетная обработка и сценарии отложенной обработки
    • Скрипты, CLI (интерфейсы командной строки)
    • Генерация документации, отложенное формирование отчетов
    • Сценарии тестирования для других систем

    2. Серверы
    • Серверы веб-приложений и SPA
    • Серверы и API для мобильных приложений
    • Любые другие веб-API (RPC, JSON, REST)
    • Серверы сообщений и трансляция событий (чаты, игры, интерактив)
    • Заплаты на уже готовые системы, написанные на других языках, для реализации вебсокетов, SSE, лонг-пулинга и т.д., т.е. для затыкания дыр, для решения проблем в узких местах уже работающих систем.

    3. Клиенты
    • Оконные приложения (nw.js, node-webkit)
    • Кравлеры, парсеры и сбор данных

    4. Железо
    • Программирование микроконтроллеров (arduino, espruino, tessel)
    • Промышленная автоматизация

    Редко применяется (но подходит) для:
    • CMS, публикация контента (просто ниша уже занята и в этой задаче нода не дает чего-то принципиально нового или сверх соблазнительного).
    • Массовая электронная коммерция и торговля (не применяется для массовых движков магазинов, но используется отдельными крупными компаниями для торговых и платежных задач в качестве дополнительного средства к уже имеющемуся ПО, по сути закрывает узкие места).

    И плохо подходит:
    • Вычисления и моделирование, со скоростью математических операций нода и JS, как не типизированный язык, не дают хороших показателей
    • Научные приложения (по тем же причинам)
    Ответ написан
    10 комментариев
  • Как правильно использовать Docker для веб разработки?

    zvd
    @zvd
    Software developer interesting in DevOps
    Добрый день.
    Все, как вы их назвали, «задачи» должны быть по разным контейнерам.

    1. Что брать за базовый образ?
    Что используете то и берите. Используете в работе Debian? Берите Debian ( https://registry.hub.docker.com/_/debian/ )
    2. Чтобы создать свой базовый образ который будете в дальнейшем использовать для приложения, вот вам пример Dockerfile:
    #
    # MyBaseimage Dockerfile
    #
    
    # Pull base image.
    FROM ubuntu:14.04
    
    MAINTAINER Your Name <your.email@gmail.maybe>
    
    RUN apt-get update
    RUN apt-get upgrade -y
    
    RUN apt-get install -y language-pack-en
    ENV LANGUAGE en_US.UTF-8
    ENV LANG en_US.UTF-8
    ENV LC_ALL en_US.UTF-8
    
    RUN locale-gen en_US.UTF-8
    RUN dpkg-reconfigure locales
    
    RUN echo "Etc/UTC" > /etc/timezone
    RUN dpkg-reconfigure -f noninteractive tzdata
    
    RUN apt-get install -y build-essential
    RUN apt-get install -y python python-dev python-setuptools python-pip python-virtualenv
    RUN apt-get install -y libxml2-dev wget
    RUN apt-get install -y libpcre3
    RUN apt-get install -y libpcre3-dev
    RUN apt-get install -y libssl-dev
    RUN apt-get install -y libncurses5-dev
    RUN apt-get install -y git git-core
    RUN apt-get install -y libpq-dev
    
    # install nginx
    RUN apt-get install -y software-properties-common python-software-properties
    RUN apt-get update

    Собрать image в директории где у вас лежит Dockerfile
    docker build -t your_docker_account/your_baseimage .

    3. Dockerfile для сборки вашего образа уже с приложением
    #
    # MyApp Dockerfile
    #
    
    # Pull base image.
    FROM your_docker_account/your_baseimage
    
    MAINTAINER Your Name <your.email@gmail.maybe>
    
    # Set instructions on build.
    RUN virtualenv /env
    ADD ./ /code
    
    RUN cd /code; /env/bin/python setup.py install
    RUN cp /code/config/config.yml.docker_example /etc/code/config.yml
    
    # Expose ports.
    EXPOSE 8484
    WORKDIR /code
    CMD ["/env/bin/python", "app.py"]

    4. Собрать образ с приложением
    docker build -t your_docker_account/your_app_container .

    5. Запустить контейнер с БД, в качестве примера PostgreSQL
    docker run -p :5432:5432 --name my_postgresdb_container -e POSTGRESQL_DB=mydb_name -e POSTGRESQL_USER=mydb_user -e POSTGRESQL_PASS=super_secret_password -d kamui/postgresql

    для mariadb аналонично, контейнеры ищем здесь: https://registry.hub.docker.com/
    6. Запустить контейнер с вашим приложением, пример:
    docker run -d -p :5000:5000 \
      --name my_app_container \
      --link my_postgresdb_container:postgresdb \
      -e DOCKERDB_ENV_POSTGRESQL_DB=mydb_name \
      -e DOCKERDB_ENV_POSTGRESQL_USER=mydb_user \
      -e DOCKERDB_ENV_POSTGRESQL_PASS=super_secret_password \
      your_docker_account/your_app_container

    7. Подключиться к запущенному контейнеру с приложением
    docker exec -it your_app_container /bin/bash
    8. Читать stdout запущенного приложения в контейнере
    docker logs -f your_app_container

    + Чтобы автоматизировать запуск всех необходимых контейнеров берите Docker Compose ( https://docs.docker.com/compose/ )
    Пример файла конфигурации:
    your_app:
      build: .
      links:
        - postgresdb
      ports:
        - "5000:5000"
      environment:
        DOCKERDB_ENV_POSTGRESQL_DB: mydb_name
        DOCKERDB_ENV_POSTGRESQL_USER: mydb_user
        DOCKERDB_ENV_POSTGRESQL_PASS: super_secret_password
    postgresdb:
      image: kamui/postgresql
      ports:
        - "5432:5432"
      environment:
        POSTGRESQL_DB: mydb_name
        POSTGRESQL_USER: mydb_user
        POSTGRESQL_PASS: super_secret_password

    И теперь вместо пунктов 5 + 6 где мы запускали контейнеры мы можем всё стартануть одной командой
    docker-compose up

    + можно смонтировать код в контейнер и разрабатывать непосредственно в docker'контейнере.
    Надеюсь чем-то вам помог.
    Ответ написан
    3 комментария
  • Grunt vs Gulp vs Prepros vs Codekit?

    uam
    @uam
    использую галп, потому-что быстрее и если подключать и настраивать множество плагинов, конфиг остается читаемым
    Ответ написан
    Комментировать
  • Как вы проводите свободное время?

    Vestail
    @Vestail
    Software Engineer
    Я лично на гитаре играю:)
    Музыкальные инструменты очень хорошо помогают отвлечься от грубых технических дисциплин и на некоторое время посветить себя прекрасному. :)
    Ответ написан
    Комментировать
  • Данные обновились на сервере. Как сообщить клиенту?

    @ForveAvar
    Тут 2 опции - или Server Sent Events или WebSockets
    а тепер ви должны решить что для вас лучше.Тут размышления что лучше
    Ответ написан
    Комментировать
  • Разделены ли учётки тостера и Хабра?

    @asdz
    Проверим?
    Ответ написан
    Комментировать
  • В чем писать конспекты?

    Ranwise
    @Ranwise
    попробуйте gitbook
    маркдаун, latex-формулы поддерживает, подсветка кода есть
    Ответ написан
    Комментировать
  • Как не утонуть в океане информации?

    @andrew011010
    Front-end разработчик
    Помогает разделение процессов накопления и сортировки.

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

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

    В хранилище:
    1. Если материал касается какой-то важной темы, то эта тема есть в Evernote, туда он и отправляется.
    2. Если материал имеет общий характер, не связан напрямую с моей деятельностью, то он отправляется в папку соответствующей темы в разделе "Темы" в закладках браузера.

    Работа по проекту:
    Создаю файл в папке с проектом, куда закидываю линки на актуальные для проекта материалы, даю им краткие описания. По ходу работы количество линков растёт, появляется возможность их сгруппировать, даю группам заголовки.
    После того, как работа над проектам завершена, распределяю эти линки по темам в Evernote.
    Ответ написан
    1 комментарий
  • Есть какие-нибудь ресурсы по построению правильной серверной архитектуры на node.js/io.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Архитектурные принципы не очень связаны именно с нодой, они будут примерно одинаковыми, на каком бы языке вы не писали. Первое, что я могу посоветовать, когда Вы переходите от технологий программирования к архитектуре систем, это как переход от кладки кирпича к архитектуре зданий - нужно отложить все шаблоны, которые Вы знали до того и подняться на другой уровень абстракции. А именно, нужно перестать мыслить такими понятиями, как DI (dependency injection), REST, MVC, ORM, RPC, шаблонизаторы, компоненты, сокеты, промисы и прочее - это все технологии. Что же нужно понять это: слои (layers), модули, контракты, адаптеры, клиент-сервер, 3-звенная архитектура, микросервисы, СМО (системы массового обслуживания), и т.д. Где так все собрано в одном месте - не могу сказать, я лично по крупицам все осваивал, на что положил 20 лет профессиональной деятельности. Почитайте про ISO/OSI, загляните в три мои статьи habrahabr.ru/post/227753 и habrahabr.ru/post/204958 и habrahabr.ru/post/117791 Раньше хорошие статьи по архитектуре были на www.osp.ru но, к сожалению, давно не читал его. Можно начать с книг Гради Буча и освоения UML, этот дядька сформировал достаточно полный подход и методологию проектирования программных систем, которая ведет правильным путем, но на практике, в каждом отдельном случае может быть заменена интуицией архитектора и существенно упрощена. Удачи!
    Ответ написан
    6 комментариев
  • Как написать самую простую форму на PHP с отправкой данных на E-Mail?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нужно написать самую простую форму обратной связи из 2-х полей

    Пиши.
    Ответ написан
    Комментировать
  • Книги по пониманию программирования?

    @Quirel
    Уже не раз обсуждалось подобное.
    SICP
    В оригинале (на англ. языке) распространяется бесплатно. Там же есть официальные видео лекции.
    Ответ написан
    Комментировать