• Как на одном VPS с двумя IP настроить бесконфликтную работу Vless и Nginx?

    @WhiteApfel
    Привет. Понимаю, что вопрос про NGINX, но, думаю, мой ответ может с чем-то помочь:

    Возникла потребность тоже иметь и vless, и рабочий сайт на одной машине. Я использовал Traefik. Настроил в панели в качестве SNI www.microsoft.com, потом дописал лейблы в compose и перезапустил

    services:
      3x-ui:
        image: ghcr.io/mhsanaei/3x-ui:latest
        container_name: 3x-ui
        volumes:
          - $PWD/db/:/etc/x-ui/
          - $PWD/cert/:/root/cert/
        environment:
          XRAY_VMESS_AEAD_FORCED: "false"
        tty: true
        networks: 
          - traefik
        labels:
          - traefik.enable=true
          - traefik.http.routers.xui.rule=Host(`xui.example.com`)
          - traefik.http.routers.xui.tls=true
          - traefik.http.routers.xui.tls.certresolver=letsEncrypt
          - traefik.http.routers.xui.service=xui-web-config
          - traefik.http.services.xui-web-config.loadbalancer.server.port=2053 #порт Web-морды
          - traefik.tcp.routers.vless.rule=HostSNI(`www.microsoft.com`) #тот SNI, который указан в настройках inbound vless
          - traefik.tcp.routers.vless.tls.passthrough=true
          - traefik.tcp.routers.vless.service=xui-reality
          - traefik.tcp.services.xui-reality.loadbalancer.server.port=443
    Ответ написан
    1 комментарий
  • Как исправить ошикбу при подключении PyQIWIP2P?

    @WhiteApfel
    Проверить токен. Похоже, вставили не тот
    Ответ написан
    Комментировать
  • Распознование изображений только с помощью NumPy?

    @WhiteApfel
    Сам numpy не умеет обрабатывать изображения, строить связи между "нейронами" и вообще он больше для управления данными в массивах.

    Но чисто теоретически возможно ли? Возможно. Как? Ну...

    Для начала тебе нужно как-то получить массив пикселей. Тут зависит от контекста. Если картинку из файла брать, то есть старая добрая библиотека PIL для чтения изображений. Нет, конечно, можно и декодер написать, но не уверен, что оно тебе надо настолько "своё".
    from PIL import Image
    import numpy
    
    img = Image.open('image.png')
    pixel_map = np.array(img)


    Это будет массив элементов строк, где каждый элемент строки представлен массивом [r, g, b] или [r, g, b, a] при наличии прозрачности.

    # Например, изображение с такими пикселями
    
    # [красный][зелёный]
    #  [синий]  [белый]
    
    # будет представлено массивом
    [[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 255]]]


    Стоит признать, что такой формат слабо подходит для обучения. Обычно изображения приводят к Ч/Б, сжимают по размерам и вот это вот всё. Сжатие, как и чтение, лучше делать через библиотеку PIL, она быстрее работает, чем чистый python (вроде, оно на С написано, но это не точно).

    Для обучения обычно распаковывают двумерный массив пикселей (пиксель у нас был тоже массивом, но считаем это за единый объект, потому что могли его во что-то другое превратить) в одномерный. Например, пиксели последовательно положить из строк:

    pixel_sequence = [pixel for row in pixel_map for pixel in row]


    Важно. Если брать куски кода, у нас получится list[list[r, g, b (, a)]]. Это не то что бы подходит для сетей прямого распространения (могу напутать с терминологией, поправьте), можно ещё раз распаковать вложенный массив, конечно, но сложность из-за увеличения количества входных данных вырастет многократно


    А дальше уже можно на чистом python'е писать логику для обработки значений из массива numpy. Есть хорошая статья на proglib. Как результат, будет нейросеть "на numpy", хотя хватило бы и обычных питоновских листов
    Ответ написан
    Комментировать
  • Как десериализовать данные с Google Protobuf в Python 3?

    @WhiteApfel
    Правильно понимаю, что надо расшифровать бинарное сообщение protobuf без использования .proto схемы? Если да, то есть хороший инструмент https://github.com/nevermoe/protobuf_decoder

    Использование официальной библиотеки подразумевает генерацию py-файлов с необходимыми классами на основе которых и будет происходить десериализация. Пример с их страницы:
    protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/addressbook.proto

    Можно заменить переменные окружения на относительные пути удобства ради. И нужно будет поменять на свой proto-файл последний аргумент. Потом импортировать в код и использовать, у них есть и пример https://developers.google.com/protocol-buffers/doc...
    Ответ написан
    Комментировать
  • Почему нету импорта?

    @WhiteApfel
    Привет

    Да, проблема с импортом была. Исправил её в начале июня. Асинхронная версия до сих пор нестабильна, но если очень хочется, можно установить с помощью команды pip install pyQiwiP2P==2.0a10
    Ответ написан
    7 комментариев
  • Как с помошъю xsd сделать xml и заполнить данными?

    @WhiteApfel
    Да простят меня за ответ со SO (ссылка), но кому-то явно пригодится туточки.

    import xmlschema
    import json
    from xml.etree.ElementTree import ElementTree
    
    my_xsd = '<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note" type="xs:string"/> </xs:schema>'
    
    schema = xmlschema.XMLSchema(my_xsd)
    data = json.dumps({'note': 'this is a Note text'})
    
    xml = xmlschema.from_json(data, schema=schema, preserve_root=True)
    
    ElementTree(xml).write('my_xml.xml')
    Ответ написан
    Комментировать
  • Как соединить две репозитории в одну github?

    @WhiteApfel
    Привет!

    А зачем их объединять? Не хватает какой-то функции в pyQiwiP2P? Если да, то готов принять предложения на доработку =-)
    Ответ написан
    Комментировать
  • Почему при выдачи index.php через try_files $uri/index.php не работает php?

    @WhiteApfel Автор вопроса
    В location / {...} надо записать:
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    Ответ написан
    Комментировать