• Что не так с SOCKS 5 в Win 10?

    dimanjy
    @dimanjy Автор вопроса
    Недопрограммист и полуинженер.
    Вопрос, почему в Win не работает, а в Ubuntu работает, так и останется загадкой.
    Но зато нашёл, что нужно сделать, чтобы в Win таки заработало.
    Для этого применил другую реализацию socks для NodeJS: https://github.com/sequoiar/socks5
    Под Win с общесистемными настройками proxy заработало во всех браузерах.
    Ответ написан
    Комментировать
  • Что происходит в uWSGI с subprocess.Popen?

    dimanjy
    @dimanjy Автор вопроса
    Недопрограммист и полуинженер.
    Проблема была в том, что при запуске приложения из uWSGI в sys.executable лежит путь не к интерпретатору Питона, а к бинарнику uwsgi-core.
    Спасибо Pavel Denisov и sim3x за помощь!
    Ответ написан
    Комментировать
  • Как запустить Django из другой директории?

    dimanjy
    @dimanjy Автор вопроса
    Недопрограммист и полуинженер.
    Спасибо Павлу, разобрался!
    Проблема была действительно в путях, которые откладываются в sys.path. Чтобы запустить консольный модуль Django из произвольной папки, нужно убрать из sys.path путь к этой папке и добавить путь к корню Django-проекта:
    import sys
    import os
    import django.conf
    
    _curdir = os.path.abspath(os.path.dirname(__file__))        # Текущая директория
    _newdir = os.path.abspath(os.path.join(_curdir, '../../../')) # Путь к корню Django-проекта
    
    sys.path.remove(_curdir)     # Удаляем текущий путь
    sys.path.insert(0, _newdir)  # Добавляем путь к корню
    
    # Запускаем Django-окружение
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'unit.settings')
    django.setup()
    
    # Дальше работаем с Django-моделями и делаем все, что нужно
    Ответ написан
    Комментировать
  • Где теряется кодировка при отправке файла через POST?

    dimanjy
    @dimanjy Автор вопроса
    Недопрограммист и полуинженер.
    Оказалось, что при прогоне через textarea POST у файла концы строк \n автоматически заменяются на \n\r, что удалось разглядеть только сохранив POST-файл и сравнив с исходным.

    При этом print() выводит в консоль все одинаково, поэтому найти отличия можно только в редакторе, который имеет функцию отображения спец-символов переносов строки (mcedit под linux, например).
    Ответ написан
    Комментировать
  • Не доходят письма с сайта на Django через Яндекс. Где копать?

    dimanjy
    @dimanjy Автор вопроса
    Недопрограммист и полуинженер.
    Пока реализовал цифровую подпись писем DKIM, как описано в мануале https://djangosnippets.org/snippets/1995/.
    Будем посмотреть...

    PS: Приватная часть ключа берется через API Яндекс.Почты.

    UP 2 недели спустя НАШЕЛ!

    Ну кто бы мог подумать! Все оказалось анекдотически просто.

    Смотрим в исходник Django django.contrib.auth.forms.py в классе PasswordResetForm:
    def get_users(self, email):
            ...
            return (u for u in active_users if u.has_usable_password())


    Оказывается, письма отправляются только тем пользователям, у которых has_usable_password()!
    Ну а откуда у меня возьмутся юзеры с валидным паролем, если я переносил их из php-шного форума, а форму для восстановления пароля как раз и пытаюсь использовать для создания валидных паролей, блин!???

    Оттого мне самому себе и получалось письма отправлять, что у меня has_usable_password() == True, а у всех остальных False.
    Ответ написан
  • Может есть умельцы которые знают как сменить IMEI на модеме Huawei e392 или e3372?

    dimanjy
    @dimanjy
    Недопрограммист и полуинженер.
    В топике на 4PDA смотрели?
    https://4pda.ru/forum/index.php?showtopic=582284
    Там мне встречалось что-то подобное.

    Вот:
    at^cimei="новый imei"
    Команда требует предварительного снятия блокировки datalock. Смена IMEI необходима для работы в сети yota - модему надо установить IMEIмодему imei от устройства того типа (смартфон, планшет), для которого приобреталась симкарта.
    Обратите внимание, что для корректной работы команды в него должна быть вставлена симкарта. Абсолютно любая. Кроме того, IMEI должен быть корректным (с правильной последней контрольной цифрой). Неправильные IMEI модем не примет с сообщением об ошибке. Проверить корректность IMEI можно калькулятором
    Ответ написан
    Комментировать
  • Загрузка прошивки в Arduino из Android

    dimanjy
    @dimanjy Автор вопроса
    Недопрограммист и полуинженер.

    Вот, сам нашел нечто похожее на ответ:
    Avrdude прошивает Arduino через bootloader (зашитый в микроконтроллер), используя протокол STK500 для передачи новых скетчей. Вот документация.
    Видимо, используя этот протокол можно залить скетч в Arduino из Android...

    А вот и STK500 на Java...

    Ответ написан
    Комментировать
  • Нагрузочное тестирование сайта

    dimanjy
    @dimanjy
    Недопрограммист и полуинженер.
    Тут сперва надо расчеты произвести.
    Замерить время выполнения PHP-скрипта, перевести в секунды и умножить на кол-во рабочих PHP-процессов. Вы получите кол-во запросов, которые Ваша система сможет обслуживать в секунду. Зная кол-во запросов к PHP, генерируемых одним пользователем на Вашем проекте, Вы сможете вычислить предельно допустимое кол-во одновременных пользователей.

    А из тулзов всем известный ab (Apache Benchmark). Еще очень интересен inject от создателя haproxy. В нем можно задавать сценарии поведения пользователей.
    Ответ написан
    1 комментарий