Задать вопрос
Остановите Планету! Я сойду...!!!
Местоположение
Великобритания

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (45)

Лучшие ответы пользователя

Все ответы (92)
  • Как настроить отдачу метрик с nginx?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Такой вариант в nginx.conf:
    server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   /var/www/html;
                index  index.php;
            }
    
            location /metrics {
                stub_status;
                allow 127.0.0.1;
                deny all;
            }
    
            location ~ \.php$ {
                root           /var/www/html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
                include        fastcgi_params;
            }
        }

    Описание метрик Nginx /metrics:
    Active connections — текущее количество активных соединений.
    accepts — общее количество соединений, принятых сервером.
    handled — количество соединений, обработанных сервером (совпадает с accepts, если нет ошибок).
    requests — общее количество обработанных запросов.
    Reading — количество соединений, которые Nginx читает от клиента.
    Writing — количество соединений, в которые Nginx пишет ответ клиенту.
    Waiting — количество keep-alive соединений, которые открыты и ожидают нового запроса.

    stub_status — это директива, которая включает модуль ngx_http_stub_status_module. Этот модуль выводит минимальную статистику о текущем состоянии Nginx
    Ответ написан
    Комментировать
  • Что такое культура программирования?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    А что тут непонятного?
    -Поклонение богу программирования
    -Умение чистить программистскую карму
    -Умение проводить обряды (вроде танцев с бубном)
    -...
    Ответ написан
    Комментировать
  • Особенности работы функций?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Наверное вы не сказали самое главное - что такие функции не загрязняют глобальное пространство имен(что исключает конфликты имен при использовании совместно разных библиотек) и поэтому являются прототипом для создания паттерна модуль.
    Ну, а вообще кто знает что они хотели услышать... Надо в конце все же спрашивать правильный ответ по мнению вопрошающей стороны.
    Ответ написан
    3 комментария
  • Какие модули есть в Python для целей анализа, форматирования, вывода текста?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Для анализа и обработки текста в Python существует множество библиотек, которые могут помочь вам с различными задачами, включая поиск совпадений слов, подсчет символов и знаков препинания, а также форматирование и вывод результатов в различные форматы файлов, включая PDF. Вот некоторые из них:

    1. Стандартная библиотека Python:
    - re: модуль для работы с регулярными выражениями, который может помочь в поиске совпадений слов.
    - string: предоставляет набор стандартных операций со строками, включая подсчет символов.
    - collections.Counter: полезен для подсчета вхождений элементов в итерируемых объектах.

    2. Анализ текста:
    - nltk (Natural Language Toolkit): обширный набор инструментов для работы с человеческим языком, включая поиск и анализ слов.
    - spacy: продвинутая библиотека для обработки естественного языка, которая может использоваться для лемматизации, распознавания сущностей и других задач NLP.

    3. Работа с текстом и файлами:
    - Pandas: предоставляет функционал для анализа и обработки данных в табличном формате, позволяет экспортировать результаты в различные форматы файлов.
    - openpyxl или pandas: для работы с файлами Excel.
    - python-docx: для создания, изменения и извлечения информации из документов Word.

    4. Форматирование текста:
    - rich: позволяет создавать стилизованный вывод в терминал с поддержкой markdown, подсветкой синтаксиса, таблицами и т.д.
    - textwrap: стандартный модуль Python для форматирования абзацев текста, чтобы он красиво выводился.

    5. Работа с PDF:
    - reportlab: мощный инструмент для создания сложных PDF-документов с возможностью добавления графики и текста с различным форматированием.
    - PyPDF2 или PyMuPDF (fitz): библиотеки для чтения и записи PDF-файлов, манипуляции с существующими PDF, включая соединение, разделение и т.д.

    Все эти модули и библиотеки позволяют выполнять широкий спектр задач, связанных с текстом, начиная от простого поиска и анализа слов и символов до сложного форматирования и вывода в файлы различных форматов, включая PDF. Большая часть из них имеет обширную документацию и примеры использования, что позволяет сравнительно легко начать работу с ними.
    Ответ написан
    3 комментария
  • Почему не назначаются разрешения на папку в volume-е?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Изменение прав доступа к папке в Dockerfile с помощью RUN chmod не действует на тома (volumes), примонтированные при помощи инструкции volumes в docker-compose.yml. Это связано с тем, что тома подключаются после выполнения всех команд указанных в Dockerfile, и их содержимое не изменяется в процессе построения образа, что означает, что фактические данные тома и права доступа управляются внешним хостом.

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

    Если же настройка прав доступа должна выполняться внутри контейнера (например, при инициализации или запуске), вы можете использовать команду entrypoint или command в docker-compose.yml для запуска скрипта, который будет устанавливать нужные права доступа при запуске контейнера каждый раз. Пример такого скрипта:
    # Dockerfile
    ...
    
    # Установка прав доступа в скрипте инициализации
    COPY ./set-permissions.sh /usr/local/bin/set-permissions.sh
    RUN chmod +x /usr/local/bin/set-permissions.sh
    
    # Запуск скрипта при старте контейнера
    ENTRYPOINT ["set-permissions.sh"]
    CMD ["apache2-foreground"]

    bash:
    # set-permissions.sh
    #!/bin/bash
    chmod o+w /app/web/uploads
    chmod o+w /app/web/uploads/result
    exec "$@"

    Этот скрипт изменит права на каталоги при каждом запуске контейнера, не зависимо от прав на машине хоста.
    Ответ написан
    Комментировать