Задать вопрос
  • Как метод массива sort, сортирует элементы массива?

    @rPman
    Потому что так определена функция сортировки
    compareFn(a, b) return value sort order
    > 0 sort a after b
    < 0 sort a before b
    === 0 keep original order of a and b

    Для чисел подходит как раз разница
    Ответ написан
    1 комментарий
  • Как во время цикла отсчитать время в else и отключить программу?

    @rPman
    Тебе нужно засечь момент начала отсчета (это запуск программы и вывод "Неть"?), просто заведи переменную - timeStart им присвой ей текущую дату now, соответственно сравнивай на каждой итерации значение этой переменной с текущим временем и если разница больше требуемой - выполняй свой код (отключение программы? sys.exit() )
    Ответ написан
  • Как мне как пользователю построить туннель к сайту, с которым у меня сложности при работе?

    @rPman
    Какие именно сложности?

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

    Что сделал я - сначала попробовал узнать датацентр, на котором хостился сайт, прописав его ip адрес (не доменное имя) в гугл и подсмотрев название организации, конкретно в том случае это не подошло но узнав страну, я выбрал датацентр, находящийся там же, арендовал там vps-ку c linux, настроил там x2go сервер (точнее тогда как я помню еще nomachine) и запускал браузер на этой удаленной машине, управляя им удаленно по сети. Тогда это стоило мне тройки десятков баксов (сейчас однозначно можно и дешевле),но дало практические знания по использованию vps-ок и решило проблему.

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

    Кстати этот способ дает интересный эффект с современными тяжелыми сайтами, он может заметно уменьшить объем сетевого трафика на машине, если не заходить на сайты мультимедиа и картинками, так как удаленный рабочий стол очень эффективно упаковывает содержимое экрана в сетевом трафике, гораздо эффективнее чем это делают криворукие разработчики, генерируя многомегабайтовые html страницы (x2go кеширует изображения, передавая их только один раз но не всегда это получается сделать именно для браузера, если изображение исчезает с экрана и потом снова появляется, например при скролинге, оно будет повторно передано)
    Ответ написан
    Комментировать
  • Как реализовать обмен токенов на сайте?

    @rPman
    попробуй эту статью
    bsc основан на эфире, поэтому инструкции подойдут
    Ответ написан
    Комментировать
  • Какую Windows 8.1 установить?

    @rPman
    На вики есть отличная табличка сравнения функционала

    если коротко, в подавляющем большинстве случаев, пользователям хватит core ревизии, если нужен домен контроллер, шифрование битлоккер, виртуализация hyperv, групповые полиси и по мелочи, то ревизию уже по выше - pro или enterprise

    С точки зрения лицензии, например, запуск внутри виртуальной машины разрешен только enterprise версии (там же remotefx фичи есть)

    p.s. если задаешь такой вопрос то вариант embended тебе не подходит
    варианты single language или vl тоже побоку, их отличие косметическое

    p.p.s. расширенная поддержка windows 8.1 прекратится в 2023 году в июле
    Ответ написан
    Комментировать
  • Какую систему можно использовать для поиска запроса среди текста?

    @rPman
    Для ответа на твой вопрос нужно знать, какие именно запросы ты собираешься делать.

    На каждый запрос необходимо создать индекс, некий массив данных, который позволит очень быстро (обычно с трудоемкостью log от количества данных) найти записи, соответствующие связанному с ним запросу (обычно это буквально значение -> список ссылок на записи, часто в виде сложной структуры, например древовидной). Запросы ведь бывают разные, есть простые - просто поиск по значению, математические (суммы, поиск min/max, и т.п.) и текстовые (например наличие слова в подстроке), и на каждый тип может понадобиться свой индекс.

    Индексы можно создавать самостоятельно в оперативной памяти средствами языка (например c++, java,.. имеют готовые классы для индексации типа has table или has tree или еще как). Настоятельно рекомендую взять готовый софт - реляционные базы данных, позволяющих очень красиво описать свои данные в виде реляционной структуры, настроить индексы и, пользуясь sql запросами, делать эффективные поисковые запросы.

    Открытые и бесплатные mysql, postgres, sqlite (последний очень простой, в виде библиотеки а не сервера а база в виде файла). В подавляющем большинстве случаев открытые и бесплатные инструменты будут более чем достаточны и не будут отличаться по скорости с дорогими платными инструментами, чаще всего они дают прирост в сложных ситуациях, когда есть многопользовательский доступ с одновременной записью, инструменты отказоустойчивости и т.п. в общем все то что в данной задаче скорее всего не нужно.

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

    Есть лайфхак, средствами файловой системы включаешь принудительное кеширование записи, т.е. игнорирование команды flush от сервера базы данных.. делать это можно разными способами, тюнинг файловой системы (ext4 journal date write back), виртуальные машины с принудительным кешированием, инструменты самой базы данных (например разместить файл лога т файлы хранения индексов в оперативной памяти) и т.п.
    Ответ написан
  • Установится ли windows 10 с windows 8.1?

    @rPman
    когда майкрософт бесплатно предлагало это сделать, очень много так и делали и было много сообщений как об успешном апгрейде так и не успешном.

    отсутствие драйверов может быть одной из причин неудачи

    советую взять и проверить, предварительно сделав резервную копию всего диска (с помощью clonezilla)
    Ответ написан
    Комментировать
  • Как изменить mac компьютера через запущенную linux с флешки?

    @rPman
    mac адрес хранится в железе в EEPROM памяти ethernet адаптера, да его можно изменить в операционной системе но это настройки исключительно на время работы этой ос до перезагрузки.

    В linux есть утилита ethtool, с ключом -e можно получить дамп EEPROM а с помощью ключа -E изменить конкретный байт в этой памяти

    Вот тут это успешно провернули (само собой любая ошибка имеет шанс превратить ваше устройство в кирпич)

    К сожалению рядовые десктопные железки не дают провернуть такой финт, по крайней мере ни одна моя десктопная машина не дала получить дамп EEPROM
    Cannot get EEPROM data: Operation not supported
    Ответ написан
    4 комментария
  • Какова архитектура коммуникации между сервисами?

    @rPman
    работу двух не моих сервисов
    собственно все проблемы тут.

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

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

    Плюс к этому еще мониторинг/уведомление о проблемах, если операция периодическая и совершается в автоматическом режиме, нужно сообщать о не завершенности ответственному лицу максимально оперативно и подробно... фраза - 'произошла ошибка 134' - неправильное сообщение, верное - 'обновление данных о сотрудниках не завершено по причине обнаружении дублирующих значений фио и день рождение Василий Иванович Пересменкин 13.02.00 для разных сотрудников', и в идеале по каждой ошибке предлагать какое то решение.
    Ответ написан
    Комментировать
  • Потери CPU на php при миграции на docker?

    @rPman
    у системы 'виртуализации' (точнее песочницы), используемой docker, работа с диском потребляет заметно большее количество процессора, в среднем десятки процентов, в худшем - 2х ухудшение производительности

    причина в файловой системе, которая реализует технологию снапшотов

    посмотри, какой storage driver у тебя используется, вроде бы lcsf самый быстрый

    На работу сети у докер так же есть понижение производительности (я читал про простые тесты iperf в режиме bridge, до 20% потери)

    p.s. если у тебя windows, немедленно меняй ОС, под ней docker работает только ради совместимости, производительность очень низкая
    Ответ написан
    Комментировать
  • Можно преобразовать файл .msixbundle в .exe?

    @rPman
    Открой файл как zip архив (переименуй или принудительно укажи архиватору распаковать), внутри будут привычные .msix, несколько для разных архитектур, описание в AppxMetadata/AppxBundleManifest.xml
    Ответ написан
    2 комментария
  • Как вызвать меню выбора операционной системы?

    @rPman
    F11/F12/F8 штатное меню bios выбора устройства загрузки
    Ответ написан
    Комментировать
  • Как убрать всплывавшие окна от Планировщика заданий Win10?

    @rPman
    в настройках задачи выбери Run whether user is logged on or not/Выполнять для всех пользователей
    Ответ написан
    Комментировать
  • Есть ли в c# ограничение длины строки компилятором?

    @rPman
    2Gb
    The maximum size of a String object in memory is 2-GB, or about 1 billion characters.
    Ответ написан
    3 комментария
  • Как сделать свой собственный интернет для дома?

    @rPman
    Интернет не появляется из ниоткуда, он не растет на деревьях.
    Интернет - это буквально физическое подключение канала передачи данных в обе стороны.

    Если у тебя нет физического кабеля (например линия электропередач), радио или оптического канала до того места, где интернет есть, то сделать собственный Интернет не получится.

    Сейчас в мире существует универсально (почти в любой точке мира) только спутниковый интернет, при этом требуется исходящий канал (входящий может быть вполне быстрым благодаря спутниковой тарелке), и уже он будет дорогим и медленным. Топать к ОпСоСам, они все сделают, настроят и проконсультируют с ценами как я понимаю от 15т.р. в месяц.
    upd. хм, смотрю цены совсем низкие стали

    До прихода спутникового Интернета от Илона Маска, пинги будут почти секундными!

    p.s. Tсли тебе нужен интернет с маленькой буквы (без подключению к глобальному), то для этого достаточно две машины (или одна физическая и несколько виртуальных), чтобы соблюсти формальности, а по факту tcp/ip (на основе которого работает интернет) будет работать на loop back виртуальном устройстве в пределах одной машины (например localhost 127.0.0.1).
    Ты можешь настроить локальный веб сервер, локальный dns (в т.ч. /etc/hosts) и наслаждаться любыми именами веб сайтов в браузере.

    Будут некоторые проблемы с https но решаемые.
    Ответ написан
    2 комментария
  • Telegram с чистого листа, возможно?

    @rPman
    telegram позволяет работать в пределах контакт листа (на основе телефонного номера) тем кто прописал тебя в свой контакт лист, вне зависимости от никнейма (он вообще не обязателен)

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

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

    @rPman
    воспользуйся Total или Far Commander, которые не скрывают, как проводник, файлы от пользователя (в настройках включи показ скрытых файлов)
    Ответ написан
    Комментировать
  • Как поставить кастомную скорость Ethernet?

    @rPman
    что такое
    настройки сетевого порта 1950 на 50


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

    Ты можешь в лучшем случае настроить mtu в настройках ОС и уменьшить накладные расходы процессора на обработку пакетов за счет уменьшения скорости при передачи 'мелких файлов' (т.е. список файлов будет медленее передаваться но большие файлы ближе к теоритическому максимуму)

    Кстати сетевые карты, способные работать буквально на 1гбит, обычно это не встроенные и дешевые (те могут давать скорость по iperf меньше, например 800мбит) плюс не забываем что скорость зависит от обоих сторон

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

    p.s. существует возможность объединения нескольких сетевых каналов в транк (это по разному называется, в linux - это bonding), один из режимов там как раз суммирование скорости, т.е. 2 сетевые карты дадут 2гбита (каждая сетевая карта свой кабель)

    само собой такая же пара должна быть с другой стороны, не дешевые управляемые роутеры/свитчи умеют принимать транк на разные свои порты
    Ответ написан
    Комментировать
  • Как математически обоснована безопасность 6-ти подтверждений транзакции?

    @rPman
    1,2,..6 подтверждений - это абсолютно бессмысленная метрика.
    главная задача подтверждений - защита от двойной траты, т.е. атаки тех пулов, которые именно в этот момент нашли подряд несколько блоков (вероятность этого не нулевая, и прямо пропорциональна мощности пула, 100% она у пулов со 100% мощностью но уже при 50+% мощности пул может откидывать чужие блоки, тем самым обеспечить себе 100% контроль над сетью)

    Проблема в том что стоимость отмены транзакции для пула майнинга, обладающего меньше 50% мощности равна доходам от майнинга с отбрасываемых блоков. Допустим твой сервис принимает монеты от 1 подтверждения, значит пул-атакующий должен совершать сделки и на каждую майнить блок, в котором его перевод отменяется (направлен по другому адресу) с длиной цепочки 1 блок, и все провалившиеся попытки (а для пула с мощностью в 1% это будет 99% попыток) - это будут убытки этого пула, т.е. недополученная прибыль

    Понятно, что экономический смысл такой атаки есть только в том случае, если суммы отменяемых сделок выше стоимости потерь.

    Отсюда простая формула, количество подтверждений, которые сервис должен ожидать от сети для каждой входящей транзакции должна быть равна или выше количеству блоков, из расчета количества намайненных монет за эти блоки равна или больше чем суммы, фигурирующие во входящих транзакциях на сервис. Т.е. если в сторону сервиса мало транзакций, суммой меньше дохода от майнинга за блок, значит достаточно ждать 1 подтверждение, если суммы выше - значит количество подтверждений лучше увеличить.

    количество подтверждений = int(Суммы, ожидающие сервисом на прием/Доход с одного блока майнерам)+1

    p.s. на самом деле все сложнее, атакующий может атаковать одновременно несколько сервисов (т.е. нужно брать суммы всех транзакций в сети минус исходящие переводы сервиса)
    Ответ написан
    Комментировать