Задать вопрос
  • Как/где лучше хранить видео(100-200гб)?

    @rPman
    Проблема не в хранении видео, 200гб это очень маленький объем, проблема в трафике.
    само по себе хранение такого объема в месяц будет стоить порядка 3$-10$ на каком-нибудь дешевом хостинге (даже с оверселингом) или любом облачном, заплатишь буквально за количество просмотров
    Ответ написан
    Комментировать
  • Какой робот или API может зайти на веб-страницу для активации PHP скрипта?

    @rPman
    браузеры пока еще позволяют GET запросы со смешанным контентом и игнорируя CORS (будет варнинг в консоли), чтобы можно было встраивать на странице к примеру изображения с чужих сайтов (предупрежение будет но по крайней мере это работает), поэтому чтобы отправить запрос на страницу с другим контекстом можно динамически создавать элемент на странице (например img или script с указанием типа контента, какой бы он там не был), кстати при использовании script можно даже получить результат с http сервера, если это будет скрипт выполнения функции, определенной ранее на странице, т.е. пример вернуть с типом text/javascript
    my_callback([1,2,3,4,5]);
    а на странице определить функцию по обработке полученных данных
    function my_callback(data) {...}

    именно так давным давно реализовывали прародителя ajax

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

    @rPman
    diskpart clean all заполняет ВСЕ место на диске нулями, некоторые контроллеры это оптимизируют (используют внутреннее сжатие, которое повторяющиеся символы записывают в меньшем объеме, или к примеру даже и не производят запись если обнаружат сектор нулей, скорее всего помечают данный сектор как освободившийся (а все освободившиеся при попытке чтения возвращают нули так же без реального чтения данных, кстати это одна из причин, почему бессмысленно тестировать ssd простой записью из /dev/zero и последующим чтением - будет тест скорости контроллера а не самой флеш памяти)

    т.е. скорее всего тот диск что завершил эту операцию быстро на самом деле посекторно провел операцию аналогичную trim (не мгновенно потому что посекторно а не сразу на весь объем) а у того что делал это медленно контроллер по проще (ради скорости) и старательно пытался записать данные что от него требовала ОС

    если цель просто подготовить диск для следующего использования, достаточно сделать diskpart clean (будет очищена только таблица разделов), дальше операционная система сделает trim на все свободное место на накопителе (по уму это будет сделано автоматически, когда будет создан и отформатирован раздел, как вариант вручную это можно сделать, запустив 'оптимизацию диска', там где раньше в меню была дефрагментация)

    p.s. trim уничтожает данные моментально, т.е. обычными средствами старые данные считать не получится, но специализированное оборудование, позволяющее считывать данные напрямую с флеш памяти сможет их восстановить, (да есть контроллеры ssd умеющие шифрование на аппаратном уровне но сейчас не про них)
    В этом случае конечно лучше поверх всего диска записать данные, но только не нули а случайные (или какой то один и тот же файл, например короткое видео, продублировать бесконечно) или если боитесь за то что ваши данные смогут восстановить - изначально используйте шифрование раздела средствами ОС, уничтожение его всего можно сделать будет просто уничтожив ключи дешифровки.
    Ответ написан
    1 комментарий
  • Найти и изменить строку в файле?

    @rPman
    есть 2 подхода по редактированию файлов:
    1. ты находишь место в файле (буквально смещение в байтах), открыв его на чтение и запись fopen(...,'r+') читая его помощью fread или fgets или еще какой функцией (позиция будет перемещаться на следующую для чтения), перемещаешь в нужное место позицию fseek и делаешь запись fwrite или fputs, заменяя содержимое, без сдвига данных после него

    этот способ подходит если заменяемые данные равны по длине с предыдущими

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

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

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

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

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

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

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

    еще момент, ты по коду старательно парсишь csv самостоятельно да еще и не правильно (строки в ковычках могут содержать переход на новую строку), в php для этого есть хорошая функция fgetcsv, возвращает готовый массив
    Ответ написан
    1 комментарий
  • Проблема с доступом к интернету при впн?

    @rPman
    Алексей Тутубалин, а без впн-а эти сайты которые надо работают?
    отключив шлюз в настройках vpn твоя машина должна иметь доступ одновременно как к твоей сети (и сети твоего интернета) так и к локальной сети vpn, но! если та сеть требует наличие шлюза чтобы работать с сервисами, доступными только изнутри, то тогда решение будет другим - нужно будет командами route add добавить нужные ip адреса с указанием шлюза организации (и делать это каждый раз после подключения vpn, есть возможность сохранить настройки, но тогда ты к этим сайтам без vpn не пробьешься)

    встречал я такую система авторизации, когда сервис дает доступ организации не по логину и паролю а по подсетям,.. какое то время я ковырялся с роутами но так как сервисы из года в год эти меняли свою структуру (ip адреса туда ксюда гуляли) а сидеть с vpn по дефолту было грустно (ее интернет был ужасным), то я из лени поднимал vpn не на самой своей машине а в виртуалке, в ней поднимал socks-прокси сервер (ssh сервер внутри виртуалки и с локальной машины в ключах ssh подключения -D1080, поднимет сокс прокси локально на порту 1080), настроив его в специальном профиле своего локального браузера (т.е. для работы с нужными сайтами открывал второй браузер с моей окальной прокси к моей же машне где поднят vpn), так проще и удобнее чем ковырять роуты или iptables
    Ответ написан
    6 комментариев
  • Как в javascript сделать игнорирование опечаток?

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

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

    Так же, после определенной накопленной суммы разницы между строками, дальше тратить время не актуально, советую в своей реализации добавить этот параметр (особенно это актуально когда надо огромные объемы данных обработать)
    Ответ написан
    Комментировать
  • Возможно ли сделать свою "платежную систему"?

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

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

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

    в данном случае те запросы что выполняются дойдут до конца но новые создаваться не будут
    Ответ написан
    Комментировать
  • Флешка монтируется в папку, как вернуть по дефолту?

    @rPman
    Флешка автоматом монтируется туда, но как отключить это я не знаю
    Настройки - съемные устройства и носители данных, убрать чекбоксики с Подключать ... и Автоматически... (это к примеру xfce, аналогичные настройки есть и в kde/unity)

    каталог в /media создается и удаляется автоматически, имя берется из имени активного пользователя (при multiseat хз, кажется берется первый в списке xserver) и имени флешки (берется метка диска или uuid)

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

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

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

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

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

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

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

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

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

    @rPman
    Обычно в win32 приложении, помимо установки значения нужно симулировать событие EN_CHANGE но в любом случае ковыряться с win32 не универсально и на порядок сложнее чем готовые инструменты

    настоятельно рекомендую использовать autoit
    Ответ написан
    Комментировать
  • Смена ОС дистанционно?

    @rPman
    Для этого нужно либо аппаратный IPMI или KVM over IP

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

    Третий способ немного в другую сторону, установить гипервизор (любой на выбор, умеющий удаленное управление, в т.ч. полноценную ос) и запускать из него нужную операционную систему в виртуальной машине, способ более гибкий, куча плюшек,.. но за счет понижения производительности (от 5% до 30%, как ни странно бывают случаи когда виртуализация ускоряет работу, например работу с диском, через внешнее кеширование) и проблемы с поддержкой GPU (с некоторым везением можно настроить проброс физического устройства внутрь виртуалки)
    Ответ написан
    Комментировать
  • Проблема с получением времени c++?

    @rPman
    а ты делаешь этот код в цикле с интервалом хотя бы минута?
    совет, равенство делай не строгое, а такое st.wMinute >=21
    и отладка, хотя бы выводи на экран на время поиска проблемы значение st.wMinute
    Ответ написан
    Комментировать
  • Провайдер запретил доступ ко всем портам для определенных подсетей. Как открыть порты?

    @rPman
    Сами IP-адреса не заблокированы, а только их порты.
    вы сами то понимаете что сказали?
    что значит ip адрес не заблокирован?

    какие действия с незаблокированным ip адресом (из списка тех где закрыты порты) вам доступны?

    p.s. арендуешь vps-ку там где нет блокировок и ищешь протокол, по которому связь доступна, во первых vpn сервер может работать на любом порту, во вторых есть способы туннелировать работу vpn не только через любой порт но и симуляция работы стороннего протокола (например прикинуться http веб сервером, dns-сервером, ping 'сервером'....)
    Ответ написан
    5 комментариев
  • Какой блокчейн выбрать для работы со смарт-контрактами?

    @rPman
    Поиграй с BNB, это фактически клон ethereum, но дешевый, еще из дешевых блокчейнов со смартконтрактами и достаточной ликвидностью можно предложить - Tron

    а вообще полистай вот список dex бирж на блокчейнах, отсортируй по объемам и изучай
    Ответ написан
  • Почему процессы windows не завершаются?

    @rPman
    антивирус ничего не находит?

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

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

    @rPman
    кнопка не сломается, никак

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