• В каком файле хранить переменные окружения?

    werevolff
    @werevolff
    s1zen, что вы имеете ввиду под "хранить"? Файл .env используется только потому, что его по-дефолту читает Docker. И читать его он предпочитает из корня проекта. Но этот файл нельзя хранить в репозитории. Храните его на зашифрованной флешке, например. Но при запуске проекта локально он должен быть в корне проекта.

    Что касается продакшена, то суть не в .env файле, а в переменных окружения, которые хранятся в os.environ и получаются методом os.getenv(). То есть, переменные хранятся, по сути, либо на диске, либо в ОЗУ. Файл .env лишь избавляет вас от необходимости вручную прописывать эти переменные при запуске инстанса. И на проде он не нужен. Точнее, ему там лучше не храниться. Лучше, если переменные существуют только в ОЗУ. Но, если вы не планируете использовать Docker, то храните на production сервере в папке с ограниченным доступом, а при деплое копируйте в корень проекта. При старте сервера используйте какой-нибудь python-dotenv, как вам предлагали, чтобы прочитать файл из корня и добавить переменные в os.environ.
  • Почему не успевает обработать сообщение?

    werevolff
    @werevolff
    merchfck,

    1. Как я понимаю, respSoc - это не сокет и не респонс от сокета, а полученная строка. Нафига её называть respSoc? Чтобы врагов запутать?
    2. Вот от первого пункта и танцуем. У нас есть строка respSoc. У нас есть вывод:

    print(current_time, messageNick, channelChat, '-', messageChat, end="\n")


    Другого Output я здесь не вижу - только этот. Получается, что артефакты вывода получаются из-за того, что respSoc иногда принимает неожиданный вид, и в процессе парсинга (.find('something')) находится разная шляпа. Поэтому, необходимо:

    1. Добавить перед основным print что-то вроде

    print(f'{respSoc}\n')
    print(current_time, messageNick, channelChat, '-', messageChat, end="\n")


    2. Посмотреть, как выглядит respSoc непосредственно перед ошибочным выводом.
    3. И вообще, не понимаю, почему у вопроса средняя сложность: дебаг не проведён, нет никакой информации как запускается бот (сколько потоков, процессов и т.д.). То что вы сами не понимаете, как дебажить свой код и искать, на каком шаге происходит проблема, не делает задачу сложной.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24, Как я уже и говорил: лучше устроиться в студию. Там будут проекты на разной стадии оптимизации, будут готовые рецепты, корпоративная база знаний. Один свой сайт ничего не даст.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24, я выше писал: в основе SEO лежит контент-менеджмент, дизайн интерфейса и вёрстка. Но делается неплохой упор в сторону разработки. Плюс, продвижение сайта приносит регулярный доход с постоянных клиентов и не требует искать новых, либо постоянно пахать, чтобы сдать работу в сжатые сроки.
  • Какой приоритет операций в данной ситуации с None, is и !=?

    werevolff
    @werevolff
    love_energy, пожалуйста. Если это вопросы от инженера при приёме на работу, не советую к нему идти: будет писать говнокод, но гордиться своими изысканными знаниями операторов сравнения.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24, тогда SEO будет решением. Это и контент-менеджмент, и работа со фронтом. И базу знаний даёт огромную. SEO отвечает на вопрос: "зачем человеку нужен сайт"? Рекомендую.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24, Я лично начинал SEOшником. Сейчас - фуллстек разработчик на аутсорсе за валюту. Не жалею о том, что пошёл в офис. Это стабильность, это дохрена свободного времени, это команда и опыт. Жалею, что сразу в офис не пошёл. За пол года работы я стал руководителем группы поискового продвижения в студии, а так, мы часто брали людей, которые вообще ничего не знали. Как-то было время, когда руководство нам давало людей, которые не умели компьютер включать.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24, самый простой способ найти готовую команду и получить в ней полный опыт - это вэб-студия. Им верстальщики нужны всегда, поскольку чазастую программисты - фуллстек, и у них нет времени делать попиксельную вёрстку. Можно поискать удалённые команды, но, скорее-всего, там спрос на верстальщиков во много раз ниже. Работа в офисе приятна тем, что там часто остаётся дофига свободного времени. Особенно, у верстальщика. Его можно тратить на фриланс. Плюс, там стабильная оплата и всегда есть те, кто поможет с изучением того или иного вопроса. СЕОшники часто берут низкоквалифицированных людей для обучения. Можно к ним податься.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24, Вообще, если говорить про управление командой, то менеджер, который когда-то был знаком с программированием, в командах часто сам наполняет сайт. Нет, когда там надо внести, допустим от 200 позиций, и это не трудно, команде проще набрать студентов или низкооплачиваемых сотрудников, если работа разовая. Сам менеджер знаком с основами UI/UX, имеет навыки коммуникации, может перевести требования заказчика на язык разработчика (C-требования и D-требования по классификации Эрика Дж. Брауде https://www.labirint.ru/books/100829/), собственно, знаком с моделями разработки, CI, CD, видами и техниками тестирования продукта (не умеет это делать, но знаком), Scrum/Agile, и т.д.

    А если говорить про частности, то заказчик, не разбирающийся в вэб-технологиях считает, что вывод сайта в топ поисковых систем и постоянное его обслуживание - это гарантия разработчика. Поэтому, когда ты говоришь, что хочешь быть топовым разработчиком, я вижу это как "хочу пилить сайты, быстро сдавать их и получать много денег", но так не бывает. Команда и студия чем полезна: они называют заказчику честную цену и ведут все процессы заказчика. Менеджер наполняет сайт, другой менеджер ведёт переговоры, третий - управляет разработкой. Четвёртый - принимает сайт и запускает SEO. Пятый проводит доработки и наполнение контентом. Очень часто заказчик не только хочет наполнить сайт, но ему, допустим, не нравится кнопка - надо переделать. Не нравится цвет и стиль. Хочет иллюминацию на Новый Год. Но он пришёл, допустим, в студию или к команде на фриланс, ему назвали цену, которая сложилась из совокупной стоимости владения и выручки команды. Допустим, 20 000 разработка, 2 000 в месяц - поддержание сайта в рабочем состоянии (плюс время менеджера, который будет принимать от него заявки и наполнение не более 10 страниц, а также, хостинг и отложить на продление домена), отдельно - доработки, отдельно 20 000 в месяц SEO. И тут yskl24 предлагает разработку, скажем, за 5 000. И заказчик думает, что это будет цена за всё. Он не понимает, и ты не понимаешь. А ты эти деньги проел, потратил, и уже не хочешь наполнять что-либо. Заказчик психует и идёт в студию, а студии твоя поделка не нужна: они не могут продвигать такой сайт и вносить доработки, поскольку у любых конструкторов присутствуют ограничения. Они перепишут сайт на CMS за названную выше цену. В итоге, у тебя в портфолио этот сайт становится чужим, с другим дизайном и шильдиком студии. Лэндинги тоже требуют обслуживания, причём, зачастую, они меняются постоянно, а в идеале, у заказчика на разные промо каждый месяц запускается по несколько лэндингов, поскольку заказчик оперирует не параметром "2 лэндинга", а параметром "2 промо-акции" или "2 разные услуги". И ему нужен менеджер, который раскрутит эти услуги с этих лэндингов. А это уже не UI/UX, а SEO + SMM. И цены там совсем другие. Лэндинг будет стоить копейки, а ведение всего бизнеса - 20 - 40 тысяч в месяц. Для команды из менеджера + программиста и при расходах на закуп ссылок это копейки. Надо иметь не менее 4 - 5 заказчиков постоянных. Нет смысла искать новых: рынок ими не какает. В любой момент времени, в одной нише на рынке присутствует приблизительно одинаковое количество заказчиков, готовых платить за продвижение своих проектов, а вот число заказчиков, готовых платить за новый проект - не постоянно. Поэтому, держать при себе заказчика и обслуживать его хотелки выгоднее, чем искать новых. И это всё - плоскость SEO, маркетинга и управления проектом. А есть ещё другие плоскости: UI/UX и управление командой, как пример.
  • Как сделать интернационализацию в шаблонах Django?

    werevolff
    @werevolff
    TEMPLATES в settings.py прописаны? Может, джанга хочет, чтобыпуть к шаблонам был явно прописан?
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    cucumber111, Я думал, вы к осени бросите работу и займётесь вёрсткой. Тогда будет ЦЗН, да. Вообще, даже вёрстка отнимает дофига времени. Совместить можно, но сложно. За комп садишься, начинаешь работать, и часы жизни летят как в трубу. А с утра хуже, чем с похмелья.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24,
    я знаю человека который без фреймворков создает сайты.


    Всё верно. Но это не топовые разработчики. С твоим багажом знаний тебе будут давать самые простые задания на вёрстку. Да, есть конструкторы сайтов, которые позволяют без знания программной части делать проекты, но эти проекты не будут топовыми, и цена такой работы будет минимальной при том, что нужно в идеале знать конструктор, вёрстку, стили и маркетинг. Помимо самой вёрстки есть ещё SEO, знание которого обязательно при разработке на конструкторе. Многие специалисты приходят с таким же багажом: знают как сверстать страничку и больше ничего. В вэб-студиях они могут выбрать направление своего развития. Чистые верстальщики - это низкооплачиваемый труд, сравнимый с трудом грузчика. Для полноценной работы в Web нужно знать:

    1. Основы протокола HTTP.
    2. Основы работы Nginx/Apache2
    3. Свойства элементов HTML.
    4. Разные спецификации HTML и их применимость в разных версиях браузеров.
    5. Стили: адаптивность, анимацию на CSS.
    6. Микроразметку и семантическую вёрстку.
    7. Sitemap/robots.txt. Основы их чтения поисковыми роботами.
    8. Основы перелинковки, вес страницы.
    9. Основы устройства доменной системы. Что такое DNS, A-запись. Также, нужно понимать как это настраивается, а если работать на фрилансе, то нужно знать и понимать правовые основы вопроса.

    И это далеко не полный перечень. Говоришь, что знаешь вёрстку? Ты придёшь, допустим, ко мне в команду, и я спрошу тебя real-time:

    1. Чем отличается блочный элемент от inline?
    2. Как построить grid на flex? Что такое flex, как он отрисовывается?
    3. Попрошу выбрать в Css что-то сложное: только первого потомка от Div, всех соседей элемента.
    4. Спрошу как поисковые роботы читают H1-H6.
    5. Попрошу набросать простейший скелет на HTML с картинками и семантическими элементами, прикопаюсь к непроставленным alt у картинок.
    6. Спрошу как стандартно рисуются браузерами section, header, footer, img, tr, td и т.д.
    7. Попрошу рассчитать индекс специфичности для Css правила и рассказать мне про каскадирование.

    Если ты всё это знаешь, то я конечно, не совсем понимаю, что ты забыл сейчас на фрилансе - тебе пора работать в удалённых командах. И то, за копейки, поскольку ты не знаешь Sass/Scss и похожие фрэймворки. Не знаешь что такое БЭМ и не организуешь свою вёрстку.

    А с твоими текущими знаниями ты и на фрилансе особо не нужен, поскольку конкуренция там высокая. А разработка на конструкторах - тем более. Это низкоквалифицированная, низкооплачиваемая ниша, и её уже заняли люди, сбившиеся в команды, с офигенным портфолио. Плюс, эти люди в идеале знают свои конструкторы и делают работу быстро, решая сложные вопросы в считанные минуты. Они знают и правовые основы, что позволяет им не остаться без штанов, а заказы им ищут менеджеры. Ну иди, пободайся с ними. Потом сам побежишь в web-студию набираться опыта. Там выберешь чем хочешь заниматься. Как-правило, люди твоего профиля уходят в SEO/маркетинг, либо, управление командой, либо, в тестирование UI + UI/UX, либо подсаживаются на JS и фронтэнд. Мой тебе совет: сразу выбирай одну из этих ниш. Хочешь пока остаться на чистой вёрстке? Начни хотя бы с SASS и SCSS. Почитай книги по CSS и HTML. Это очень большая тема. Ты обязан знать расчёт специфичности, основы каскадирования, правила отрисовки элементов и их базовое позиционирование. Важно знать и сложные селекторы, микроразметку типа Schema.org, чтобы не лепить телефон на сайте через жопу. Обязан знать особенности robots.txt и sitemap.xml, иначе заказчик жёстко отлюбит тебя, когда в поиске его сайт появится с херовыми сниппетами, рыбным текстом или прочей лажей. А ещё, начни изучать какой-нибудь js framework. Это даст тебе первичные знания js. Nuxt.js вообще легко ставится и изучается.
    Обязательно почитай про домены. Какие есть служебные записи, кто обладает правами на домен. Заказчик в низком ценовом сегменте, если заказывает сайт, а не вёрстку, будет интересоваться прежде-всего:

    1. совокупной стоимостью владения.
    2. правами на сайт и моментом передачи авторских прав.
    3. отображением сайта в поисковых системах.
    4. обновлением контента

    Не будешь этого знать - крупно обделаешься, когда заказчик позвонит тебе и скажет: yskl24, ты охуел! У меня сайт не работает!
    Ты смотришь - он работает. А оказывается, его нет в поиске, значит, сайт не виден интернету, значит, ты заказчика наебал! Получи плохой отзыв, верни предоплату! Ещё, заказчик, который платит тебе жалкие гроши, убеждён, что ты по первому зову примчишься наполнять сайт контентом. Ты скажешь: Авраам Моисеевич, как же так?! Я не обязан этого делать!
    А он тебе скажет: Я тебе заплатил 2 000 за за сайт, который ты делал три месяца! Отрабатывай эти деньги!

    Ещё приготовься, что с тебя спросят за аналитику, так что сразу учи основы Google analytics, Яндекс Метрика и liveinternet.

    Ещё запомни, что лучшими твоими наставниками будут токсичные мудаки, из-за которых ты будешь переделывать свои продукты по многу раз, искать информацию и развиваться! Если хочешь снизить градус токсичности - иди работать в офис. Там, обычно, уже есть корпоративные образовательные системы и подборка книг для работы. Так что, если хочешь быть топом, я не против - я тебе и так выдал достаточно бесплатных советов для начала подъёма. Хочешь клепать сайты на конструкторе и думаешь, что не столкнёшься со всем, что я написал? Ну, тоже вэлкам! Но про слово "Топ" забудь на ближайшие пять лет, пока не поумнеешь.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    cucumber111, я думаю, к зиме вы встанете на учёт в ЦЗН, а с первого пособия, наконец-то, сможете наесться.
  • Как стать топовым WEB разработчиком?

    werevolff
    @werevolff
    yskl24, это не его мнение, а общепризнанный факт. В разработке на web есть свои тонкости и мелочи, на фрилансе не то, чтобы конкуренция, но одному без портфолио там делать нечего! Огромная доля фриланса - это состоявшиеся команды, которым заказ ищет менеджер. Заказы надо делать сверхбыстро, детали и мелочи некогда изучать. Иначе будет нечего есть и нечем платить за интернет. Офис вэб-студии - это обязательное условие для будущих миддлов и сеньоров. Без базы в вэб-студии тебе нечего делать на рынке!
  • Делает ли из меня Linux-профи установка и использование дистрибутивов Gentoo/Arch?

    werevolff
    @werevolff
    Denis, я видел человека, который принебрегал IDE в командной разработке только потому, что отлично знал unix среду (не только linux) и использовал vi. В любом случае, в работе со фряхой он был профи, и мог консультировать инженера. Скорее, мы здесь имеем дело с не верной постановкой вопроса: если ты используешь linux в его не гламурных сборках на постоянке, то ты, скорее-всего, профи в его прикладном использовании для своих задач. То есть, развернуть сервер под простой продакшен ты можешь. А вот балансировать нагрузку, ограничить доступ извне группе клиентов, настроить узкоспецифичное ПО уже не сможешь.
  • Делает ли из меня Linux-профи установка и использование дистрибутивов Gentoo/Arch?

    werevolff
    @werevolff
    Ну, тоже такой себе ответ. Да, для единоразовой установки/настройки подойдёт мануал. Но, если это твоя основнаясистема более двух лет, то мануалы тебе не сильно помогут.
  • Зачем использовать flywaydb в django?

    werevolff
    @werevolff
    Я так понимаю, что основное преимущество - это поддержка разных языков программирования. То есть, возможно использовать миграции на другом движке. Если проект не имеет частей на других движках, то преимущества - спорные. Потребуется искать программистов, любящих писать на чистом SQL. Это дорого и не Django way.
  • Насколько frontend часть django медленнее чем работа с чистым frontend, общаясь с джангой с помощью API?

    werevolff
    @werevolff
    cehka, самый простой способ подключить скрипт или картинку на страницу - это добавить элемент в DOM. Браузер грузит добавленные в DOM внешние файлы мультипоточно.

    2. Стоит помнить, что страница будет отрендерена только после загрузки всех скриптов и стилей, находящихся в head. Если это один большой файл, то мы ждём его загрузки. Если это много маленьких файлов, то мы тоже ждём их загрузки. Оптимальное решение: загрузить минимальный файл, позволяющий отрендерить страницу и начать работу с ней без ошибок, а прочие файлы подгрузить позже.
  • Не могу задеплоить Heroku?

    werevolff
    @werevolff
    Alibaba2018, Это винда? Вообще, желательно использовать полный путь. C:\Users\ для винды или /home/username для линукс. Слэши тоже используются в зависимости от unix/windows системы