Задать вопрос
  • Почему не определяется флешка и как это исправить?

    @rPman
    Помер контроллер на флешке. Флешку в мусорку (к сожалению нет у нас проектов по утилизации оборудования).

    p.s. У меня есть знаковая флешка, которая работает в usb2 разъеме (т.е. ее видит старый компьютер) но не распознается в usb3, похоже внутри контроллера флешки для разных стандартов usb используются разные части или даже чипы.
    Ответ написан
    Комментировать
  • Кто сталкивался с сертифицированным ПО для скриншотов?

    @rPman
    на windows воспользуйся скриптом powershell (нагуглил первое попавшееся, не рповерял)
    на linux используй штатную утилиту imagemagic
    import -window root /path/filename.png
    еще проще, штатная утилита xwindow - xwd
    xwd -silent -root > /path/filename.xwd
    а там изображения в этом формате можно конвертировать уже со своей машины с помощью imagemagic

    написать скрипт из 2 строчек, который будет периодически делать скриншоты сумеешь?

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

    @rPman
    Я соединял старейший ABBYY Screenshot Reader с гугл переводчиком, простой командой содержимое буфера (штатная утилита clip.exe) добавлял к translate.google.com, запуская этот скрипт по комбинации клавиш (т.е. запустил abbyy. выделил область, нажал на экране в его окне кнопку сохранения в буфер, нажал комбинацию клавиш -> получил перевод в браузере)

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

    @rPman
    Удостоверься что проблема в компьютере а не в роутере и не в провайдере.
    * Чтобы исключить проблему в настройках и софте, загрузись в чистую систему (найти liveusb версии любой ос, от winpe до linux, я пользуюсь установочным livecd xubuntu) и проверь работоспособность там.
    * Чтобы исключить проблему в железе - протестируй сайты на другом железе, например смартфон/ноутбук, попроси знакомого прийти и протестировать.
    * чтобы исключить проблему на роутере, подключи интернет напрямую к компьютеру (не всегда это возможно, например wan порт оптический), но как минимум можно попробовать сбросить настройки и поменять кабель от роутера до компьютера и сменить разъем на роутере, куда он втыкается.
    * чтобы исключить проблему у провайдера, смени провайдера (ваш КО), можно попробовать открыть сайты под прокси/vpn (настоящий, в идеале свой настроенный, чтобы исключить косяки настроек) с выходом подальше от российских/китайских провайдеров (они сильнее всего интернет ломают, но делают это теперь все, к сожалению таковы реалии), я арендую очень дешевый vps под мои скрипты где то в европе, использую штатный функционал ssh для настройки socks прокси (он работает в любом браузере) с помощью запуска подключения ssh с ключом -D1080 (1080 будет порт прокси на localhost) и очень хорошо видно что заблокированные российскими провайдерами открывается, а многие не заблокированные внезапно начинают работать быстрее (притом что скорости до vps не самые высокие)
    Ответ написан
    Комментировать
  • Какой способ хранения и выборки данных предпочтительней?

    @rPman
    Нужно разделять оптимизацию доступа к данным и их хранение.

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

    Один из способов - считать агрегированную информацию в триггере на изменение и добавление данных.

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

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

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

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

    Настоятельно рекомендую бенчмарки на ваших данных и структурах, если речь пойдет о тысячах записей (по моему мнению, пока данные влезают в пару кластеров файловой системы, никакие алгоритмы не дадут большей скорости чем простое чтение файла)
    Ответ написан
    Комментировать
  • Ребутается ПК, отломлена pci-e линия, что делать?

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

    Отнеси в сервис, спроси о стоимости ремонта.

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

    Из инструментов - микродрель с разными дисками дисками и насадками и паяльник, смартфон в качестве микроскопа.

    Вручную без опыта это делать гиблое дело, но если потренироваться на мертвых устройствах, то почему нет.
    Ответ написан
    4 комментария
  • Существует ли нейросеть для краткого пересказа книг?

    @rPman
    Языковые модели идеальны (на основе gpt) для задачи самморизации (text summaryze).

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

    Хорошие языковые модели типа gpt3.5/gpt4/claude/bard более чем подходят для данной задачи, даже просто вручную поделить текст на главы и последовательно скормить их чату с максимально простым промптом, можно получить желаемое.

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

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

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

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

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

    @rPman
    У тебя слеши между именами дисков, каталогов и файла в пути не в ту сторону, в windows нужно использовать '\'

    Еще момент, но в данном случае он не должен быть причиной, первым аргументом start.exe - должен быть заголовок окна, если запускается консольное приложение, это вылезает, если путь с программой заключить в двойные кавычки, например чтобы экранировать пробелы в именах, start запустит просто cmd.exe с заголовком с указанным путем, и рекомендуется сразу этот заголовок указывать, например пустым:
    start "" "d:\New Folder\My program.exe"
    Ответ написан
    2 комментария
  • Как отобразить окно активной машины virtualbox?

    @rPman
    Проблема странная, в virtualbox есть режим headless но в него нужно входить специальной командой из консоли, только тогда появится пункт меню но до выключения, меня появляется при попытке закрыть окно с машиной или по правой кнопоке меню Стоп.

    Как частное решение именно в твоем случае, я рекомендую включить rdp доступ к машине, и подключаться с помощью клиента удаленного доступа (штатная утилита windows)
    Ответ написан
  • Как написать программу для решения уравнения на C#?

    @rPman
    Зачитываешь данную формулу буквально, функция равна тому то если выполняется такое условие, иначе равно другому если другое условие... максимально подробно, не упуская ни одного момента.

    Затем практически каждое слово можно перевести в программу (можешь промежуточно алгоритм нарисовать если тебе так удобнее)

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

    p.p.s. формулу то хоть читать умеешь?
    Ответ написан
    5 комментариев
  • Как работает static final?

    @rPman
    static по определению, без каких либо final и прочего, это поле класса а не экземпляра, сколько бы ты экземпляров объекта не создал, переменная будет одна и та же. Ты можешь (будешь) обращаться к этой переменной даже не имея экземпляра, т.е. ClassName.static_member_name, но конечно синтаксически ты можешь обращаться к статическому члену и через экземпляр объекта object_variable.static_member_name.

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

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

    Единственная причина выбирать ноутбук для работы - вынужденная мобильность.

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

    Ноутбуки и планшетники это устройства потребления контента
    Ответ написан
    Комментировать
  • Авторизация через аккаунт google?

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

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

    @rPman
    Вот так не работает?
    Newtonsoft.Json.JsonConvert.DeserializeObject<List<MyClassWithCode>>(строка_с_json)


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

    int[] собирай уже сам

    в этом случае ты сможешь обрабатывать огромный json файл массив последовательно
    тут пример как вручную не следить за объектом в процессе
    Ответ написан
    4 комментария
  • Как Узнать откуда с какого сайта перебросило на ссылку?

    @rPman
    Под ссылке никак, владелец веб сервера m.olimp.bet может смотреть по referer в логах сервера
    Ответ написан
    Комментировать
  • Как правильно расставить права на файлы и директории сайта на VPS?

    @rPman
    Первое число - права для владельца, второе число - на группу, третье - для всех
    5 и 7 отличаются от 6 и 4 тем что там установлен бит x - executable, его нужно ставить на каталоги, но на файлы не обязательно (их ставят на скрипты и бинарники, которые нужно запускать, и в случае скриптов это не обязательное условие, просто запуск +x файлов возможен просто указанием файла /path/file)

    5 - права на чтение и запуск, 7 - права на чтение+запись и запуск, 4 - права только на чтение, 6 - права на чтение и запись.

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

    Веб сервер работает от пользователя www (или apache или http что там у тебя настроено) а файлы ты скорее всего заливаешь от пользователя root или какого ты создал пользователя для работы

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

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

    Правильное решение, грамотно и вдумчиво настроить права доступа, веб сервер должен иметь доступ только на чтение (и на запуск, если этого требует твой бакэнд), еще можно вынести настройки базы данных в какой-нибудь сервис их хранения чтобы простым доступом к файлам этот пароль вытянуть было нельзя. Есть еще практики, запускать веб сервис в chroot/docker с сильно кастрированным окружением, буквально без bash и различных утилит, только веб сервер (помню для ftp точно такие настройки были), следующий этап подписывание скриптов и бинарников с запретом запуска неподписанных, это еще сложнее но повышает уровень безопасности очень высоко.
    Ответ написан
    1 комментарий
  • Возможно ли реализовать одноранговый мультиплеер с защитой от жульничества?

    @rPman
    Проблема византийских генералов, решалась в криптовалютах, успешно только с помощью proof of work.

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

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

    Проблема слежки за секретными параметрами игроков красиво не решается, решив одну проблему получишь другу. т.е. если информация о координатах и жизни противника секретна, и не передавать ее всем участникам по каким то условиям, то игроки могут жульничать в тот момент, когда их 'не видят'. Это частично решается разработкой алгоритма, который смог бы в автоматическом режиме проверить по истории действий, не было ли жульничества, проведя симуляцию игры при раскрытии этой информации. Например все участники передают всю полноту информации но с задержкой в десятки секунд, таким образом участники все еще смогут сжульничать но в пределах ограничений системы проверки (т.е. игрок не сможет летать пока его никто не видит). Система проверки должна учитывать предельную скорость игрока или даже собранную заранее информацию по карте, в каких местах игрок принципиально может находиться.

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

    @rPman
    sox (штатно идет с любым linux), если я верно понимаю ключ synth
    Ответ написан