Задать вопрос
  • Пет проект, как хранить данные?

    @rPman
    Веб технологии на самом деле очень сложный способ учиться программированию для новичков, так как затрагивает сразу несколько очень сложных и сильно разных областей:
    * базы данных (для хранения данных я рекомендую sql базы данных, и для начала sqlite, не потребуется настраивать и устанавливать сервер, так как хранит все в файле)
    * бакэнд (миллион способов, самый популярный php, можно python, так как зная его будет проще в другие области зайти, не рекомендую java или go для начинающих)
    * фронтэнд (без или javascript)
    * верстка и дизайн (html+css)

    причем разработка требует понимание многопользовательского доступа, понимание конфликтов и т.п. если новичок совсем совсем ничего не знает, будет сложно.
    Ответ написан
    Комментировать
  • Стоит ли уходить в веб с Python?

    @rPman
    Можно, все можно
    Начинать с веб (основ) лучше чем начинать с узкой специализации реализации бота (тем более там по хардкору сразу в асинхронное программирование новичка бросает), причем лучше потрогать без высокоуровневых фреймворков как серверную часть и базы данных так и клиентскую, причем в обоих ипостасях, и html+css и javascript.

    Язык программирования и задачи, чаще всего стоят максимально друг от друга, и связь между ними исключительно в том какие фреймворки для каких языков под какие задачи уже написаны, но как я надеюсь все понимают, можно обойтись и без высокоуровневых решений, а низкоуровневые (не придется разбирать http заголовки или самому рисовать окна UI) есть для всех языков.
    Ответ написан
    Комментировать
  • RAID 1 из дисков разной емкости?

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

    В твоем случае ты можешь разбить 1т.б. диски на по 2х 500гб раздела, и объединить по отдельности первые с 500гб дисками и вторые друг с другом
    Ответ написан
    Комментировать
  • Нужно ли ставить антивирус на Microsoft Hyper-V Server free?

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

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

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

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

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

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

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

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

    @rPman
    Из windows получается плохой kiosk mode (это то что вам нужно), там мест где можно вылезти из песочницы миллион, отличный пример - просмотрщик документации сделан на основе internet explorer, помню через окно помощи к приложениям помощи слабовидящим запускали проводник и любой софт на окне авторизации (с правами system само собой), ну или к примеру переход через печать выделения, стандартный диалог принтера, поиск принтера, откроет проводник, с возможностью запустить любое приложение.

    Т.е. очень сильно все будет зависеть, что за софт у вас запущен.

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

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

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

    @rPman
    Если флешка и машина, на которой она будет использоваться, работает в режиме EFI, то достаточно отформатировать флешку как fat32 и распаковать на нее содержимое iso, открыв его как архив. Все делается из GUI в linux штатными инструментами, например работа с разделами, форматирование - gparted/kde patitionmanager

    Если система на флешке не умеет EFI или загружаться это будет на машине с legacy boot mbr, то есть лайфхак (я встречал только одну очень старую машину где это не сработало, речь идет о 10-15-летней материнке), просто скопировать посекторно содержимое iso на устройство, к сожалению gui для этого под linux нет (точнее есть что то типа gdiskdump но не в репозитариях, да и зачем такую простую задачу усложнять), для этого используют dd, причем iso записывается прямо на весь диск а не раздел, пользоваться такой флешкой до переформатирования можно будет только для чтения этого образа.
    Ответ написан
    2 комментария
  • Насколько правильно хранить бекапы БД на почте?

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

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

    @rPman
    Только через приложения, поддерживающие OAuth2 (например у thunderbird поддержка есть)
    Ответ написан
    Комментировать
  • Cтоит ли делать RAID из HDD2,5 и раздела 3,5?

    @rPman
    Да такой подход оправдан, сделать софтварный рейд не на весь диск а на его часть, для критичных данных. Софтварный рейд на основе разделов умеет делать штатно windows даже не серверные ревизии (под вопросом домашние ревизии, скорее всего там это придется делать не в GUI а в консоли с помощью diskpart)

    Возможно будут сложности делать это с тем диском, на котором установлена система, но как минимум все операции доступны из какого-нибудь livecd winpe
    Ответ написан
    1 комментарий
  • Как создать виртуальный мир на основе виртуальных туров?

    @rPman
    Да, реально, но сложно, так как расстояние между 'Отсканировать реальный объект или помещение' и сделать играбельный мир на его основе - много много пота и денег.

    Вот пример статьи где помещали объект из реального мира в 3d
    Ответ написан
    Комментировать
  • Почему VPN-программы не работают через прокси?

    @rPman
    Потому что об этом не подумали их разработчики, особенность работы с прокси такова что приложение должно уметь работать с соответствующим протоколом (и обычно это не так просто как кажется).
    Нормальные vpn, типа openvpn, умеют работать через прокси (как http с поддержкой connect так и socks)
    Ответ написан
  • Как, используя PHP, скачать страницу с динамической подгрузкой?

    @rPman
    У тебя 2 основных способа:
    1. разобраться в том как работает этот сайт, какие http запросы отправляет, как их собирает (можно отследить в инспекторе в браузере по F12 закладка network, можно сохранить запросы в json . har файл и анализировать позже, в худшем случае придется анализировать js код) и написать свое приложение, которое будет отправлять те же самые запросы, библиотек полно, например curl, есть одноименная утилита так и поддержка в языках программирования, в т.ч. на php, кстати в инспекторе браузера, нажав правую кнопку мыши на запросе можно скопировать curl команду для его повтора.

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

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

    этот подход заметно проще, например javscript который будет нажимать на кнопку Подписаться на странице хабр qna:
    $('.btn_subscribe').click()
    Помимо всего, этот способ позволяет обойти большинство защит от автоматизации, так как это буквально кликать мышкой по кнопкам но главный недостаток - на каждого пользователя будет требоваться полноценный браузер (иногда можно сэкономить), что очень затратно по ресурсам
    Еще одна проблема этого способа - нет универсального способа определить момент, когда окончилась загрузка страницы, в каждом случае придется выявлять самостоятельно критерии (например появление определенного html элемента), большинство просто выставляют таймаут по больше, но если будут проблемы с интернетом или на стороне веб сервиса, этот подход даст сбой.
    Ответ написан
  • Почему после синего экрана не удается запустить windows 10?

    @rPman
    Изначально была проблема в синем экране.

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

    Чтобы окончательно удостовериться что конфиг более менее рабочий (и причина точно в драйверах или комбинации программ) - запусти livecd linux, да это не совсем в полной мере позволит протестировать GPU (хотя есть способы) но даст хоть какой то ответ (например на случай если проблему создал именно windows)
    Ответ написан
    Комментировать
  • Платёжную систему на сайт, какую выбрать?

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

    @rPman
    Лабиринт в форме - ячейка это либо стена либо проход (0/1)?

    Заводим класс - 'Вершина графа', ребра которого - его параметры ссылок на Смежные вершины, для каждой стороны вверх, вниз, налево и направо. Если нужно выявление замкнутых подмножеств, то добавляем параметр - номер подмножества (значение 0 - неизвестно)

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

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

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

    @rPman
    Важно как ты получаешь уведомление об окончании просмотра, колбек должен отправить рекламная сеть
    https://support.google.com/admob/answer/9603226?hl=ru

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

    Если всю информацию о игроке хранить на сервере, то мест где можно схитрить не будет, максимум пользователь может не видеть рекламу, но время ждать придется
    Ответ написан
    Комментировать
  • Стоит ли делать кэширование результата запроса из бд?

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

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

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

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

    Вот от сюда и думай, что хранить, где хранить надо ли делать запрос в базу или можно из памяти и т.п.
    Ответ написан
    2 комментария
  • Как сделать бекап ubuntu 18.04 для удаленного развертывания из образа?

    @rPman
    Не каждая вас такое позволит, например на базе kvm можно простым tar сделать копию

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

    Не kvm (типа openvz/lxc с паравиртуализацией) может создать проблемы, с восстановлением, смотреть по месту

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