Задать вопрос
  • Как генерировать ошибки для ключевого слова?

    @rPman
    библиотеки такой нет, делать самому, обычным перебором.
    - разрывы: цикл по количеству букв в слове - 1: вставить пробел на i-ое место
    - повторить если нужно по два, три.. более разрывов в слове, пропуская более одного пробела рядом
    - пропуски: то же самое только вместо вставки пробела удаляем символ
    - удвоения символов: то же самое только вместо подстановки пробела, подставляем текущий символ
    - опечатки и подстановки
    в плохом варианте, перебором для каждого допустимого символа делаем то же самое что для пробела
    в хорошем варианте, каждому символу задаем список символов, на которые он может быть заменен (соседние на клавиатуре)

    в результате на каждое слово будет массив его модификаций.

    p.s. не понимаю как все это поможет решению поставленной задачи?
    Задача - реализовать неточный поиск с использованием алгоритма Ливенштейна
    это алгоритм вполне конкретный и очень простой, в нем нет никаких генераций подстановок и опечаток
    Ответ написан
  • Как сделать диск С компьютера системным диском в Virtual Box?

    @rPman
    virtualbox это НОВЫЙ компьютер, соответственно если что то нужно получить таким же как на оригинальной машине, нужно поступать точно так же как поступил бы если бы настраивал вторую машину.

    Как вариант, создать виртуальную машину как клон оригинальной системы (сделать копию диска, загрузившись в livecd), само собой документы, чтобы не делать две копии, открывать 'по сети', которую можно настроить между виртуальной машиной и оригинальной (по умолчанию там nat лучше сделать сетевой мост bridge с сетевой картой машины, если у тебя есть локальная сеть а интернет не подключен напрямую к компу)
    Ответ написан
    1 комментарий
  • Как проверять архивные бэкапы?

    @rPman
    Известная проблема, написать программу, которая будет проверять корректность бакапа, но кто проверит проверяющего? еще одну программу писать?

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

    Поэтому в конечном счете нужно это делать вручную, не доверяя своим ранним настройкам.

    p.s. по теме, к примеру если используешь популярный архиватор winrar то у него есть опция проверки архива после архивации, а так любые утлиты сравнения файлов или подсчета хеша, та же md5sum (linux пакет утилит можно получить установив cygwin)
    Ответ написан
    Комментировать
  • Почему Openvpn не открывает localhost?

    @rPman
    Причем тут openvpn и localhost?
    Тебе нужно подключившсь к серверу по openvpn подключаться к localhost? во первых твой проект должен слушать не localhost а 0.0.0.0 или хотя бы ip адрес в той сети, которую поднимает openvpn и кстати, запуск проекта который слушает порты должен происходить после запуска openvpn так как 0.0.0.0 биндит только адреса, доступные на этот момент

    p.s. минутка бреда - а ты настроил nat на localhost чтобы достучаться до серверного?
    Ответ написан
  • Как установить Grub на Ubuntu Server?

    @rPman
    Чтобы установить uefi загрузчик, нужно запустить livecd версию linux в режиме uefi, затем из консоли примонтировать разделы операционной системы (важны корень / /boot и главное /boot/EFI, напоминаю чтобы UEFI работало нужен раздел с загрузчиком EFI формата fat32 размера примерно 100мб) и выполнить
    grub-install --root-directory=/mnt /dev/sda
    где /mnt это корень системы, а /dev/sda устройство, на котором находится /efi раздел (по уму кстати в UEFI режиме раздел не нужен, так как загрузочный сектор уже не используется, но я как то без раздела указал, мне выдало ошибку, я не копался)

    grub сам проанализирует структуру используемых разделов, установит efi загрузчик на диск и запустит efibootmgr которая обновит таблицу в биосе. Можно конечно самому все запустить без grub но с ним проще.

    p.s. /boot системы должен находиться в файловой системе, про которую знает grub (например bcache он не знает), а в простых случаях типа btrfs/ext4/... у корня, раздел /boot вообще не нужен.
    Если нужен legacy режим то у grub-install нужно указать раздел куда загрузчик установить, ну и если это диск с gpt разметкой, то там должен быть раздел bios boot (1мб)
    ------------------------------------------------------
    upd. если --root-directory не работает (у меня разок так было то ли версия ОС была экзотическая то ли еще почему) то нужно смонтировать помимо всех каталогов ос в /mnt еще и /dev /sys /proc/ и /run с помощью mount -o bind /dev /mnt/dev ..., затем сделать туда chroot /mnt и уже из него запустить grub-install /dev/sda и кажется еще /mnt/etc/mtab редактировать нужно (в общем муторный способ)
    Ответ написан
  • Как повысить стабильность WebRTC, Asterisk?

    @rPman
    В основном проблема наблюдается в странах бывшего СНГ.

    мобильные провайдеры могут блокировать как webrtc так и много другого, так как это p2p протоколы и им сложно умные dpi машины делать/покупать
    Еще opera по умолчанию может блокировать webrtc трафик по секурным соображениям (это можно включить) часть или только входящие

    Правильно сказали, белый ip и без NAT могут сильно помочь.

    p.s. что значит vpn помогает но не очень?
    Ответ написан
  • Монтирование диска в Windows(не самба)?

    @rPman
    Если нужно подключать как каталог на системном диске, то только один вариант - монтирование диска из образа (умеет windows pro и выше ревизии, по самба подключаешь образ диска) или блочного устройства (iscsi, или aoe, если готов выделить отдельное сетевое устройство и vlan для него, есть еще более простой nbd но драйверов для windows под него я не нашел)

    Иначе сетевые диски примонтровать в каталог не получится

    p.s. есть еще gvfs (это FUSE но для windows) попробуй, отпишись, вроде есть библиотеки для sshfs (у тебя в тегах оно стоит) но это будет не быстро
    Ответ написан
    4 комментария
  • Как установить windows 10 без флешки?

    @rPman
    В одной непростой ситуации (смена битности, кажется нельзя поставить x86 из x64), я ставил windows из virtualbox, пробросив целевой диск внутрь виртуалки (гуглить VBoxManage internalcommands), после первой перезагрузки внутри виртуалки выключал ее, выключал физически машину и вытаскивал старые диски.

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

    @rPman
    Если переменная нужна в каждом запросе в течении некоторого времени и небольшая по размеру, то можно сохранить в сессионных куках setCookies а в php $_COOKIE[имя]
    Ответ написан
  • В любой принтер можно любую смолу?

    @rPman
    Не совсем
    Есть различия в технологиях, например требования к свету. Принтеры работающие от видимого света требуют свою смолу, и смола от ультрафиолетовых не подойдет.

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

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

    @rPman
    Если есть миниатюра + если вотермарка относительно простая (она не капча, а фиксированное изображение, с поворотом и скалингом), есть возможность восстановить изображение, математически это возможно, по факту решив уравнение (функция - наложение известной вотермарки + ее модификация + скалинг до миниатюры = миниатюра)

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

    Если вотермарка меняется по сложному алгоритму, этот способ не подходит.

    p.s. с высокой вероятностью на сайте есть 'уязвимость', позволяющая вытащить оригинальное изображение, отличным примером поиска такого является вот эта статья - "Кража закрытых видео YouTube по одному кадру"

    p.p.s. хабр не дает вставлять эту ссылку так как слово вдсина в адресе под запретом О_о
    Ответ написан
    Комментировать
  • ASP.NET Core 3.1 + IIS + Powershell SDK. Как запустить стороннее приложение через PowerShell на виртуальной машине?

    @rPman
    На сколько мне известно, единственный способ запустить процесс от пользователя, отличного от залогиненного, без запроса логина и пароля - это использование службы task scheduler (планировщик).

    Создаешь задачу без условий запуска, в свойствах указываешь что у тебя другой пользователь, вводишь логин пароль - все. Теперь чтобы запустить эту задачу нужно написать schtask /run ...

    p.s. тут обсуждалось как это сделать из power shell, но прав iis не хватит

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

    p.p.p.s. Когда то очень давно была сторонняя утилита srvany, которая поднимала службу, позволяющую запускать указанную утилиту под правами службы, а сами эти права настраивались в реестре.
    upd. во
    Ответ написан
    Комментировать
  • Как дать скрипту внешний ip из локальной сети?

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

    может они хотят денюжку чтобы 'специалист пришел и настроил'? в это я поверить могу.
    Ответ написан
  • Какой эмулятор Андроида является самым продуктивным и быстрым?

    @rPman
    Попробуй anbox.io в linux, запущенном в привычном эмуляторе типа virtualbox, с проприетарной поддержкой 3d ускорения (глючная)

    Лучше конечно все делать в нативном linux, тогда будет работать все максимально быстро.
    Ответ написан
    Комментировать
  • Как можно ограничить доступ к папке при помощи драйвера?

    @rPman
    У всех возник вопрос зачем? почему такая простая задача (папку надо шифровать, если она ntfs) решается на столько неадекватным способом?

    Если я верно понимаю концепцию фильтров - регистрируешь I/O фильтр, мониторишь что кто куда и даешь при необходимости отлуп. В документации есть пример кода на примере мониторинга операции удаления файлов
    Ответ написан
    Комментировать
  • Какие есть области без гитов, докеров, фреймворков, итд?

    @rPman
    Становись тестировщиком, это хорошее занятие для начинающих в it

    p.s. с другой стороны хороший тестер этот тот кто умеет программировать и понимает как устроено внутри, но это уже другой разговор
    Ответ написан
  • LSTM прогнозирование на 1 шаг, как спрогнозировать на N шагов?

    @rPman
    Боюсь у тебя предсказание не получается, твой алгоритм выдает усреднение, а значит эти данные нельзя смешивать с исходными чтобы попытаться предсказать следующие данные, ведь динамика поведения предсказанных данных отличается.

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

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

    @rPman
    Когда то, там где это было не критично, бакэенд я делал в виде примитивной прослойки для базы данных и хранения sql запросов, т.е. клиент в запросе выдавал идентификатор запроса и список его параметров именованным массивом, а сервер возвращал табличку как есть, код на php чуть ли не десяток строчек плюс список sql запросов. Если запросов за раз бывает много, ввести возможность отправки их пакетом....
    мне не требовалось но я помню думал над таким
    , что когда нужно выполнить серию запросов, пользующихся возвращаемыми данными друг друга, можно использовать перменные, указывая вместо значений идентификаторов их имена в каком-нибудь формате, пронумеровав и поименовав их
    Например два запроса - FIRST:select b_id from table_a where id=123 и второй SECOND:select name from table_b where id={FIRST:b_id} тут в качестве параметров будут переданы FIRST:[id:123] и SECOND:[id:"{FIRST:b_id}"]

    Немного сложнее с запросами на модификацию, сами запросы не сложные но нужно будет как то описывать ограничения, что можно к примеру удалять или править а что нет, в общем под задачу, но точно так же как и с запросом данных на чтение, бакэнд выступает исключительно простой прослойкой к вызовам методов sql драйвера (понятно что до вызовов по методам доходить не стоит, т.е. к примеру после вставки записей insert можно тут же вызвать lastInsertId и вернуть его в ответе, а так же проверить на ошибки и собрать подробности (запихнуть в лог и выдать клиенту)
    Ответ написан
    Комментировать
  • Как в LEFT JOIN сделать условие объединения таблиц по нескольким полям?

    @rPman
    Зарос выглядит правильным, значит что то с данными не так.

    Посмотри что выводит запрос если оставить только одно условие к примеру по street? и выводи в select *
    Ответ написан
    1 комментарий
  • Как уберечься от слишком частых ajax запросов?

    @rPman
    websocket

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