Задать вопрос
  • Как сделать поиск с лишним словом в postgresql?

    @rPman
    замени слово которое не важно на символ % и условие должно быть where field like 'xxx % yyy'
    Ответ написан
  • Можно ли отследить заходил ли человек в определённую папку?

    @rPman
    Понятие вошёл в папку расплывчатое, я ещё не спросил про ОС, а ведь есть куча приложений, позволяющих 'лазить по папкам'

    Есть простой но не красивый способ, в windows файловая система ntfs позволяет сохранять у файлов и папок время последнего их чтения (есть соответствующий ключ в реестре, рекомендуют отключать, чтобы система не тратила на это ресурсы диска, по умолчанию включено)
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] value name NtfsDisableLastAccessUpdate to DWORD значение 0 или 1

    и.е. из питона можешь периодически опрашивать время последнего доступа к каталогу и при его изменении реагировать.
    os.path.getatime(path)


    Это время меняется на любой доступ к файлу или каталогу, включая к примеру поиск или индексирование
    Ответ написан
    Комментировать
  • Не поддерживает русский язык, формат xls?

    @rPman
    Во первых, ты создаешь html а не excel, да офис умеет открывать такие файлы и даже не ругается, но если хочешь работать с документами напрямую, работай с .xlsx или .ods (open document стандарт поддерживается везде и всеми, это стандарт для документооборота, пользуйся лучше им) - это по факту архив с текстовыми xml документами

    По факту, настрой кодировку, с которой ты будешь общаться с базой данных set_charset либо поменяй свою кодировку в php коде на ту же что выдает база данных (utf-8) и пропиши в твоем html в в заголовке
    Ответ написан
    Комментировать
  • Можно ли научить нейросеть определить, есть ли в последовательности из 10 чисел 3 подряд убывающих?

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

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

    @rPman
    Не е*и себе мозги, пожалей себя
    Год назад я бы сказал - возьми любую x86 железку со встроенным процом, к примеру интелевские j-серии неплохие по мощности (особенно 19+ годов выпуска), с потреблением до 15ват, с использованием opencl встроенная видяха даст кое какое ускорение (если найдешь готовые библиотеки нейронок под это, они есть но на порядок меньше чем под nvidia), и при необходимости добавишь видеокарту, любую...

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

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

    еще намек - распознование образов в реальном времени не тянут даже стационарные компы с дорогой видеокартой с киловат/час энергопотребления
    Ответ написан
  • Как передать переменные/аргументы из python в dll? И можно ли это осуществить?

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

    https://habr.com/ru/post/466499/
    Ответ написан
    4 комментария
  • Самый простой способ сделать домашний VPN сервер?

    @rPman
    windows server штатно имеет поддержку vpn pptp или l2tp и да, есть роутеры с поддержкой vpn (гуглится первый попавшийся мануал)
    dyndns и аналоги отлично решают проблему не статичного ip
    Ответ написан
    Комментировать
  • Рефакторинг кода. Как оптимизировать количество if?

    @rPman
    Вместо if в таких случаях используют switch case.

    Альтернатива - определи map с ключом твои сравниваемые значения и значением делегат Func или экземпляр класса с виртуальным методом. Но что бы ты не делал, синтаксически это не добавит тебе простоты, а просто переместит в другое место определение кода и сравниваемое значение.

    Есть еще препроцессор #if или даже собственный кодогенератор, иногда оно оправдано.

    Городить что то сложнее switch нужно, когда логика, стоящая внутри кода около каждого из вариантов значения, может быть свернута в общий единый код или наоборот, он весь сводится к коротким инструкциям,красиво смотрящимся в виде анонимных функций, которые неплохо смотрятся в виде констант иннициализатора map
    Ответ написан
    Комментировать
  • Как вырезать компоненты windows?

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

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

    p.s. У кастомных сборок есть один главный недостаток, мешающих использовать их на постоянной основе как основная система - при очередном обновлении в систему вернутся и телеметрия, и метро-приложения, и one-drive со скайпом и прочее прочее, причем бывает все возвращается постепенно, что то сразу, а что то ждет крупного обновления.

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

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

    текущее значение = стартовое_значение_переменной + (конечное_значение_переменной - стартовое_значение_переменной)*(разница между текущим временем и начальным в секундах/длина всего интервала в секундах)
    Ответ написан
    Комментировать
  • Как защитить контент от парсинга с помощью Nginx?

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

    Анонимно доступные данные, в общем случае, защитить от выгрузки пользователями - невозможно. Все что пользователь видит на экране можно тупо скопировать и проанализировать.

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

    Можно поставить 'палки в колеса', сделав этот процесс сложнее (и дороже), в основном это запутывание/шифрование данных, доступных напрямую (по api) с бакэнда и обфускация кода, его преобразования в видимый пользователю контент, чтобы классические (дешевые) инструменты не работали. Как всегда стоимость защиты (затрат на разработку) должна быть сравнима затрат граберов на получение данных (обычно им проще).
    К сожалению вместе с контент-грабером, в заблуждение будут введены роботы поисковых систем, ведь их основная работа - грабить контент.
    spoiler
    * api не должен быть простым и интуитивно понятным, идентификаторы могут вообще не быть постоянными (их можно преобразовывать на бакэнде на основе данных в сессии)
    * код javascipt, например получения ссылки на объект должен быть нетривиальным, т.е. чтобы получить следующую ссылку на требуемый граберу объект, потребовалось бы использовать сам браузер (а не простенький скрипт парсер html)
    * верстка может быть непостоянной, изменяющиеся, простые гуляющие наименования классов и идентификаторов уже могут создать кучу проблем (я такое встречал), а уж постоянное изменение структуры должно совсем запудрить голову даже опытным граберам (не встречал)
    * шрифт может не являться правильным (видимые символы могут не соответствовать их кодам), при этом генерируемый каждый раз новый под конкретную сессию пользователя. Простая подстановка, сильно усложнит (но не сделает невозможной) получение данных через буфер или document.innerText в консоли браузера, оставив граберу только вариант распознавание экрана скринридером (а не тривиальная верстка потребует от пользователя сложную настройку и автоматизацию и эти инструменты)
    * типовые javascript методы браузера должны быть замещены на 'неправильно работающие', чтобы граберу пришлось использовать внешние скрипты а не простой инжект javascript (обычно это сильно упрощает).
    Ответ написан
    3 комментария
  • Как хранить большие JSON массивы, которые постоянно обновляются (API)?

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

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

    А сами данные, в формате, получаемом от озона нужны в совместимом формате (не нужна ли агрегация данных с нескольких запросов?)?

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

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

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

    p.s. я воспринимаю хранение в файлах как использование nosql база данных, тем более что это очень даже быстро, и даже если хранение данных в режиме много файлов в одной записи

    p.p.s. хранение файлов в php формате (var_export) и подключение их include может оказаться самым быстрым способом из всех возможных, для readonly 'баз данных' (json или serialize медленнее в полтора два раза).
    upd. мне тут подсказали что есть еще более быстрый сериализатор php - igbinary и входит в поставку того же debian/ubuntu
    Ответ написан
    Комментировать
  • Как сделать, чтобы телеграм-бот не отвечал на групповые фото?

    @rPman
    Запоминай время последнего фото, и если текущее время и предыдущее отличаются меньше чем на секунду, все пропускать и не слать сообщение
    Ответ написан
    Комментировать
  • Возможно ли узнать реальный IP сервера защищенным CloudFalre?

    @rPman
    Когда то достаточно давно видел в сообщении об ошибке clud прокси что сайт по такому ip не отвечает, так вот он был не из локальной сети, поэтому могу предположить что такой вариант конфигурации возможен и он может спалить твой адрес, как минимум это способ тестирования.

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

    @rPman
    Не пользуйся крон, это худший способ запуска кода 'как можно чаще'.

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

    Этот скрипт запускать, создав простейший сервис
    Ответ написан
    Комментировать
  • Странные вещи с сетью на ноутбуке, как исправить?

    @rPman
    Если остальные машины в сети получают ip по dhcp, то логично, что наступает коллизия, одинаковые адреса и обе машины теряют сеть, переткнуть кабель и адрес выдают новый, до следующей коллизии
    Ответ написан
  • Почему долгий запрос delete к таблице сильно тормозит запросы insert к другим таблицам?

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

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

    @rPman
    В windows идет встроенный кинотеатр - приложение Кино и ТВ

    Что тебе нужно от кинотеатра то? сам процесс просмотра видео - это выбор видеоплеера (рекомендую media player classic, настраивается все от поспроцессинга до кнопок и интерфейса), процесс выбора фильма - это начинается от способа наполнения своей библиотеки, как хранить, как описывать, в 99% случаев штатный проводник (windows explorer), включив миниатюры и дав файлам фильмов адекватные названия, и поиском по f3 - будет более чем достаточен.
    Ответ написан
    Комментировать
  • Как воспроизвести Flash в приложении?

    @rPman
    Чужое exe приложение - никак, там все зависит от того как именно они ролики проигрывают.

    Текущую дату на прошлое менял?
    Ответ написан
    3 комментария
  • Как сделать цикл с setInterval который запускался и останавливался через каждые 10 секунд?

    @rPman
    Ты вызываешь count, запускающую новый setInterval рекурсивно , сразу как срабатывает тик интервала, т.е. с каждым новым тиком количество интервалов у тебя увеличивается, лимиты ресурсов у браузера заканчиваются и вот ошибка.

    setInterval должен быть запущен однократно.

    Код в примере и задача в вопросе отличаются, что нужно то?
    Если исходить из задачи, нужно создать setTimeout, который через 10 секунд запустит setinterval с 1 секундным шагом, который уже в свою очередь будет вызывать твой принт и только его
    Ответ написан
    1 комментарий