• Деплой Django: nginx + guricorn?

    @pcdesign
    Попробуйте пока без сокета, а просто на порту каком-нибудь

    gunicorn posuda_shop.wsgi:application -bind localhost:8001


    Убедитесь, что все работает на порту 8001.
    Дальше можно создать и сервис и в nginx прописать.
    А потом если сильно захочется то сделать сокет.
    Ответ написан
    1 комментарий
  • Как сменить язык пользователю на сайте Django?

    zenwalker
    @zenwalker
    0xABADBABE
    Вместо 'django_language' используй константный LANGUAGE_SESSION_KEY из django.utils.translation. Думаю проблема в этом. Сейчас ты сохраняешь яызык в сессию под каким-то левым ключем. У LANGUAGE_SESSION_KEY не такое значение.

    from django.utils.translation import LANGUAGE_SESSION_KEY
    
    def select_lang(request, code):
        ...
        request.session[LANGUAGE_SESSION_KEY] = code
        ...
    Ответ написан
    3 комментария
  • Как вы деплоите django приложение на сервер?

    @artinnok
    бекенд-программист
    Исходя из вашего вопроса - "деплой" это разворот сервера с нуля до рабочего состояния.

    Все зависит от количества деплоев:
    1. Если вам достаточно задеплоить 1 сервак и забыть про него - проще поднять руками.
    2. Если вы постоянно разворачиваете > 2 серваков - однозначно надо использовать автоматизированные инструменты.

    Рассмотрим несколько популярных инструментов:
    1. Ansible - на мой взгляд самый удобный инструмент для быстрой и удобноый работы с парком серверов, устанавливает весь софт и настройки на вашей VPS.
    2. Docker - позволяет создать на вашей VPS еще одну виртуальную машину с заранее прописанными настройками и софтом, также его иногда используют для параллельного запуска нескольких БД / веб - серверов и т.д.
    3. Также есть Puppet, Chef, Salt - ими не пользовался.

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

    Тут все зависит от размеров проекта:
    1. Если проект маленький / средний fabric вполне справляется с такими задачами, как подтянуть изменения из репозитория / собрать статику / перезагрузить nginx и т.д., но использовать его для разворота сервера - это тяжелая работа, которую проще делать с помощью других инструментов (описано выше). Сам я тоже использую fabric для обновления прода.
    2. Если проект большой и приближается к хайлоаду - то надо использовать Continuous Integration, это позволит вам сделать автоматизированную выкладку кода на боевой сервер - к примеру, пушите коммиты в репозиторий на github, срабатывает хук, начинает работать Jenkins, идет прогон тестов, при успехе тестов обновляется прод.

    Инструментов для CI много:
    1. Jenkins - простой и бесплатный, с кучей расширений и прочих плюшек.
    2. Travis-CI - бесплатный для опен сорс, платный для приватных проектов (69$ минимальный план).
    3. Buildbot, tox - не использовал.

    P.S. Я думаю, что понятие "деплой" - это выкладка изменений на боевой сервер. То, что делаете вы - создаете новый сервер, разворачиваете окружение - ближе к развороту сервера. Если так делается каждый раз, когда льются изменения на боевой сервак - надо менять workflow.
    Ответ написан
    13 комментариев
  • Зачем нужны приложения?

    sim3x
    @sim3x
    А что с главной страницей?
    создай апп с названием core || common || main || etc и сделай там вью со своей главной

    Т.е. сама основа на которой хедер, футер и в нее уже контент этих приложений вставляется.
    основа верстки ложится в темплейт, основа контекста, может ложится в core

    Ее что отдельным приложением сделать?
    если какая-то часть задачи сильно отличается от дргуих - ее можно вынести в апп

    В общем случае, нужно стараться делать такие аппы, которые можно поместить в пакет и переиспользовать в другом проекте, но не проблема, если так не получается
    Ответ написан
    4 комментария
  • Django отложенный постинг на сторонний ресурс, как реализовать?

    @deliro
    Создать management комманду, которая получает выборку из ещё не запосченых постов, которые уже пора запостить и постит их.
    Раз в 1/5/10 (как хочешь) минут вызывать эту команду cron'ом (или celery beat)
    Ответ написан
    3 комментария
  • Как называть классы CSS?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    кароч рассказываю как один раз меня самого научили, когда я еще был новичком и не смыслил в вебе. итак:
    1) идем на сайт лаборатории касперского
    2) находим любую базу сигнатур
    3) и просто берем по порядку названия сигнатур и обзываем ими наши классы
    4) профит)

    p.s. а самое прикольное - если этот метод использовать на фрилансе предварительно составив файл replace для себя, который к каждому такому классу будет иметь соответствующий нормальный класс - то без проблем можно отдавать верстку на проверку без скайпов тимвиверов и т.д.
    даже если кинут - пускай радуются такой верстке) файл replace с нормальными классам же тока у вас будет)
    Ответ написан
    4 комментария
  • Где взять макеты psd, сверстав которые можно показать в портфолио?

    xPomaHx
    @xPomaHx
    1vs9
    Писал уже 100 раз, просто пошерстите заказы на фриланс биржах, многие выкладывают макеты прямо в описание. Это будет вам опыт максимально приближенный к реальным условиям.
    Ответ написан
    2 комментария
  • Как верстать руководствуясь одновременно "pixel perfect" и "mobile first" подходами?

    zooks
    @zooks
    Frontend
    Начал верстать на bootstrap

    Он нужен для макетирования, не для нормальной верстки.

    Mobile First у вас в принципе нет. Почитайте про наследование в CSS.
    Ответ написан
    Комментировать
  • Как верстать руководствуясь одновременно "pixel perfect" и "mobile first" подходами?

    @metaf
    Бывает сложно верстать mobile-first, потому что нету дизайна того самого mobile, или вообще не знаешь что нужно будет делать адаптив...
    Я в таком случае уже в готовой десктопной верстке "чищу" все от разметки для десктопа, заворачиваю отступы и размеры где указаны в min-width: (~ширина макета) и начинаю размечать все для 0+, выставляя ширину в браузере 320. потом для ~ 600+ (больших телефонов и планшетов) - тут зачастую нужно совсем немного правок. И вообще не выношу никуда стили в отдельные файлы, все в одном классе, то есть
    .my-class {
    	color: red;
    	@media (min-width: 600px) {
    		color: green;
    	}
    	@media (min-width: 1200px) {
    		color: black;
    	}
    }

    Так вам дублировать не придется, все будет в одном месте, в коде будут видны стили для всех разрешений.

    С pixel-perfect особо не увлекайтесь, многие дизайнеры отступы расставляют как попало. Просто проверяйте чтобы примерно совпало.
    Ответ написан
    1 комментарий
  • Как правильно разработать CRM-систему с нуля с архитектурной точки зрения?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1) На сколько верным было решением использовать node.js и mongo?

    Вопрос во многом холиварный. CRM это по определению много-много реляционных данных. Хранить это в любом nosql - я лично считаю очень плохой идеей. Особенно когда через полгодика пойдут change request`ы и выяснится что вещи которые в реляционке делаются за пару минут в nosql могут потребовать изменения архитектуры хранения и занять человеко-недели.

    3) Сайтов у компании - масса, большая часть которых - лэндинги на чистых html с php-скриптом на почту. Все заказы ссылаются на единый gmail-ящик. Можно ли грабить эти данные из ящика, чтобы отправлять их в облако?

    Можно. Но с учетом того что доставка email вообще говоря не гарантирована - завязывать один из ключевых бизнес процессов на это выглядит мягко говоря странно. По хорошему - сделать в вашей CRM, API наружу для формирования заказов и переписать все сайты для работы с ним.
    * Странно что Ваш программист не может ответить на этот вопрос с закрытыми глазами

    4) Какие существуют удобные облачные сервисы, которые предоставляют API для node.js?

    Я рискну предположить что ЛПР где то услышал про облака и ему понравилось. На полном серьезе отдавать весь бизнес контент во внешний сервис - это надо или полным идеалистом быть, или просто не понимать о чем речь идет. Только свои железные сервера, только физическое резервирование.

    5) Какова примерная стоимость подобного проекта в $ ?

    Смотря где вы находитесь, насколько легально все это оформляете
    В Мск приличного разработчика сейчас можно найти за 100-120 т.р. net, в регионах на 40-60 net (от региона зависит).
    Сколько их нужно - без ТЗ сказать нереально, но думаю что оценка снизу это 3-4 разработчика
    +тимлид 100% +project manager 100% +аналитик на старте +дизайнер по желанию +devops на аутсорсе итд

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

    @GeraldIstar
    Frontend
    Не могу ответить на все вопросы, но на мой взгляд если используете python - берите django. Он более предназначен для крупных проектов.
    Node.js - более ориентирован на микросервисную архитектуру. Если умеете ее готовить - то ради бога, но целиком на ноде делать думаю не стоит. Монгу стоит использовать только в случае если вы действительно понимаете отличия РСУБД от mongo.
    3) Думаю это не проблема.
    4) API для облачных серверов - а там какая разница, что за язык будет? Разве что наличие уже подготовленной либы.
    5) Больше 1 миллиона точно.
    Ответ написан
    1 комментарий
  • Как правильно хранить настройки в django проекте?

    your_project_root/your_project_name/settings/
    ├── base.py
    ├── development.py
    ├── __init__.py
    ├── local.py
    ├── production.py
    └── testing.py


    base.py - глобальные настройки
    testing.py - тестовый сервер
    production.py - рабочий сервер

    local.py игнорируется VCS и содержит ссылку на актуальный файл настроек + необходимые, скажем, данному конкретному разработчику коррективы, скажем доступ к его локальной СУБД:

    from .testing import *
    DATABASES = ...


    __init__.py:
    from .local import *

    И всё.
    Ответ написан
    Комментировать
  • С помощью чего работать на Python 3 с MySQL?

    kentuck1213
    @kentuck1213
    pip install pymysql
    в my_projects/__init__.py :
    import pymysql
    pymysql.install_as_MySQLdb()

    подключение к базе :
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'db_name,
    'USER': 'root',
    'PASSWORD': '123',
    }
    }
    Ответ написан
    1 комментарий
  • Заказчик постоянно все меняет?

    delphinpro
    @delphinpro
    frontend developer
    По-моему, вам просто захотелось поплакать :)
    Это же самые обычные будни разработчика. Один раз написали, потом месяцами дорабатываем/перепиливаем, поддерживаем в общем. Поддержка оплачивается. Всё норм.
    Хочется творчества, полета мысли, реализации всех своих знаний - запилите собственный стартап и расслабляйтесь :)
    Ответ написан
    1 комментарий
  • Заказчик постоянно все меняет?

    Denormalization
    @Denormalization
    Работа есть, оплачивается, в чем проблема? Это работа, а не десткий сад.
    Нравится\Не нравится - это дело десятое.

    но я не хочу постоянно переделывать, я хочу сделать - сдать -и на новый уйти

    Не берите long term работу. Long Term как раз таки подразумевает поддержку своей работы, и заставляет делать ее так, чтобы потом не было больно переделывать.

    Вообще long term работа сильно правит мозги, и очень быстро отучает писать говнокод, который невозможно поддерживать.
    Так как когда понимаешь, что чтобы изменить кнопочку - нужно переделать пол проекта... это заставляет задуматься над качеством своей работы.

    такое возможно только если у заказчика есть четкое понимание всех хотелок которые реализовал дизайнер

    Это надо в сказку переехать. В реальности такое бывает в 0.00001% случаев. Если заказчик не просит что-то переделать - значит его просто жаба давит платить еще. И жаба сильнее чем дискомфорт от "недоделки".
    Ответ написан
    8 комментариев
  • Стоит ли брать небольшую, в плане времени и оплаты, работу на фриланс биржах?

    pozZzitiv
    @pozZzitiv
    Дизайнер и перфекционист
    А что плохого в задачах с небольшим бюджетом? Почему вы их стесняетесь? Это палка о двух концах.

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

    Все просто =)
    PS Я вот не стесняюсь взять заказ даже на 500 рублей.
    Ответ написан
    5 комментариев
  • Как исправить объявление на Freelancim о поиске веб-разработчика - сейчас совсем нет откликов?

    @mantyr
    Пишу много Golang кода с удовольствием:)
    Вам стоило составить конкретное и точное описание ТЗ по задаче, что бы программист не ломал голову где начинается одно и заканчивается другое.

    Например. Заголовок "Python-Django - сделать авторизацию и сервис вопросов, постоянное сотрудничество"

    Требуется Python-Django разработчик, для регулярной или периодической работы:
    - указывайте стоимость работы за час - это поможет нам сориентироваться по тому сколько будет стоить ваша работа
    - оцените первую задачу по времени и по стоимости (можно без учёта стоимости часа работы, так как мы понимаем что специфика у каждой задачи своя, сложность, трудоёмкость), в качестве времени укажите не количество часов которые потребуются если делать задачу за раз, а исходя из того когда вы сможете сдать работу.

    Задача: Сделать шаблонный сайт на django:
    - авторизация
    - регистрация
    - логаут
    - восстановление пароля
    - смена пароля

    - функционал "вопросов и ответов"
    -- создание вопроса - ввод само текста вопроса, плюс от 2 до 5 вариантов ответа
    -- сохранение, просмотр, редактирование и удаление вопроса
    -- отправка вопроса в мобильное приложение в требуемом формате

    Для оперативной работы напишите по скайпу: {ваш скайп}
    Ответ написан
    2 комментария
  • Как подключиться к MySQL в Python3 на маке?

    kentuck1213
    @kentuck1213
    pip3.5 install pymysql
    затем в settings.py
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'base_name',
            'USER': 'root',
            'PASSWORD': '123'
        }
    }

    затем в __init__.py
    import pymysql
    
    pymysql.install_as_MySQLdb()
    Ответ написан
    Комментировать
  • Как настроить ssl cloudflare? Какие альтернативы этого сервиса для Российской аудитории?

    @sergeystepanov1988
    Включаем flexible SSL (не требует установки сертификата на самом сервере):
    069d35b3b19a4aa7aea54b42c21b3a9b.png
    Включаем кэширование на сутки (страницы будут отдаваться из кэша, который обновляется раз в сутки):
    cd611509ae2c4a6ab8026f786945155c.png
    Включаем минификацию HTML, CSS и JS (ускоряет загрузку страниц):
    47982e5822024e29a18822a1083db738.png

    На счет nginx: на cloudflare уже стоит nginx, который настроен на кэширование. Нет необходимости кешировать на своем сервере. Иначе будут проблемы при разработке, придется выключать кеш и там и там. На cloudflare можно включить development mode чтобы отключить кэш на время разработки (на втором скриншоте видно эту опцию).
    На счет Varnish: не имел с ним дело, поэтому могу ошибаться, но по-моему его используют когда нужно частичное кеширование динамических страниц. То есть например шапка сайта динамическая, а остальное из кеша.
    Вообще эффективное использование кеша это вопрос скорее для разработчика чем админа.
    Ответ написан
    4 комментария
  • Возможна ли переквалификация в разработчики после 30 без профильного высшего образования?

    copist
    @copist
    Empower people to give
    Не будет смены специальности без потерь. К потерям надо готовиться. Семье надо объяснить причину смены специальности. Потери будут либо в деньгах, либо в свободном времени.

    В свободное (очевидно, внерабочее) время читать, смотреть, думать и делать pet projects - в этом я не оригинален. Иллюзий по поводу программирования питать не надо. У многих разработчиков 12-14 часой рабочий день, особенно у фрилансеров: 4-6 часов покодить + время на поиск новых заказов + время на общение с старыми/новыми клиентами + время на организационную деятельность + время на маркетинг самого себя. Офисные программисты работают несколько свободнее по времени, но уверен, что многие после работы ещё вштыривают проектик для себя или шабашат по мелким заказам.

    Хочу озвучить ещё четыре варианта.

    1. Мне известны уже несколько случаев, когда человек уходил на сдельную работу или на 1/4 ставки или на почасовку на основном месте работы и увеличивал количество часов на изучение второй специальности. Или устраивался на новое место на почасовку или на четверть ставки для стажировки, а то и на должность джуна. Сам так делал. Очень эффективно.

    2. Выходные, праздники и отпуск не для ремонта или отдыха, а для ускоренной реализации своих проектов. Я кучу людей знаю, которые работают без отпуска, включая махинации с увольнением/восстановлением, чтобы просто получить компенсацию и работать дальше. Не вижу ничего сложного в том, чтобы отпуск потратить на стажировку или самообразование. Если новая работа приносит удовольствие, то можно развернуть свои собственные мысли так, чтобы новая работа считалась отдыхом (самомотивация, аутотренинг, самогипноз - называйте как хотите). Не замечали, что 8 часов нелюбимой работы тянутся долго-долго, а 8 часов любимого занятия (хобби, увлечение) пролетают незаметно?

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

    4. Попробовать совмещать должности на старом месте работы. Попросить руководителя дать несложную работу из соседнего отдела программистов. Я сам встречал маркетологов-программистов, аналитиков-программистов, менеджеров-программистов. Им просто это интересно. При этом зарплата будет прежняя, а может быть повысится - как договоритесь. Ещё можно уговорить послать на курсы переквалификации, организация оплатит и время и курсы - ничего не потеряешь.

    Ещё варианты плавного перехода придумать?

    Кто хочет - найдёт 1000 способов, кто не хочет - найдёт 1000 причин (Конфуций)
    Ответ написан
    6 комментариев