Задать вопрос
  • Низкая скорость передачи данных после переноса дисков?

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

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

    Если причина в дисках - начинать изучение с анализа SMART, затем проверить работоспособность порта контроллера (переключить диск в другой порт) и конечно сменить кабель SATA, они (а скорее всего разъемы) очень часто бывают причиной слабо объяснимых проблем с дисками.
    Ответ написан
    Комментировать
  • Есть ли аналоги ide типа phpstorn, pycharm, sublime для iPad?

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

    Иначе, искать облачные решения, например самый простой - арендуешь полноценную машину на vps, настраиваешь удаленный доступ (если windows - то rdp, если linux - то x2go) и работаешь.

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

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

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

    В windows есть два способа:
    1. старый, постепенно ломаемый макйрософт - windows for work group, имеет смысл для маленьких сетей (кажется до 6 машин, точнее это ограничение одновременных подключений к одной машине), это значит логин и пароль на сервере (где настроена шара) и клиенте (кто подключает каталог, повторяю, сессия а не компьютер) должны совпадать, иначе будет запрошен логин пароль или будет отказано в подключении.
    2. домен контроллер, в этом случае оба компьютера должны быть подключены в один домен (или разные но с настройками доверия, там помню тьма особенностей), в этом случае права на доступ можно настраивать используя пользователей домена (сессия на клиенте так же должна быть на основе доменного пользователя а не локального)

    В обоих случаях необходимо настроить права как на шару так и на каталог (т.е. необходимо выдать разрешение на доступ обоих местах на одного и того же пользователя/группу)
    Ответ написан
    Комментировать
  • Как отследить нажатие кнопки назад?

    @rPman
    anchor навигация?

    Непрерывно опрашивай на setInterval значение location.href, и при его изменении вызывай свой метод, это сработает с гарантией где угодно но с лагом, т.е. если интервал будет недостаточно маленьким, и в его пределах пользователь нажмет дважды 'назад', то этот метод укажет только на одно событие... чтобы понять что произошло больше переходов, смотреть в history.length, само собой если пользователь успеет нажать не назад а вперед, или туда-сюда несколько раз, это так же не даст верную информацию, но мне кажется на столько отслеживать перемещение по истории пользователя обычно не требуется.
    Ответ написан
  • Как установить Win 10 поверх Win 7 (с сохранением файлов)?

    @rPman
    Нужно отличать - сохранение файлов и сохранение установленных программ.
    Файлы это просто файлы, их можно скопировать отдельно из резервной копии или вручную, загрузившись с любой livecd/liveusb системы, а затем, после установки 'на чистую' (без сохранения), вернуть файлы назад.

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

    Правильный способ - после обновления операционной системы, последовательно для каждого установленного приложения запустить его установщик и выбрать modify/upgrade, иногда это автоматизируется (если установочный пакет - .msi, кстати часто его скрывают за самораспаковывающимся exe). И само собой читать требования к установке, возможно какие то компоненты придется ставить вручную.

    И еще - рекомендация по обновлению ОС. Делать это нужно не скачкообразно, не нужно перескакивать через промежуточные версии. Правильно - windows 7 -> windows 8 -> windows 10 (причем уже две или три значительно крупные ревизии прошли, рекомендую брать старую 8-летней давности windows 10 msdn, а там на нее автоматически приедут обновления, это кстати ОЧЕНЬ долгий процесс, занимающий сутки или больше)
    Ответ написан
    3 комментария
  • Возможно ли ускорить вывод 400+ услуг с ценами на одной странице?

    @rPman
    Я не работал с modx, документация говорит что это php+mysql.

    17 секунд на формирование всего 400 записей это необычно долго. С высокой вероятностью там происходит что то типа - на каждую запись выполняется сложный запрос вместо того, чтобы сделать все одним.
    Традиционно, в любом приложении, узкие места начинают искать с помощью профилирования - оценке времени выполнения разных мест в коде (как долго в сумме в какой функции идет выполнение) и sql запросов (можно средствами базы данных, а можно все тем же профилировщиком кода).
    Ключевые слова для гугла - php-spx, xhprof

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

    Почти наверняка можно данную задачу решить не средствами фреймворка modx, а напрямую, написав вручную sql запрос и сформировав страницу кодом на php, тем более изначально php это язык создания шаблонов.
    Сделали, загрузка примерно 1-2 сек
    вот тут наверняка этот запрос и сделали, почему бы его и не вставить напрямую в страницу вывода цен, а не формировать html капк кеш.
    Ответ написан
    Комментировать
  • Можем ли мы быть уверены в несуществовании в каждом компьютере "подпольных" программ?

    @rPman
    Гарантий никаких.
    Но, весь мир держится на 'авось' и 'неуловимом джо', иначе все развалится.

    Ты забыл еще про аппаратные жучки, оставляемые производителем материнских плат (биос) и другой периферии (например драйвера в uefi), мало того, любое устройство на линиях pci-e имеет рут доступ к памяти а значит всем что там работает.

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

    p.p.s. начинать нужно с модулей pipi (pip python) и npmjs (nodejs), там такой садом и гомора, что за голову хватаешься
    Ответ написан
    3 комментария
  • Прием оплаты картами, но поступления на крипту?

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

    если убрать из списка требований Россия - то подобный функционал исторически предлагали крупнейшие криптовалютные биржи типа binance, гуглить cryptocurrency merchant.

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

    @rPman
    Попробуй посмотреть в /proc/$pid там куча файлов, описывающих процесс
    Ответ написан
    Комментировать
  • Как подключить айфон как IP камеру?

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

    p.s. возможно провайдер 3g/lte не позволяет подключиться к веб сервисам на iphone, потому что там стоит nat (это часто происходит, так как ipv4 не хватает на все мобильные), это не обойти естественными способами, так как провайдер часто запрещает простейший upnp (автонастройка перенаправления портов на роутере)
    Ответ написан
    Комментировать
  • Как передать информацию о событии с клиента по RDP (без особых прав)?

    @rPman
    нагуглил, есть виртуальные каналы, которые можно поднимать между терминальной сессией и машиной клиента.
    На основе этого кода claude ai (после некоторой беседы со мной, как же это шикарно что теперь так можно) вот тебе два приложения, не проверял:

    Файл server.cpp (запускается на сервере терминальных служб):
    #include <windows.h>
    #include <wtsapi32.h>
    #include <stdio.h>
    
    #pragma comment(lib, "wtsapi32.lib")
    
    DWORD OpenDynamicChannel(LPCSTR szChannelName, HANDLE *phFile);
    
    int main(int argc, char* argv[])
    {
        if (argc < 2) {
            printf("Usage: server.exe <message>\n");
            return 1;
        }
    
        HANDLE hFile;
        DWORD rc = OpenDynamicChannel("DVC_Sample", &hFile);
        if (ERROR_SUCCESS != rc) {
            printf("Failed to open dynamic channel. Error: %lu\n", rc);
            return 1;
        }
    
        printf("Waiting for client to connect...\n");
    
        // Wait for the client to connect and read something
        char buffer[1];
        DWORD bytesRead;
        ReadFile(hFile, buffer, 1, &bytesRead, NULL);
    
        // Send the message to the client
        const char* message = argv[1];
        DWORD bytesWritten;
        WriteFile(hFile, message, strlen(message), &bytesWritten, NULL);
    
        CloseHandle(hFile);
        return 0;
    }
    
    // Open a dynamic channel (same as in the original code)
    DWORD OpenDynamicChannel(LPCSTR szChannelName, HANDLE *phFile)
    {
        // ... (implementation same as in the original code)
    }

    Файл client.cpp (запускается на клиентской машине):
    #include <windows.h>
    #include <wtsapi32.h>
    #include <stdio.h>
    
    #pragma comment(lib, "wtsapi32.lib")
    
    DWORD OpenDynamicChannel(LPCSTR szChannelName, HANDLE *phFile);
    
    int main()
    {
        HANDLE hFile;
        DWORD rc = OpenDynamicChannel("DVC_Sample", &hFile);
        if (ERROR_SUCCESS != rc) {
            printf("Failed to open dynamic channel. Error: %lu\n", rc);
            return 1;
        }
    
        printf("Connected to server. Waiting for message...\n");
    
        // Notify the server that we're ready
        const char ready = 'x';
        DWORD bytesWritten;
        WriteFile(hFile, &ready, 1, &bytesWritten, NULL);
    
        // Read the message from the server
        char buffer[1024];
        DWORD bytesRead;
        ReadFile(hFile, buffer, sizeof(buffer), &bytesRead, NULL);
        buffer[bytesRead] = '\0';
    
        MessageBoxA(NULL, buffer, "Message from Server", MB_OK);
    
        CloseHandle(hFile);
        return 0;
    }
    
    // Open a dynamic channel (same as in the original code)
    DWORD OpenDynamicChannel(LPCSTR szChannelName, HANDLE *phFile)
    {
        // ... (implementation same as in the original code)
    }

    Сценарий работы:
    * Сначала запускается server.exe на сервере терминальных служб с аргументом - текстовым сообщением, которое нужно отправить клиенту.
    * Серверное приложение ожидает, пока клиент не подключится и не отправит символ 'x', указывающий, что он готов принять сообщение.
    * Затем серверное приложение отправляет указанное в командной строке сообщение клиенту и завершается.
    * Клиентское приложение запускается на клиентской машине, подключается к тому же виртуальному каналу "DVC_Sample" и отправляет серверу символ 'x'.
    * Клиентское приложение ожидает получения сообщения от сервера.
    * После получения сообщения, клиентское приложение показывает его в MessageBox и завершается.

    Обратите внимание, что в этом примере я использовал синхронные вызовы ReadFile/WriteFile для простоты. В реальных приложениях рекомендуется использовать асинхронные вызовы для избежания блокировок.

    p.s. кранты нашей цивилизации, мы разучимся думать, ведь это так удобно, когда машина за тебя вот ТАКОЕ делает.
    Ответ написан
  • Какая конструкция у кода должна быть без goto?

    @rPman
    Если объединить все твои последовательные if в непрерывную конструкцию
    if () {} elseif () {} elseif.... else {}
    то goto или return Rsa97 не понадобятся
    Ответ написан
    Комментировать
  • Как настроить удаленное управление ноутбуком с закрытой крышкой?

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

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

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

    openai буквально на днях презентовала свою мультимодальную gpt4o но ни полноценного доступа ни тем более api еще нет. Доступна только текстовая модель по api (у них есть возможность как и для старой версии добавлять в контекст изображения) без генерации, но попробовать можно.

    Да, тот же stable diffusion с оговорками способен к примеру заменять указанные элементы на странице. А с помощью внешних алгоритмов (та же facebook публиковала бесплатно) можно получить описание изображения вплоть до получения маски каждого (т.е. изображение разбивается на объекты, каждый объект будет подписан и для каждого будет маска по его границам).

    Т.е. решение твоей задачи будет примерно таким - проанализировать изображение и разобрать его на объекты, дополнительно получить описание изображения, скормить полученный текст ИИ и спросить, какие объекты нужно заменить и какой промпт добавить, и соответственно подсовывать маску этих объектов в image painting для stablediffusion и смотреть что получится.

    По умолчанию там будет все не очень красиво. Нужно будет подбирать .vae модели и pipeline, и в теории может даже что то получится.
    Ответ написан
    Комментировать
  • Как выбрать ии?

    @rPman
    так как вопрос задан в общем то и ответ будет общим

    фаза 0 - выбираешь, что именно будет отдано на откуп ии а что на opencv
    фаза 1 - собираешь обучающие данные
    фаза 3 - создаешь нейронную сеть (выбор алгоритма/архитектуры, выбор гиперпараметров типа количества слоев)
    фаза 4 - обучение (подготовка данных в нужном формате, деление выборки на обучающую и тестовую, обучение, периодическое сравнение метрик качества на основной и обучающей для выявления переобучения)
    фаза 5 - создание алгоритма для проверки эффективности результата

    все это заворачиваешь в цикл от фазы 0 до 5 до тех пор пока метрики эффективности для тебя не станут достаточными.

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

    очень часто, вместо сравнения изображений, может хватить сравнение их частей или каких то быстро вычисляемых характеристик... возможно тебе достаточно будет сравнить несколько точек?
    Ответ написан
    Комментировать
  • Как вызвать source при выполнении .sh файла?

    @rPman
    если тебе cd ...;source activate долго писать ручками, сделай это алиасами bash
    Ответ написан
    Комментировать
  • Простое решение для десктопа?

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

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

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

    Графические интерфейсы и писать для web проще, исключение - какой-нибудь winforms от msvc и его идеологический последователь wpf, но они имеют смысл если целевой интерфейс - огромное количество сложных форм, и скорость разработки критична, и да есть поддержка веб но только с майкрософтовским сервером.
    Ответ написан
    6 комментариев
  • Подключение к Bitcoin Core удаленно?

    @rPman
    пробовали добавить флаг?
    curl --http0.9 ...
    и конечно если какая то проблема возникает, смотри логи, у bitcoind в момент запроса и у curl, добавив -v

    p.s. не шифрованный доступ к bitcoind? вы уверены что ваш провайдер не мониторит трафик? а так же провайдер vps и еще 100500 провайдеров между вами, у каждого стоит dpi, мало ли какие там правила они понаписали?

    у bitcoind есть поддержка самоподписанных сертификатов
    А еще, настоятельно не рекомендуется какие либо не публичные сервисы публиковать в сеть, баги, ddos, да просто знание первому попавшемуся автоматическому сканеру что у вас тут деньги лежат! поднимайте vpn или пользуйтесь банальным ssh port forwarding
    Ответ написан
  • Можно ли создать аналог my gpts с загрузкой производных файлов через API open AI?

    @rPman
    В общем случае скорее всего нет.
    Лучший gpt у нас у openai, ему на пятки наступают anthropic claude и google gemini (их нормальные модели не доступны бесплатно, а от гугла еще и очень в ограниченном количестве стран, и формально все они не доступны в России). По деньгам они будут сравнимы.

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

    https://chat.lmsys.org/?leaderboard выбирай

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

    Так же проблема открытых моделей - маленькое контекстное окно (llama3 - 8k токенов, только очень маленькие pdf файлы можно в них поместить). А раз не помещаются в контекстное окно, значит потребуется самморизация и деление на части, в общем когда доберешься до конца, итоговый результат будет низкого качества.

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

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

    Для собственно авторизации куки не обязательны, ведь это состояние можно передавать и через GET/POST запрос или #anchor ссылки или просто настройка кастомных заголовков (работает только для ajax запросов но не для обычных). Другой вопрос в том, что пользователи привыкли, что сайты сохраняют какое то время авторизацию и не требуют ввода логина и пароля уже для следующего посещения.
    Ответ написан