• Скрипт python долго думает перед началом, как исправить?

    @nirvimel
    Он не думает, он работает. Чтобы наблюдать прогресс, нужно выводить otchet не только в файл, но и в консоль.
    Перед каждой строчкой:
    otchot.write(theurl+": ok\n")
    Можно дописать еще:
    print(theurl+": ok\n")
    И с остальными ошибками также.
    А перед запросом
    result = pars_header('http://'+theurl)
    Можно добавить
    print(theurl+": processing ...")
    Чтобы видеть то, над чем он работает в данный момент.
    Ответ написан
    1 комментарий
  • Python requests не отдает 0 на несуществующем домене, как исправить?

    @nirvimel
    Это не "ерунда", а stacktrace, по причине не пойманного исключения ConnectionError, вылетевшего при попытке подключения к несуществующему домену. Надо перехватить исключение, чтобы вернуть определенное значение при ошибке.
    from requests.exceptions import ConnectionError
    
    def pars_header(url):
        try:
            r = requests.get(url, headers=headers)
            return r.status_code
        except ConnectionError:
            return 0
    Ответ написан
    2 комментария
  • Сколько выполнятся программа в Python?

    @nirvimel
    Если только в самом алгоритме не предусмотрена функция информирования о прогрессе собственного исполнения, то снаружи теоретически невозможно определить на каком этапе находится решение задачи и даже то, будет ли эта задача решена когда-либо вообще.
    Ответ написан
    Комментировать
  • Нормальные ли показания SMART для Kingston SH103S3/240G проработавшего 2 года?

    @nirvimel
    Надо, как говорят в медицине, пронаблюдать пациента в динамике, то есть запомнить значения угрожающих показателей (#01, #C3, #C9, #CC), дать на несколько часов максимальную нагрузку: сначала программную (какой-нибудь DoD wiper), а потом аппаратную (SMART->Offline_Test). После чего снять новые значения показателей и сравнить со старыми.
    - Если ни один показатель не вырос ни на единицу, то "пациент стабилен", то есть в ближайшей перспективе ему вряд ли что-то угрожает.
    - Если показатели растут, то, как говорят обреченным пациентам - "вам следует подготовится к этому".
    Ответ написан
    4 комментария
  • Наиболее красивый и правильный способ передачи параметров сквозь другой класс?

    @nirvimel
    #include <iostream>
    
    class Cam;
    
    class OutputBuffer {
    public:
        OutputBuffer() { std::cout << "OutputBuffer " << this << " initialized\n"; }
    
        void receive(Cam &cam) { std::cout << "OutputBuffer " << this << " receiving data from camera " << &cam << "\n"; }
    };
    
    class Cam {
        static OutputBuffer buffer;
    public:
        Cam() { buffer.receive(*this); }
    };
    
    OutputBuffer Cam::buffer = OutputBuffer();
    
    int main() {
        Cam cam1, cam2;
    };


    OutputBuffer 0x6013d1 initialized
    OutputBuffer 0x6013d1 receiving data from camera 0x7fff7742970e
    OutputBuffer 0x6013d1 receiving data from camera 0x7fff7742970f
    Ответ написан
    4 комментария
  • Как асинхронно передавать значение переменной из view в темплейт?

    @nirvimel
    Теоретическая сторона:
    Есть одна (годная) технология для передачи событий от сервера к клиенту - это WebSocket.
    И есть куча старых костылей, актуальных до появления WebSocket - это Commet, Long Polling, Server Push, и прочие техники в основе которых лежит издевательство над не предназначенным для этого протоколом HTTP.

    Практическая сторона:
    Смотрите в сторону Django Channels.

    Update:
    Для тяжелых вычислений и любых (потенциально) продолжительных процессов полагается использовать очереди асинхронных фоновых задач:
    1. Сelery - самое популярное решение, практически индустриальный стандарт.
    2. Django Q - молодой, быстро развивающийся, конкурент Celery.
    3. huey, a little task queue - гораздо более легковесный вариант для простых применений.
    Ответ написан
    4 комментария
  • Портфолио для upwork из локальных проектов?

    @nirvimel
    все проекты только на локальном сервере

    Так купите себе хостинг.
    Вы же на upwork что-то зарабатываете (или собираетесь зарабатывать)?
    Чтобы что-то заработать, надо что-то вложить.
    Ответ написан
    Комментировать
  • Обязательно ли ETag заключать в кавычки?

    @nirvimel
    Обязательно в двойных кавычках.

    RFC7232, Пункт 2.3
    Ответ написан
    Комментировать
  • Какие операции языка C++ могут быть потенциально небезопасны?

    @nirvimel
    Присваивание может быть перегружено, поэтому в общем случае может вызывать произвольный код, который может быть не безопасен, следовательно и сама операция не может считаться безопасной.

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

    В остальном приведенные рассуждения в целом верные, явных ошибок я не заметил.
    Ответ написан
  • Какое наименее ресурсоемкое решение для запуска виртуалки?

    @nirvimel
    1. Virtualbox - потому что на Ubuntu в официальном репозитарии, удовлетворяет всем требованиям задачи и вообще давно обкатана для использования в подобной связке.
    2. Семерка (если Photoshop не захочет работать под XP) - потому, что нужна мажорная версия, минимально необходимая для запуска целевого софта, и не более того, но последний минорный релиз со всеми апдкейтами и фиксами.
    3. 32-бит - потому, что на 4 Gb не смысла ставить 64-бит (особенно, когда речь о винде).
    Ответ написан
    Комментировать
  • VPS, как узнать кто блокирует IP (хостер или сервер)?

    @nirvimel
    1. Для диагностики любых проблем с SSH следует запускать его с клюем-v или -vv.
    2. На стороне сервера надо смотреть /var/log/auth.log, предварительно переключив значение Loglevel на VERBOSE в /etc/ssh/sshd_config.
    3. Иногда случается, что провайдер режет трафик на порт 22. Это может быть связанно с подозрением на исходящие атаки или просто тупое убеждение, что гражданским лицам физ.лицам шелл на удаленном сервере не нужен. В таком случае попробуйте сметь порт Port 12345 в /etc/ssh/sshd_config.
    Ответ написан
    Комментировать
  • Свой VPN на VPS или сторонний VPN, в чем разница?

    @nirvimel
    Что можно сказать о сторонних сервисах VPN:
    1. Они ВСЕГДА ведут логи. Даже если отрицаут это перед клиентами.
    2. Если они на главной странице огромным шрифтом клянутся в том, что не ведут логи, то см. пункт (1).
    3. Ценность любого клиента для них составляет не больше суммы оплаты, которую он вносит.
    4. Клиент на бесплатном тарифе не стоит нисколько (следствие предыдущего пункта).
    5. Во многих странах (Великобритания, например) деятельность по предоставлению услуг VPN законодательно приравнена к деятельности по предоставлению доступа в интернет со всеми вытекающими последствиями (СОРМ и его аналоги в разных странах).
    6. VPN с IP в Зимбабве вполне может предоставлять контора, юридически находящаяся, например, в США (довольно типичный случай).
    7. Где бы ни находилась контора физически и юридически она испытывает огромное давление со стороны Spamhaus и прочих влиятельных антиспамеров, она также испытывает огромное давление со стороны собственно датацентра и провайдера ip-диапазона, чей бизнес попадает под удар Spamhaus. Единственная сторона, которая не может сделать им практически ничего - их простые клиенты.
    8. Из предыдущих пунктов следует, что у них есть 100500 причин (коммерческих и административных), чтобы слить любого клиента, и ни одной веской причины, чтобы его не сливать.
    9. Анализируя ценовую политику многих бюджетных VPN сервисов, можно прийти к выводу, что они работают на нижней границе окупаемости практически с нулевой маржой (может показаться, что даже с отрицательной). В чем тогда заключается их бизнес и по какой схеме монетизации они работают?
    10. В документах Сноудена однажды мелькала информация о том, что ГБ тратит значительные бюджеты на поддержание работы различных honeypot по всему миру. При учете того, что одна из Их приоритетных задач (вполне официально декларируемых) - контроль телекоммуникаций в глобальном масштабе, можно сделать вывод, что многие honeypot связанны с привлечением любителей анонимности, среди которых значительная долю составляют Их "клиенты".
    11. Учитывая давность публикации тех разоблачений, можно предположить что на сегодняшний день уже многие страны успешно переняли "опыт зарубежных коллег" (особенно при учете резкой актуализации данной темы в последнее время).
    Ответ написан
    Комментировать
  • Как монетизировать узкоспециализированный сайт общения на самоокупаемость?

    @nirvimel
    Я не планирую на нем зарабатывать

    Значит это - ваше хобби. А хобби обычно требует расходов на него (хобби, не требующее никаких расходов, становится редкостью в XXI веке).

    Эдсенс будет плохо работать на такой тематике. Во-первых чтобы что-то поиметь с Эдсенс нужно довольно много трафика, а откуда его взять в такой узкой тематике? Во-вторых, не все типы трафика одинаково полезны (для Эдсенс) нужен именно платежеспособный трафик, а откуда он в такой тематике? В-третьих, само наличие Эдсенс (как и любой рекламы) делает сайт откровенно коммерческим и отпугивает от него некоммерциализированную аудиторию (такую как ваша), то есть будет падать hits/visit и поведенческая активность, которую наблюдает Гугл (через этот самый блок Эдсенс). При ухудшении поведенческой активности сайт будет опускаться в низ в выдаче Гугла, что еще больше снизит трафик.

    Что можно порекомендовать:
    1. Избавиться от "Я не планирую на этом зарабатывать" или смириться с расходами.
    2. Попробовать как-то раскрутить на деньги самих клиентов (теперь это не просто посетители). Например, организовать какие-нибудь пожертвования. Но отсюда уже начинается социальная инженерия, чисто технические методы тут неприменимы.
    Ответ написан
    4 комментария
  • Клиент хочет автоматизировать загрузку каталога на сайт через CSV, как это сделать если есть сложные описания?

    @nirvimel
    Вот qwerty.csv с длинными строками, разметкой, тегами и кавычками. Приготовлен он в LibreOffice Calk (пусть будет Excel). При сохранении заданны параметры: "разделитель полей": ,, "разделитель текста": ", "выделять кавычками все текстовые ячейки".
    1,"Тайтл","<h1 itemprop=""name "" class=""question__title"">
      Клиент хочет автоматизировать загрузку каталога на сайт через CSV, как это сделать если есть сложные описания?</h1>"
    2,"Теги","<ul class=""tags-list"">
                  <li class=""tags-list__item subscribed tag_158794"">
              <a href=""https://toster.ru/tag/csv"">
                Csv          </a>
            </li>
                        <li class=""tags-list__item subscribed tag_152707"">
              <a href=""https://toster.ru/tag/программирование"">
                Программирование          </a>
            </li>
                        <li class=""tags-list__item  tag_260"">
              <a href=""https://toster.ru/tag/php"">
                PHP          </a>
            </li>
                    </ul>"

    Вот скрипт на Python (извините, PHP на сегодня закончился), который выводит в консоль содержимое qwerty.csv построчно, раздельно все поля (№, Name, Description).
    import csv
    with open('qwerty.csv', 'rb') as csvfile:
        for row in csv.reader(csvfile, delimiter=r',', quotechar=r'"'):
            print ("# %s\nName: %s\nDescription: %s\n" % tuple(row))

    Как видите все обрабатывается корректно, включая большие куски HTML, никакие строки и поля не смешиваются:
    # 1
    Name: Тайтл
    Description: <h1 itemprop="name " class="question__title">
      Клиент хочет автоматизировать загрузку каталога на сайт через CSV, как это сделать если есть сложные описания?</h1>
    # 2
    Name: Теги
    Description: <ul class="tags-list">
                  <li class="tags-list__item subscribed tag_158794">
              <a href="https://toster.ru/tag/csv">
                Csv          </a>
            </li>
                        <li class="tags-list__item subscribed tag_152707">
              <a href="https://toster.ru/tag/программирование">
                Программирование          </a>
            </li>
                        <li class="tags-list__item  tag_260">
              <a href="https://toster.ru/tag/php">
                PHP          </a>
            </li>
                    </ul>
    Ответ написан
    Комментировать
  • Как выглядит 128 битное число?

    @nirvimel
    340282366920938463463374607431768211455 - это максимальное беззнаковое.
    Можно получить из консоли командой:
    python -c 'print (2**128 - 1)'
    Ответ написан
    1 комментарий
  • Насколько безопасно использование AJAX-запросов?

    @nirvimel
    Насколько безопасно использование AJAX-запросов?

    Не более безопасно, чем голый HTML и отправка данных через формы (POST-запросы).

    Как защитится?

    Ничего нового: Авторизация. Сессии.
    Плюс: при задании нового пароля обязательна передача и проверка прежнего (даже под авторизованной сессией).
    Ответ написан
    4 комментария
  • Как сделать генератор случайных чисел на Delphi чтобы он был не менее 128 бит?

    @nirvimel
    Как сделать генератор случайных чисел?

    я сделал через рандом

    сомневаюсь что так будет правильно

    Неправильно будет делать иначе.
    Ответ написан
    Комментировать
  • Записная книжка программиста?

    @nirvimel
    Как только у меня возникает необходимость копипастить код, и я понимаю, что с этим ничего не поделать (принцип DRY соблюсти нет возможности), я делаю вывод, что этот инструмент (язык, фреймворк) непригоден для разработки, и надо с него срочно бежать.
    Годный инструмент - не тот, который пользуется популярностью у индусов, и не тот, на который молятся хипстеры (завтра будут молиться на другой), а тот, который никогда не заставит меня нарушать принцип DRY и всегда даст возможность выделить общие черты двух кусков кода и оставить только их чистые различия.
    Ответ написан
    5 комментариев