Задать вопрос
  • Как с помощью GPS и Arduino, надёжно и безопасно вывести человека из леса?

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

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

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

    @rPman
    питон тут однозначно не подойдет

    для windows:
    Без использования драйверов фейкового монитора, но при наличии физических выходов на видеокарте, можно к ним подключить заглушку (она дешевая, разная для каждого типа разъемов, гуглить эмулятор заглушка терминатор монитора dsub/hdmi/dp), благодаря которой система будет считать что монитор подключен, и уже средствами ОС работать с этим монитором (само собой чтобы самому видеть содержимое придется поставить какой-нибудь vnc с поддержкой мультимониторной конфигурации)

    Есть бесплатный враппер (это не кряк а утилита использующая штатный win api), которая превращает рабочие ревизии windows в сервер терминалов (позволяет подключиться mstsc одновременно несколько сессий а не только одну), фокус к сожалению будет убегать но можно сделать каскадные подключения

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

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

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

    так же можно установить несколько xserver, работающих в оперативной памяти - vfb, это будут полноценные рабочие места, работающие исключительно в оперативной памяти (подключение например по vnc)

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

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

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

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

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

    низкое качество аудиопотока можно немного улучшить с помощью фильтров но это вопрос эксприментов
    Ответ написан
    1 комментарий
  • Почему медленно скачиваются файлы в Manjaro Cinnamon?

    @rPman
    Если замерить скорость на speedtest, то выдаёт 800-900 Mbps
    повыбирай сервера в speedtest, находящиеся в разных странах, начнешь понимать что скорость в интернете штука условная и зависит от кучи вещей

    Кстати speedtest показывает скорость в мегабитах, а при копировании файла в проводнике - в мегабайтах, эти единицы измерения отличаются в 8 раз (в байте - 8 бит)

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

    p.s. в современных реалиях 2мбайта/с это даже хорошая скорость
    Ответ написан
    Комментировать
  • Как избавиться от вируса на сервере Windows Server 2012 R2 Standart?

    @rPman
    По теме антивирусника, его не нужно ставить на систему, делаешь загрузочный компакт диск или usb флешку от какого-нибудь касперского и загружаешь систему с него, проводя полную проверку
    Ответ написан
    Комментировать
  • Как изменить DLL?

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

    Если разработчик не делал попыток этому помешать то может получиться
    Ответ написан
    5 комментариев
  • Почему html не выводит картинку?

    @rPman
    браузеры правильно защищают от доступа к локальным ресурсам, запрещая смешивать ресурсы из разных протоколов https/http/file в любом порядке (например если ты открываешь страницу с веб сервера по https то тебе будут запрещены ajax запросы по http но разрешены вставки картинок, и все будет запрещено по file)

    пропиши каталог с файлами в веб сервере как статика и открывай нормально по http
    Ответ написан
    Комментировать
  • Импорт большого yml в mysql?

    @rPman
    как импортируешь то? ты в свой скрипт не можешь вставить sleep между запросами?

    львиную долю нагрузки базе данных на запись создают:
    1. поддержка транзакций
    2. перестройка индексов
    3. средства защиты данных от сбоев
    каждая запись на диск, которая по мнению базы данных должна быть произведена с гарантией, т.е. снабжается вызовом flush, но база данных не всегда знает когда это стоит делать а когда нет, частично это разруливается длинными транзакциями, вставляя между коммитами 100500 запросов на вставку

    Так вот по каждому пункту можно временно изменить логику и настройки работы базы данных.
    1. отключить транзакционные механизмы, перейдя от innodb к myisam, это может дать чуть ли не двухкратный прирост, но потребует в приложении как то игнорировать отсутствие поддержки транзакций, что не всегда просто сделать
    2. отключить индексы, буквально, оставить только PK и то только там где это имеет необходимость только для импорта, после окончании импорта данных, индексы нужно будет вернуть. Однократное создание индексов на порядок если не два быстрее чем обновление индексов по каждой записи в базу.
    3. отключить поддержку flush в операционной системе, буквально например опция монтирования ext4 data=writeback, база данных не будет ждать когда данные реально будут записаны на диск (есть еще опция O_DSYNC у mysql innodb, совет вообще полистать как тюнить дисковый io) но осторожно, если в это время произойдет краш сервера, данные будут испорчены, причем скорее всего безнадежно. В догонку, можно перенести журнал ext4 на другое более быстрое устройство или лучше совсем его отключить, так как при записи данные пишутся сначала в него потом на диск, на время импорта это лишние операции
    И в догонку, если размер базы данных к примеру считанные сотня гигабайт, то можно временно арендовать в облаке машину с большим объемом RAM, залить базу в tmpfs и на максимально быстрой скорости импортировать данные, потом готовую базу залить обратно.

    т.е. данные действия позволят, остановив работу (без этого никак) провести импорт максимально быстро и восстановить работу, пол миллиона записей это мизерный объем и если что то тормозит то исключительно из-за плохой архитектуры или реализации
    Ответ написан
    3 комментария
  • Мое приложение весит больше 150 мб, и я не могу выставить его на всеобщее обозрение в Play Market, что мне делать?

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

    upd. попробуй APK Expansion Files, гугл хостит файлы до 2Гб, их можно прикладывать к приложению и они будут загружены сразу после установки
    Ответ написан
    1 комментарий
  • Как очистить память php?

    @rPman
    у тебя твой скрипт съел 256мб оперативной памяти, ищи куда она делась, расставляй по всему своему скрипту на сервере вывод в лог значение memory_get_usage(true) с пометкой где это произошло, например:
    error_log(json_encode([__FILE__,__LINE__,memory_get_usage(true)]));

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

    а по уму нужно использовать полноценные профилировщики типа такого
    Ответ написан
  • Каким софтом отсканировать в МФУ много листов каждый в отдельный PDF?

    @rPman
    данную задачу лучше решать следующим образом
    сканируешь всю серию в один файл pdf а затем с помощью imagemagic (мощнейшая утилита работы с изображениями, командная строка) разобрать страницы полученного файла хоть в картинки хоть в pdf
    convert test.pdf -quality 100 page-%4d.png
    Ответ написан
    Комментировать
  • Существуют ли переносные мониторы?

    @rPman
    в гугле набери mobile monitor и получишь 15", тонкий с креплением, подключением по usb c/display port
    цены не радуют
    Ответ написан
    Комментировать
  • Как исправить ошибку Non-UTF-8?

    @rPman
    кодировку файла с исходным текстом смени на utf-8
    Ответ написан
  • Возможно ли открыть порт 25565 если серый IP?

    @rPman
    Если работает upnp на роутере, то можно средствами сервера или если не умеет (майнкрафт не умеет) консольной утилитой upnpc (пакет miniupnpc) запросить перенаправление на порт сервера майнкрафта (если используется клиент то он пишет порт, который открыт для публикуемого в локальную сеть мира)
    upnpc [options] -a ip port external_port protocol [duration] [remote host]

    не факт что получится но почему бы не попробовать

    клиенты так же должны ip и порт прописывать вручную (тот что будет указан в перенаправлении)

    с помощью upnpc list можно посмотреть какие порты уже открыты и куда ведут чтобы выбрать свободный
    Ответ написан
    Комментировать
  • Стоит ли купить lenovo ideapad 3 (17inch)?

    @rPman
    Главные критерии для программиста (реалии таковы)
    1. оперативная память, чем больше тем лучше, работать можно и с 8 (visual studio при меньших объемах тормозит), но есть направления, где разработчику требуется разворачивать свои сервисы в виртуальных машинах а там оперативная память ой как критична.
    Плюс, к примеру если работаешь с данными, большой объем оперативной памяти экономит время на разработке (к примеру вместо использования sql можно разместить все данные в оперативной памяти и пользоваться своими алгоритмами)
    2. клавиатура - ноутбучные раскладки - это ад, неправильное размещение управляющих клавиш (стрелки, page up/down/home/end, ins/del да банально enter не на том месте или требование нажимать fn чтобы рядовые комбинации использовать, сильно портят нервы, да если поднапрячся можно перенастроить все горячие клавиши на свои комбинации, привязывая себя к своей раскладке, но через годы позе будешь мучиться наоборот на нормальной клавиатуре
    3. монитор - размер монитора современного разработчика 23"..27", все что меньше - мучение, все IDE и не только рассчитаны на большой экран и FullHD разрешение, 2к и 4к можно отскалить до нужного масштабированием и будет даже приятнее (шрифты лучше выглядят на 4к) а уж дизайнерам и подавно нужно работать с таким разрешением чобы соответствовать мейнстриму
    Ноутбучные 17" это либо очень все мелкое (FullHD) и напрягает глаза либо если по глупости HD720 (или 1360x768 есть такой популярный нестандарт) и это терпят только ради мобильности, значение чего слишком переоцененно и имеет смысл если дома работать не получается а рабочего места нет.
    4. скорость процессора в 1 потоке (single thread в бенчмарках)
    разработчика совершенно не должно волновать сколько потоков умеет его процессор (больше 4 и ладно), но вот объем процессорного кеша и производительность на поток - очень важны, так как в конечном счете время, которое разработчик тратит на компиляцию и подготовку окружения очень важно, для нервов, даже 30% разницы (а это та разница между одного ценового диапазона ноутубков и десктопа) очень заметны, разработчик тратит огромное время на эксперименты со своим кодом, поправил, запустил, снова подправил, и если время между этими действиями больше некоторого периода (секунды даже меньше, у разных людей по разному) это сбивает настрой, что то связанное с короткой памятью,... в общем это надо прочувствовать и поработать на быстрых и медленных машинах чтобы понимать
    5. скорость и размер ssd, это в догонку к пункту 4, в современной разработке скорость подготовки окружения (развертывания докер контейнера например) очень важна и поверь, сидеть на hdd ты не пожелаешь, особенно если у тебя win10 или не дай бог win11. А если у тебя виртуальные машины крутятся, размещать их на hdd еще хуже (когда у меня не хватало ssd я размещал базовую виртуалку на hdd а снапшоты, с которых работает приложение, размещаются на ssd, это дает неплохой бонус к производительности при этом на ssd размещается от силы 5-10% данных..

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

    @rPman
    Отсортируй, добавь столбец с порядковыми номерами 1,2,3..., и новый столбец с формулой - если значение выше совпадает с текущим значением то прибавить к текущему порядковый номер, иначе просто скопировать

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

    p.s. если надо прямо как в вопросе указано, т.е .добавлять номер дубликата в списке, то делать через дополнительную колонку, в которую складывайчисло с предыдущим, если значения совпадают, а если нет - просто значение, в этом случае разделив это значение на эту сумму, получишь порядковый номер дубликата, правда сработает это только с числами, но замени символы на пару цифр (их код) и тогда это сработает.
    spoiler
    zt2ravzggdp6rttohmo9edyxyly.png
    формулы колонок C,D,E
    =ЕСЛИ(СОВПАД(A2;A1);A2+C1;A2)
    =C2/A2-1
    =ЕСЛИ(СОВПАД(A2;A1);СЦЕП(A2;"_";D2);A2)
    Ответ написан
    Комментировать
  • Установить джар на Nokia TA-1235 (150-2020)?

    @rPman
    На него нельзя устанавливать приложения
    народ мается просто с русскоязычной поддержкой для него
    Ответ написан
    1 комментарий
  • Нормален ли такой код?

    @rPman
    'магические константы' - что такое 9 или 10?, мне то понятно но чтобы их понимать нужно изучать код, размеры области нужно определить в переменные или константы, приучаться надо с самого начала к тому чтобы такого не было. То же самое с символами кнопок управления, определи для них переменные, пусть сначала это будут константы, заданные в коде, зато позже будет проще сделать изменяемые настройки.

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

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

    А в бесконечном цикле просто выводить содержимое map и уже во время вывода проверять x,y положения 'игрока' и выводить его на экран вместо символа карты. Достоинство такого подхода - карта может состоять не только из символов стенок но и любых других, проходимых.

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

    Следующим шагом x,y определи структурой, если продолжать дальше, в идеологии объектного программирования (да я вижу что это С, но простой вызов метода у структуры/класса сделать можно) в этой структуре определи функции, описывающие действия над персонажем (обработка действий - там функция что разбирает нажатые клавиши, только по логике нав ход должны подаваться не клавиши а константы, определяющие действие, вывод на экран - вернет символ, проверку проходимости точки на карте, т.е. стены, и т.п.) тогда будет проще добавить к примеру второго игрока или NPC и т.п.
    Ответ написан
    4 комментария
  • Как на Linux читать и изменять память процесса?

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