• Зачем нужен .env файл?

    @sergiodev
    В .env-файлах обычно прописывают переменные окружения, и для разных окружений типа dev, production, staging, могут быть созданы разные файлы. Также каждый из разработчиков может на локальной системе менять переменные под себя на своё усмотрение.

    В общем, env-файлы служат для изоляции приложения от среды, в которой оно запускается. Некая абстракция конфигурации.

    Например, обычно там хранятся всякие API-ключи и прочие пароли, которые разработчики не хотят впиливать в код (в целях конфиденциальности, например, если проект open-source и весь код залит на GitHub).
    Ответ написан
    1 комментарий
  • Проблема с компиляцией?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Для кода на плюсах, надо вызывать не gcc а g++
    Ответ написан
    Комментировать
  • Как правильно настроить nginx, dockerfile и запуск gunicorn для flask-приложения?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Вы глобально делаете не то в виде пихания нескольких сервисов в один контейнер. Забудьте про 127.0.0.1 - все контейнеры должны ходить друг к другу по именам, а доступ снаружи обеспечивается экспозом 80/443 порта на контейнере с nginx.
    Ответ написан
    2 комментария
  • Как на хостинге запустить flask приложение на 80 порту?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как вариант:
    1. Создать А-запись с ip сервера.
    2. На сервер поставить обратный прокси, например Nginx, в котором прописать правила, откуда брать инфу, если зайдут на указанный домен, например на контейнер докера с портом 3000.
    3. Запустить контейнер докера с портами 8080>3000 (внешним и внутренним соответственно). Flask приложение в контейнере должно слушать 3000 порт (либо изменить во всех случаях на тот, который слушает).
    4. Выпустить SSL для домена, затем дописать в Nginx правило обработки https.
    5. Проверить файервол, чтобы разрешал локальный трафик на 127.0.0.1:3000.

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ниже список с чем сталкивался, возможно не полный:

    * Булева алгебра - это пожалуй то с чем сталкиваются наиболее часто
    * Вейвлет преобразования и фурье - все что связано с графикой, но вы уже используете готовые функции вас это не коснется
    * системы счисления - довольно часто, как пример расчет масок сети, разные битовые операции, операции сдвига
    * матричное исчисление - игроделанье системы cad cam
    * Статистические методы - это уже к бухгалтерам и датаскентистам
    * Предметная область - заморочки определенных программ и профессиональной деятельности

    Как видите все в пределах 1-2 курса института
    Ответ написан
    Комментировать
  • Какие разделы математики знать надо в веб и в серверной части веб?

    @alexalexes
    А что вы так за математику зацепились?
    Перед вами барьер в виде понимания стека технологий - как взаимодействует клиент и сервер. Математики там примерно на 2+2.
    Это вам чтобы в вуз поступить математика нужна. Чтобы на одной из базисных дисциплин вы научились брать интегралы - чисто джентельменский навык как фехтование шпагой, а на другой, уже профильной дисциплине вам расскажут про стек технологий, чтобы получить полностью работающий сайт.
    Ответ написан
    Комментировать
  • Часто ли телеграм боты подвергаются атакам и как вы этого избегаете?

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала что значит "атака"? Какую угрозу ты ожидаешь? Потому что ответы будут ОЧЕНЬ разные в зависимости от этого.

    IP бота можно будет попробовать узнать, если ты знаешь, что бот проходит по ссылкам, которые ты можешь ему отправить. Тогда, скинув боту ссылку на свой сайт, можно будет посмотреть, какие адреса заходили в этот момент.
    Если бот такого не делает, то скорее всего никак.

    Зафлудить бота запросами? С одного аккаунта не получится, а с многих - недёшево. Кому ты нужен за такие деньги?

    Потыкать команды бота на пример SQL-инъекции? Если бот вообще использует БД, достаточно использовать стандартные средства подстановки параметров в запросы, а не колхозить SQL чере зформатирование строк.

    Угнать бота? Не пости его токен никуда. Если хранишь исходный код в какой-то системе хранения версий - храни токен в отдельном файле и добавь его в исключения. Если есть подозрение, что токен уже уплыл - меняй его у BotFather. А угон акка разработчика - это другая песня уже.

    Короче, ответь хотя бы для себя на вопросы:
    1. чего конкретно боишься?
    2. кому конкретно ты нужен?
    Ответ написан
    2 комментария
  • Как из контейнера docker получить ip и порт, на котором хостится этот контейнер на хостинге?

    @Drno
    используй домен.
    для теста можно заюзать sslip.io
    Ответ написан
    Комментировать
  • Как из контейнера docker получить ip и порт, на котором хостится этот контейнер на хостинге?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Правильный вариант - не завязываться ни на какие айпишники, особенно локальные. Нужен домен, да - но есть и бесплатные варианты, если покупать не хочется.
    Ответ написан
    Комментировать
  • Событие keyup в jquery вызывается дважды, почему так происходит?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    document.querySelector('*').addEventListener('keyup', function (event) {
    - взять один (первый) элемент, соответствующий селектору и навесить на него обработчик события keyup. Этим элементом будет <html>.
    $('*').keyup(function (event) { - на все элементы, соответствующие селектору, навесить обработчик события keyup.
    А дальше работает всплытие событий. Когда вы нажимаете на клавишу, то событие поочерёдно срабатывает на элементе, на котором стоит фокус, и на всех его родителях.
    Ответ написан
    Комментировать
  • Событие keyup в jquery вызывается дважды, почему так происходит?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    В JQuery есть такое понятие "всплытие событий", используя $('*') Вы практически заюзали querySelesctorAll('*') (из чистого JS) и тем самым повесили события на все дочерние элементы.
    // выбирайте не все элементы
    $('*')
    // а более конкретные
    $('.item')
    Ответ написан
    1 комментарий
  • Как читать книгу Вирт, Алгоритмы и Структуры данных школьнику?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    сначала читать такое
    https://mangalib.me/mangadewakaru-senkei-daisu
    найдешь в нете или телеге полную версию

    там вообще вся серия "Занимательная математика" гуд, но не стоит лезть раньше времени, а вот линейная аглебра для программиста необходима
    Ответ написан
    2 комментария
  • Как правильно подключить js файл к html в контексте flask?

    hekkaaa
    @hekkaaa Автор вопроса
    C#/.NET Developer
    Нашел ответ сам.
    Нужно в html использовать в header.
    Путь до файла -> static\js\autchscript.js

    <script src="{{ url_for('static', filename='js/autchscript.js') }}"></script>
    Ответ написан
    Комментировать
  • Не подключается JavaScript в pycharm, Flask. Что делать?

    imko
    @imko
    Senior Scratch Developer
    А что должен? Твой скрипт меняет текст в заголовке, а заголовка на странице нету
    Ответ написан
    1 комментарий
  • Важен ли порядок объявления методов/функций в скрипте?

    @PavelMos
    Конечно же порядок не важен. Объявление, создание функции это же не вызов. Главное, чтобы функция, переменная были созданы до того, как они будут использованы.

    Если два раза в разных местах задать функцию с одинаковыми именем, то то, какой вариант будет вызываться, будет зависеть от области видимости.
    Ответ написан
    3 комментария
  • Конструкция if не работает в конструкции try?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Ломается всё из-за того, что оператора If не существует, только if.
    Ответ написан
    Комментировать
  • Что делать если не работает pip?

    @twistfire92
    Python backend developer
    Добавить в PATH.
    Гугли переменные среды

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

    @MichaelMih Автор вопроса
    Нашел решение. Сначало, при помощи cython компилируем код в C

    cython -3 script.py
    Следом, компилируем C в EXE
    https://docs.microsoft.com/ru-ru/cpp/build/walkthr...
    Ответ написан
    Комментировать
  • Как создать свой PL?

    Vindicar
    @Vindicar
    RTFM!
    Даже для простого ЯП тебе придётся решить минимум четыре задачи:
    1. Лексический анализ. Входной текст нужно превратить в цепочку токенов, например z = x + y превратится в что-то типа
    [ (token.IDENTIFIER, 'z'), (token.OPERATOR, '=') (token.IDENTIFIER, 'x'), (token.OPERATOR, '+') (token.IDENTIFIER, 'y') ]

    2. Синтаксический анализ. Тебе нужно превратить цепочку токенов в древовидную структуру. Корень дерева - программа целиком, промежуточные узлы - элементы программы (функции, составные операторы, сложные выражения и пр.), листья - отдельные элементы сложных выражений и примитивные операции без параметров (типа pass в питоне).
    Например цикл while будет иметь два дочерних узла: выражение-условие и тело цикла.
    3. Области видимости. Тебе нужно иметь возможность сопоставить имя(идентификатор) и сущность (переменную, функцию и т.п.).
    Самый простой способ - позволить узлу дерева описывать идентификаторы, которые известны в этом узле. Тогда при раскрытии идентификатора достаточно подняться вверх по дереву, пока не найдёшь нужное имя.
    4. Выполнение. Так как ты хочешь интерпретируемый язык, то выполнение будет сводиться к обходу дерева в глубину. Некоторые операторы типа break могут вмешиваться в этот порядок. Это описывается паттерном Интерпретатор из набора Банды Четырёх.

    Отдельные задачи в этом списке вполне себе гуглятся, и могут решаться по-разному.
    Ответ написан
    1 комментарий
  • Как создать свой PL?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    1 комментарий