• Многопоточная работа с одним файлом, как лучше сделать?

    @acwartz
    Тут должна быть ваша реклама.
    Такое кол-во потоков избыточно. Файл можно открыть как stream и влезть в абсолютно любую его часть, таким образом работать с ним как с массивом байт разбитым на блоки.

    Вот и поделите размер в байтах на N потоков и передайте эти смещения потокам. Первый читает с нуля и признает конец строки равный nul-символу/либо иной другой line-ending типа LF/CRLF, остальные ищут #0 от начала блока и начинают читать данные вплоть до границы своего блока.

    Понятное дело что строки будут порваны. Тут уж фантазия на выгул. Можно собрать и обработать в конце.
    Если при чтении блока конец строки не достигнут, поток сообщает этот кусок незавершенной строки и начало строки (смещение в файле) менеджеру пула, строки складываются по возрастанию смещения от 0.
    Если чтение блока начато не от начала смещения, т.е. нашли чей-то хвост, его так же передают менеджеру.
    В конце, менеджер последнему потоку передает необработанные части на доработку.
    Ответ написан
  • Как скомпилировать проект c github?

    @acwartz
    Тут должна быть ваша реклама.
    Откройте package.json в секции scripts будут прописаны команды которые собирают всё.
    Обычно так:
    npm i -g yarn gulp-cli
    потом из папки проекта: npm i
    Потом npm run <команда из scripts>
    какая именно - надо смотреть сам package.

    # Starter for html pages developing.
    ## What is inside?
    - Webpack 4
    - Pug
    - Sass

    Ржу что-то....
    Ответ написан
    Комментировать
  • Почему не выводит и показывает красным в Java?

    @acwartz
    Тут должна быть ваша реклама.
    Потому что в предположительно функции
    Square(int i)
    вы выполняете присвоение x = i, вместо возведения i в квадрат, и записи результата в переменную x.
    Ответ написан
    Комментировать
  • Можно ли запустить Linux ТОЛЬКО на видеокарте?

    @acwartz
    Тут должна быть ваша реклама.
    Важно понимать почему его нет. Банально дело в разделение труда и кооперации.

    CPU берет на себя всю работу по исполнению программного кода и не лезет в графику, имеет собственное охлаждение, шину электропитания и оперативную память.

    GPU берет на себя всю работу по обработке графики и вывода изображения, имеет своё охлаждение и шину электропитания и даже оперативную память.

    В сумме каждый занят своим делом и не ждет другого.
    ПО может передавать вычисления с GPU на CPU, например nVidea может отравить вычисления физики Phys-X когда тот ничем не занят.

    Следовательно ответ: возможно, но никто поддержкой этого заниматься не будет т.к. CPU всегда есть и он занят своим делом.
    Ответ написан
    Комментировать
  • Как вытащить значение конкретного запроса которое передается по API через Chrome DevTools?

    @acwartz
    Тут должна быть ваша реклама.
    Либо через самописное расширение devtools.network API выгребать с нужным фильтром. Либо Ctrl+F и вбить нужное.
    Ответ написан
    Комментировать
  • Как запретить Google Chrome выгружать открытые вкладки из памяти?

    @acwartz
    Тут должна быть ваша реклама.
    Заходите на chrome://discards/ и выключаете в нужной вкладке в "Auto Discardable"
    Ответ написан
    2 комментария
  • Как создать подобный preloader?

    @acwartz
    Тут должна быть ваша реклама.
    Посмотреть у них в исходниках F12 -> Sources -> webpack://.
    Ответ написан
  • Как верстать под печать?

    @acwartz
    Тут должна быть ваша реклама.
    Но мне кажется, что это ерунда. Туда отдельно писать код для всей страницы снова?

    На чистом CSS - да.

    Чтобы скрасить монотонность копирования одного и того же, существуют препроцессоры css (LESS, SCSS, Stylus), и вместо дублирования под все медиа, Вы сразу пишите медиа запросы к конкретному классу, в последующем препроцессор сформирует нужное, и оно будет ожидаемо работать.
    Например:
    .sidebar {
      width: 300px;
      @media screen and (orientation: landscape) {
        width: 500px;
      }
      @media screen and (min-width: 640px) {
        width: 350px;
      }
      @media print {
        display: none;
      }
    }

    на выходе будет:
    .sidebar {
    	width: 300px;
    }
    
    @media screen and (orientation: landscape) {
    	.sidebar {
    		width: 500px;
    	}
    }
    
    @media screen and (min-width: 640px) {
    	.sidebar {
    		width: 350px;
    	}
    }
    
    @media print {
    	.sidebar {
    		display: none;
    	}
    }


    Отладка меди-запросов включается в DevTools доп утилитах рендера:
    5f9925e993892286417134.png
    Туть:
    5f99260ea64cd837540535.png
    Ответ написан
    3 комментария
  • Как создать реферальную систему в приложении?

    @acwartz
    Тут должна быть ваша реклама.
    ref является идентификтором другого пользователя, чем именно - сами решайте. Хоть напрямую userId из БД.
    На нужных страницах поддерживается параметр строки ?ref= если с ним процесс регистрации окончен то на бэкенде будет выдан зарегистрированному новый userId и так же будет известен userId пригласившего, его можно записать например referedBy = Дальше какая-то магия распределяющая бонусы...
    Ответ написан
    Комментировать
  • Веб-сервис на ASP.NET и его админка (виндовое приложение) - это два разных приложения, или можно уместить в одно?

    @acwartz
    Тут должна быть ваша реклама.
    Зачем вам виндовое приложение для админки веб-сервиса, когда на винде есть браузер или даже несколько? Они тоже программы windows. И очень даже GUI.
    Просто напишите веб-сервис, морду пользователя и морду админа.

    А по уму сервис на пользователя должен быть отделен от административной части, т.е. вообще в себе не нести ни байта административного кода типо такого:
    5f982106cb357020232391.png
    Ответ написан
  • Бан за Chrome headless, почему?

    @acwartz
    Тут должна быть ваша реклама.
    если идет эмитация нажатий кнопок то есть Event.IsTrusted свойство, которое сообщает что кликать пытается не реальный клиент, а бот.
    Ответ написан
    Комментировать
  • Почему расширение chrome может записывать видео?

    @acwartz
    Тут должна быть ваша реклама.
    Браузер это отдельная операционная система, задуманная работать где угодно до тех пор пока ваше устройство поддерживается.
    Ответ написан
    1 комментарий
  • Как передать переменную из инпута из popup.js в inject.js?

    @acwartz
    Тут должна быть ваша реклама.
    попап играет по тем же правилам что любые другие страницы.
    Нужно дождаться DOMContentLoaded и тогда биндить ивенты и разрешать работать.
    Ответ написан
    Комментировать
  • Зачем нужны Module и Namespace?

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

    И тут вы подключаете AwesomeModule к котором тоже кто-то написал MyCoolClass с кучей IMyBestFrendDependancy. Вы хватаетесь за голову, т.к. пакет делает нужное, но использовать его - значит переписать 95% кода чтобы имена не пересекались. В своём коде или в пакете... головняк же.
    Вот тут-то и приходят на помощь namespace. Позволяют существовать чему-угодно с одними и теми же именами.

    Модуль - супер-класс, который содержит некоторые common-классы используемые только внутри этого модуля, экспортирует только то что вы укажете + некоторые другие мелочи в архитектуре angular (регистрация интерцеепторов, фабрики и т.д.).

    Как и первое так и второе можно использовать для написания модульной архитектуры. Например подключаемых плагинов которые будут добавлять динамически новое в уже существующее приложение, используя ташние ресурсы либо добавляя свои.
    Ответ написан
  • Почему не работает функция shExpMatch внутри pacScript?

    @acwartz
    Тут должна быть ваша реклама.
    У вас проблема с пониманием рег. выражений а не с функцией.
    То есть в теории, если адрес сайта содержит единицу в конце

    Ваше рег. выражение не только не ищет единицу в конце строки но и вообще ошибочно.

    Кроме того вы ищите в url, в не IP адресе, надо пропустить хост через dnsResolve и на выходе будет IP-адрес сервера на который собираются попасть.
    Ответ написан
    1 комментарий
  • Как можно перехватить запрос к API с последующим изменением?

    @acwartz
    Тут должна быть ваша реклама.
    Изменить содержимое запроса можно через webRequest.OnBeforeRequest, а вот подменить ответ на запрос нельзя никак.
    Ответ написан
    Комментировать
  • Ошибка в коде или нет?

    @acwartz
    Тут должна быть ваша реклама.
    Кусок кода не тот.
    Нужно смотреть что делает user.save или account.save т.к. списание суммы есть:
    $user->Money -= 250000;
    но далее нигде больше не фигурирует в т.ч. в запросах.
    Ничего более путного "ну вот почему-то не снимается" ответить пока не получится вам, т.к. нет кодв отвечающего за сохранение состояния или реакции на изменение поля класса user/account.

    Ах да, деньги вы списываете, но при ошибке не возвращаете обратно.
    Чтобы вы не делали в случае ошибки, транзакцию нужно откатывать и не писать ничего в базу. А у вас ни туда ни сюда. 50 человек вам с поддержку напишут, получите головняк на пару суток, не справитесь, получите отток клиентов за "развод" т.к. деньгу списали а чебурашку не продали.
    Ответ написан
  • Как собрать программу (несколько вопросов)?

    @acwartz
    Тут должна быть ваша реклама.
    Имя файла это имя проекта, можно изменить в менеджере проектов:
    5f896f9c34249105669309.png

    Расположение выходного файла меняется в настройках проекта,
    обратите внимание на наличие вагона конфигураций:
    5f896fb08365a536392909.png

    Я для output directory для all values - all platforms указываю ..\bin\, там и плодятся все бинарники.
    Но это у меня т.к. структура проектов всегда такая:
    ./prjects//bin/.exe
    ./prjects//source/DCU/{Platform}/{BuildMode}/
    ./prjects//source/.dproj
    3) В настройках проекта указал лого и иконку(почему то у exe'шника и в трее они не меняются) - их(иконки) нужно так же около exe файла держать?

    С лого и прочим тоже самое, для каждого конфига нужны свои настройки.
    Иконка в трее берется из соотв. свойства компонента.

    4)Еще такой вопрос - как лучше хранить настройки по умолчанию?(сейчас они просто прописаны в коде) Была мысль - ini файл рядом с exe положить, но среди настроек есть некоторые "секретные", поэтому нужно, чтобы обычный пользователь их не трогал и не видел - нормальное ли решение будет добавить dll в котором прописать функцию устанавливающую эти настройки(например логин, пароль, адрес сервера куда отправляются запросы)
    обычные настройки(автозапуск, горячие клавиши) записываю в реестр.

    Вдумайтесь, настройки по-умолчанию это те настройки которые есть всегда вне зависимости от доступности реестра/файлов. Они должны быть внутри самого exe, т.е. прямо в коде прописаны либо модулем с константами/функциями. И не надо городить ни в ресурсах ни рядом ни в dll ничего, никаких конф. файлов. Это лишняя и пустая трата времени, в 95% случаев вы туда только в первый раз полезете и всё.

    5) Нужно ли сжимать exe файл с помощью upx?

    И зачем это нужно делать? Чтобы лишний раз панику пользователю развести на пустом месте из ничего?
    Если задаётесь этим вопросом, ответ - НЕ НУЖНО. Соберите Release и всё.

    6) С помощью чего создать инсталлятор? сильно ли критичный вариант создать sfx-архив с exeшником, файлом реестра и dll файлам?.

    А точно нужен этот инсталлятор?
    Батника Uninstall с командой start /wait yourapp.exe --uninstall недостаточно? Программа запустится, найдет аргумент вычистит все свои данные, и завершится. Батник грохнет свою папку и себя. Всё.

    Инсталлятор нужен когда приложение очень много файлов ставит в т.ч. в систему (системные библиотеки, масса записей в ресстр). Если очень хочется модно/молодёжно, то создавайте при помощи InnoSetup.
    Ответ написан
    Комментировать
  • Как применить прокси в своём расширении?

    @acwartz
    Тут должна быть ваша реклама.
    Да собственно примеров в документации достаточно:
    Пример установки Socks5 прокси для всех сайтов кроме foobar.com
    var config = {
            mode: "fixed_servers",
            rules: {
              proxyForHttp: {
                scheme: "socks5",
                host: "1.2.3.4"
              },
              bypassList: ["foobar.com"]
            }
          };
          chrome.proxy.settings.set(
              {value: config, scope: 'regular'},
              function() {});


    Вот оф. пример расширения.
    Ответ написан
    5 комментариев
  • Delphi 10.4.1 видит регистр XMM0-XMM7 но ругается на XMM8 и более, почему?

    @acwartz
    Тут должна быть ваша реклама.
    Все что после XMM7 это для x64. Вики.

    Переключите приложение в сборку под x64, а лучше оберните нужный кусок кода в соотв. условие:
    {$IFDEF CPUX86}
      asm
        // ...
      end;
      {$ENDIF CPUX86}
      {$IFDEF CPUX64}
      asm
        // ...
      end;
    {$ENDIF CPUX64}
    Ответ написан
    Комментировать