• Как убрать шлейфы во время движения изображения?

    @theg4sh
    Ваша проблема решается двумя способами:
    1) Заменить "временный" монитор на менее бюджетный вариант;
    2) Свыкнуться с болью и жить дальше;
    К сожалению, с качеством изготовления продукта сделать ничего не возможно.
  • Как организовать асинхронное взаимодействие с API?

    @theg4sh
    Ваш вопрос со стороны выглядит хаотичным набором слов. Перечитайте и перефразируйте, пожалуйста.

    > мне нужен только вывод *их моего* CallbackUrl
    Lulwut?
  • Как сделать граббер на php с использованием cURL с авторизацией?

    @theg4sh
    sanat1: см. скрипты и их логику, в данном моменте, голь на выдумку хитра, может какая-то кука ставиться после загрузки и ajax-запроса, может вообще iframe. Тут только ясновидящий поможет.
  • Как сделать граббер на php с использованием cURL с авторизацией?

    @theg4sh
    sanat1 в поле помимо полей username и password, присутствуют так же поля _token и remember. Посмотрите, какой запрос отправляется в Web Inspector`е.
    Скобки - лишние.
  • Чем может быть вызвано странное поведение PHP при замене параметров через Nginx?

    @theg4sh
    Имхо, маловероятно, что у кого-то появиться похожая бага, да и чтобы с этим разобраться, надо лезть в кишки к нжинксу. Для этого надо рекомпилить с агрументом --with-debug.
    https://www.nginx.com/resources/wiki/start/topics/...
    В свое время пользовалься такой сборкой, когда модуль делал для nginx-а - все косяки очень быстро находились.
  • Как ускорить работу стека построенного на массиве размером 100М элементов?

    @theg4sh
    Про 100000001 я сказал к тому, что индексация начинается с 0, т.е. при вставке элемета с индексом 0 будет уже 1, тогда как при вставке по индексу 100млн будет уже 100млн+1 элементов, а не 100млн. Это _не_ плохо в данном варианте, просто чтобы было понимание. Ведь, пусть, 8 байт по сравнению с 8*10млн байт - это незначительно, тогда как в массиве из 5 элементов вес 8 байт будет более значительный.
  • Как ускорить работу стека построенного на массиве размером 100М элементов?

    @theg4sh
    Ясно. (не знаю как со спецификой C#, директива в C/C++ выглядит так #define COUNT 100000001 и используется просто подстановкой COUNT вместо 100000001)
    Так же нужно уточнить, что именно имеется ввиду под началом стека. Имхо, начало - вершина, т.е. последний вставленный элемент.

    Немного математики, процесс инкрементирования элементов массива происходит 100М+1 * 500К раз (5*10^15, это, мать его, 5 квадрилионов!), значит стоит поработать над уменьшением этого количества вызовов.

    Думаю можно попробовать производить подсчеты во время вызова Pop, т.е. постфактум.
    Но для этого потребуется двойное выделение памяти - под стек и буфер инкрементов.
    Попробую объяснить C-псевдокодом... ты, наверное, удивишься, но эта задача решается вообще без циклов, за исключением иницализации:
    #define COUNT 100000001
    int _stack[COUNT];
    int _inc_delta[COUNT];
    
    int *ps  = _stack,         const *ps_start  = _stack,     const *ps_end  = _stack+COUNT;
    
    void init() {
      for (int *i=_inc_delta, *pid_end=_inc_delta+COUNT; i<pid_end; ++i)
            *i=0;
      }
    }
    
    void push(num) {
      if (ps>=ps_end) {
        return; // or throw an exception
      }
      *ps = num;
      ++ps;
    }
    
    void inc(cnt, delta) {
      if (cnt > 0) {
        if (cnt-1>=ps-ps_start) {
          return;   // or throw an exception;
        }
        _inc_delta[cnt-1] += delta;
      }
      // else thrown an exception;
    }
    
    int pop() {
      if (ps<=ps_start) {
              return 0; // or throw an exception;
      }
      --ps;
      int ret, idz=ps-ps_start, idy=idz-1; // ret, current and previous
      ret = *ps + _inc_delta[idz];
      if (_inc_delta[idz] != 0) {
        if (idy >= 0) {
          // Save the latest delta in previous position
          _inc_delta[idy] += _inc_delta[idz];
        }
        _inc_delta[idz] = 0;
      }
      return ret;
    }

    Извини не проверял компилятором, поэтому могут быть ошибки.
  • Как блокировать пакет с определенным mss, wscale, win?

    @theg4sh
    louvremaster cсылочки по теме, во второй как раз выковыривание данных напрямую из заголовка tcp в iptables:
    https://forum.ivorde.com/tcpdump-how-to-capture-fi...
    https://www.lowendtalk.com/discussion/47469/bpf-a-...
  • Как блокировать пакет с определенным mss, wscale, win?

    @theg4sh
    Ок. Для меня показались странными вот эти два:
    182.200.235.0.2441
    210.185.58.179.255
    Первый потому, что адрес заканчивается на 0, а второй потому что порт отправителя <1024. Интересненько...
  • Как блокировать пакет с определенным mss, wscale, win?

    @theg4sh
    Можно тогда попросить штук десять пакетов с аргументом -X ?
  • Как безопасно подменить таблицу операций сетевого интерфейса?

    @theg4sh
    Bosca Bosca: Учеба это хорошо :)
    > А не может ли запись указателя быть атомарной операцией?
    Может быть атомарной запись слова, которое в свою очередь может не соответствовать размеру указателя в зависимости от архитектуры процессора.
    $ cat /proc/cpuinfo | grep 'address sizes'
    address sizes : 36 bits physical, 48 bits virtual
    Т.е. вполне вероятно, что запись адреса будет занимать две атомарные операции, с учетом того, что:
    $ getconf WORD_BIT
    32
    Я надеюсь про гонку потоков Вам не нужно рассказывать? Вообще это довольно сложный вопрос, предлагаю почитать:
    stackoverflow.com/questions/54188/are-c-reads-and-...
    stackoverflow.com/questions/879077/is-changing-a-p...

    Хм, думаю rtnl_lock будет достаточно для выполнения Вашей цели, см.:
    stackoverflow.com/questions/13181920/free-netdev-a...
    и отсылка оттуда на функцию unregister_netdev
    lxr.free-electrons.com/source/net/core/dev.c#L7803
    Следовательно, можно сделать вывод, что rtnl_lock блокирует все действия с сетевыми интерфейсами.
  • Как безопасно подменить таблицу операций сетевого интерфейса?

    @theg4sh
    Вероятность что будет переписана ссылка на структуру в момент чтения очень мала.
    Скорее всего до вызова open и пр. идет сохранение ссылки к netdev_ops в переменную, что гарантирует целостность указателей на обработчики в момент прогона. Следовательно ваша структура будет использована в следующий прогон.

    rtnl_lock будет блокировать только часть вызовов, вы читали в документации по ссылке выше главу "struct net_device synchronization rules" ?
  • Python Парсинг через прокси не работает?

    @theg4sh
    antofa: скорее нет, чем да (отсылка к WCIII, я правильно понял?).
    Сам ищу грааль, но пока перебиваюсь всякими стандартами RFC, спецификациями и прочими, порой нудными, листовками от сообществ разработчиков. Гугл, мой друг, гугл :)
    Оффтоп: Развивайте образное мышление, оно в разы быстрее, чем словесное. Представление конечной цели сразу и целиком, дает возможность поделить ее на мелкие итерации и понять какие пробелы в знаниях стоит убирать.
  • Python Парсинг через прокси не работает?

    @theg4sh
    antofa: ай-йа-йай, подделка голосования :)
    Вопрос антикапчи и прочего это вообще тема отдельного разговора.

    Не стоит забывать, что конечная точка получения - один компьютер, есть техника идентификации компьютера через обычный скрипт, это если пользоваться полноценным браузером.

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

    Наверняка есть какие-то метки позволяющие понять каким методом был произведен запрос...

    хмм, например: браузер через tor, на сайте ставится кука, при обработке дочерних запросов, те же картинки по идее, должны получаться с одного ip, логично? какова вероятность, что множество запросов c одной страницы через tor будут делаться с одного конечного ip? скорее всего будет стремиться к 0. Это признак и ответ на "использовать список прокси?".

    По всем этим признакам можно оделить зерно от плевел, и на всякий случай показать капчу :)
    Не знаю, не граббил гугл и "учите матчасть" - ведь в знании сила :^)
  • Python Парсинг через прокси не работает?

    @theg4sh
    antofa: вот здесь есть графики https://habrahabr.ru/company/eset/blog/310244/ в коментах по вашему вопросу.
  • Python Парсинг через прокси не работает?

    @theg4sh
    beginer123: понятия не имею :) я ж не экстрасенс, чтобы знать что у вас приходит и приходит ли вообще - некоторые прокси могут отдавать пустой html, встречал такое.
    Попробуйте перед парсингом привести html к строгому виду, аля прогон через xmllint, сделайте проверку контрольных элементов, чтобы понять, что страница действительна соответствует искомой.
    Опять же проверьте сперва прокси на общедоступной странице (скорость, валидность, соответствие оригиналу) перед использованием.
  • Python Парсинг через прокси не работает?

    @theg4sh
    antofa: через прокси, сколько помню, всегда говеная скорость была, это редкость когда страница грузилась меньше 5s. На хабре или дочерних видел недавно статейку, где приводится сравнение в коментах о скорости закачки: в кратче, сейчас это примерно в два раза дольше, чем напрямую обращаться, имхо, по соотношению "полезные данные"/"гемморой реализации" Tor впереди. Опять же не стоит забывать, что Tor по всей видимости зависит от географического расположения и от страны использования.
  • Как восстановить проект из .git?

    @theg4sh
    fshp: ясно, вот правда не факт что это важнее. имхо, основная проблема в таких случаях - отсутствие альтернатив unix-утилит в винде.
    все равно, в свою копилочку знаний монетку я положил :)

    Hakhagmon что ж... терепения Вам. Если это Ваш проект, то я бы посоветовал поискать по хешу содержимого, объясню: видел, что есть чужие скрипты, значит есть оригиналы и их относительные директории, можно составить микро-БД по хеш суммам этих файлов с путями и уже плясать от хешей восстановленных из git. Все-таки 4к файлов, мягко-говоря, вручную разгребать - то еще удовольствие.
    Как минимум, этим действием можно почистить от "чужого" кода и уже копаться в своем.
  • Как восстановить проект из .git?

    @theg4sh
    fshp: да, я тоже смотрел вывод file, но он не всегда верный был, например, файл php она (утилита) определяла как файл C++...
    Как-то восстановил дерево?