• Как быстро переключаться между 3 или более окнами в ubuntu?

    zooks
    @zooks
    Frontend
    1. Для начала обновить Ubuntu до последней версии (17.10 для десктопов). Попробовать чистый gnome.

    2. Можно купить такую полезную вещь как трекпад (например Logitech Rechargeable Trackpad T651).
    Инструкция по настройке под Ubuntu здесь: Есть ли дистрибутив линус с мультитач?

    3. Второй монитор помогает навести порядок между окнами.
    Ответ написан
    Комментировать
  • Как правильно использовать 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 комментария
  • Какие алгоритмы нужно знать веб разработчику?

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

    В веб-разработке важно чтобы запрос к серверу занял как можно меньше времени. Для этого нужно быстро обратиться к БД, что-то посчитать и вернуть ответ. Пользователь не любит ждать. Порой нужно использовать техники кеширования данных и некоторые другие оптимизации.
    По-моему, основными факторами задержки являются:
    1. неоптимальные запросы к БД
    2. неоптимальный выбор структур данных и, как следствие, понижение скорости работы и повышенные требования к памяти
    3. повторяющиеся операции в коде
    4. блокирующие операции в коде
    5. неоптимальная отдача статического контента сервером
    Ответ написан
    Комментировать
  • Нормально ли начал на upwork?

    teke_teke
    @teke_teke
    programador
    пополнил ряды индусов, чё. их и так уже больше миллиарда. ну, теперь одним больше. это теперь на всю жизнь. если будут на улице показывать пальцем и говорить "о, пацены, видели, индус пошёл. чё индус, много сегодня заработал? на рис хватит?" - принимай как должное.
    Ответ написан
    2 комментария
  • На что ругается скрипт?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Очевидно же - в ResponseJSON отсутствует ключ 'data'
    Ответ написан
    Комментировать
  • Истина в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Выражение 8 == True не истинно потому, что булевые значения в Python - подтипы целых чисел. True - это фактически единица, а 1 не равно 8.

    В выражении if это срабатывает потому, что в контексте условных выражений производится неявное преобразование числа 8 в булевое значение. То есть интерпретатор сначала преобразовывает число (или что-либо другое) в 1 или 0 в соответствии с правилами преобразования, а потом выполняет с получившимся значение логическую операцию.
    Ответ написан
    Комментировать
  • Как найти файл в pycharm?

    qlkvg
    @qlkvg
    python backend developer
    ctrl+shift+N
    Ответ написан
    Комментировать
  • Как понять какой метод будет вызван в Django?

    @marazmiki
    Укротитель питонов
    А это и не нужно понимать. По крайней мере, я не могу представить такой кейс, когда это действительно нужно.

    Есть методы perform_create() и perform_update() у вьюхи или вьюсета. Есть create() и update() у сериалайзера. Пусть они реализуют конечную логику сохранения или создания объекта.
    Ответ написан
    6 комментариев