Задать вопрос
  • Unity как рассчитать угол отскока мяча от стены?

    @rPman
    если относительное положение стенок паралельно осям координат (т.е. либо препятствие вертикальное либо горизонтальное) то при ударе о горизонтальную стенку, скорость по Y меняется на противоположную (меняется знак) а по X не меняется, ну а при горизонтальной стенке наоборот, по Y не меняется а по X меняется знак на противоположный (умножить на -1)

    если препятствия произвольный угол имеют то... формулы можешь посмотреть тут
    Ответ написан
    1 комментарий
  • Как поставить цикл while на паузу с помощью keyboard?

    @rPman
    дальнейшим воспроизведением
    постановка на паузу определяется тем что именно выполняется в цикле

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

    другой - многопоточный, в этом случае в одном потоке у вас висит ожидание нажатий клавиш, а в другом ваш главный цикл. этот вариант проще
    Ответ написан
    Комментировать
  • Можно ли сделать монитор из электронной книги?

    @rPman
    почти наверняка внутри твоей книги экран подключается по lvds, у китайцев есть относительно доступные платы hdmi-lvds (а если display port то на хабре помню была статья как спаять самому такую)

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

    Точно помню, какой то хитрец выкрутился, старую фоторамку без каких либо интерфейсов ввода вывода, только карта памяти, подключил к wifi с помощью microsd wifi card adapter, фоторамка добросовестно выводила картинку с этой карты памяти, а владелец менял ее с компьютера (кажется ставишь две картинки, и они в цикле друг за другом меняются, ничего менять не надо но скорость смены изображения - секунды.
    Ответ написан
    Комментировать
  • Как отредактировать данные в php файлах?

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

    Второй - как много данных

    Третий - на сколько сложные запросы по поиску и фильтрации у тебя есть

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

    serialize, json_encode, php_export (этот формирует строку в формате php, т.е. загрузить такой файл можно просто импортировав его в код), относительно недавно появился igbinary_serialize (расширение идет в поставке с php) - отличный бинарный формат, достаточно эффективный и наверное самый быстрый из существующих.

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

    p.s. по теме конкретно сформулированного вопроса, гугли CRUD, это готовые инструменты по create,read, update, delete объектов, которые тут же описываешь. Так или иначе эти механизмы мого кто реализует в своих фреймворках

    но начинающему настоятельно рекомендую пройти весь путь от самописных структур данных и работе с sql
    Ответ написан
    4 комментария
  • SSD разбивка на неиспользованые разделы?

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

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

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

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

    Поэтому повторюсь, нет нужды ограничивать себя в размерах доступного пространства такими способами, размечай весь диск и проследи чтобы в BIOS и ОС была включена поддержка TRIM.
    Ответ написан
    1 комментарий
  • Как без проблем расширить корневой диск на лету в виртуальной машине linux?

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

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

    Еще момент, некоторые файловые системы, например btrfs/zfs, умеют на лету! добавлять (и удалять) диски к пулу, и не обязательно это должен быть raid, возможно простое объединение пространств дисков, даже без чередования. Собственно btrfs я бы и рекомендовал использовать, даже не смотря на его нестабильный статус (так как все его проблемы касаются вещей, которые можно не использовать, например raid56)

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

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

    @rPman
    Однозначно, подтверждается синтетическими тестами, главное! при наличии драйверов как для win7 так и win10, последняя до 10% медленнее работа с диском.

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

    И главное, интерфейс windows10 менее отзывчивый, это видно везде, и в стартовом меню и в проводнике (правда winxp/win7 можно было сильно замедлить просто устанавливая больше приложений, регистрирующих activex компоненты и com классы, полагаю именно это и произошло с win10, объектов идущих в комплекте с ОС стало больше), я сейчас не говорю про сломанную юзабилити, в win10 в конце концов больше телодвижений для многих настроек (чтобы добраться до старых не метро настроек, попробуйте открыть старое меню настройки времени, чтобы к примеру отключить или сменить сервер времени, с которого идет синхронизация часов)

    Я помню для меня было шоком, что в win10 запуск приложений по горячим клавишам (свойства ярлыка, настройка комбинаций клавиш) да просто запуск системных приложений по нажатию мультимедиа клавиш занимает время (где то пол секунды), запустите калькулятор, поймете о чем я. Изучая вопрос я понял что во первых это метро приложения, их запуск в принципе не мгновенный, но еще страшнее, если 'сломать' интернет (например указать неверный dns или прописать неправильный route) то запуск приложений еще сильнее замедляется, но не регулярно, как будто почти каждый запуск приложения заставляет ОС отправлять сетевой пакет в интернет и ждать ответ (антивирус при этом само собой отключен). Я специально искал не metro приложение калькулятор, и даже оно могло через раз запускаться не мгновенно

    так что ответ - да, win10 заметно медленнее win7 почти по всем аспектам, но при условии что драйвера на железо имеются под обе версии ОС, что с каждым днем все сложнее и сложнее.

    Само собой, если активно заниматься тюнингом системы, с некоторыми шансами можно довести скорость работы win10 до win7, к сожалению когда с интервалом в год несколько раз, приезжающие комулятивные обновления почти полностью сбрасывали все критичные для скорости настройки до дефолтных, мне надоело бороться с ветряными мельницами, а позже полностью ушел на linux, оставив полупустую установку win для виртуалки.
    Ответ написан
    1 комментарий
  • Как удалить авторизацию из приложения Android?

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

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

    @rPman
    Боюсь нет

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

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

    @rPman
    Данная задача называется - транскрибация

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

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

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

    @rPman
    8gb ram
    вполне подходит для нейронки, поддержка amd gpu есть у tensorflow, по крайней мере огромное количество инструкций гуглится как для windows так и для linux

    Судя по avito лучше 80т.р. выставлять не желательно, точнее надеяться остается только на региональных покупателей. Но главное, маловероятно что за вырученные деньги можно будет купить новую nvidia сравнимой мощности.

    Если видеокарта активно работала майнером, убитая система охлаждения или еще какие косяки, то ценник придется еще сильнее опускать.

    Выставляй на площадках и пиши - возможен торг, собирай предложения какое то время и смотри
    Ответ написан
    1 комментарий
  • Как найти координаты Б когда известны координаты А, C?

    @rPman
    информации недостаточно

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

    @rPman
    понять задание сложно, информации мало, нужны примеры данных с пояснениями

    applications.back_date скорее всего содержит дату погашения задолжности, значит если она null то applications.customer_id ее будет ссылаться на должника? вот и считай эти count(applications.id) для group by applications.customer_id с условием applications.back_date is null
    Ответ написан
  • Как сделать так, чтобы страница держалась в открытом виде многое время?

    @rPman
    у тебя 2 пути

    простой и дорогой, нужно запустить 100 браузеров (в каждом свой профиль со своими настройками прокси)

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

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

    @rPman
    случайно система охлаждения не засохла/засорилась?
    проверь температуру в момент фризов, неплохо для начала, чтобы исключить эти проблемы, сначала прочистить от пыли и сменить термопасту (можно сдать в сервис, это не так уж и дорого, а вот самому ноутбук ковырять по неопытности даже опасно)
    Ответ написан
    3 комментария
  • Какой CPU выбрать?

    @rPman
    я так понимаю по ценам они для тебя равнозначны?
    Intel Xeon E-2388G - 23553, singlethread 3350
    AMD Ryzen 9 5900X - 39474, singlethread 3494
    AMD EPYC 7313 - 40575, singlethread 2610

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

    если выбирать из этого списка - однозначно ryzen но надеюсь у тебя там память не подкачает, от нее много что будет зависеть, а у amd бывает очень сложно подобрать
    Ответ написан
    4 комментария
  • Как сделать, чтобы телеграм-бот реагировал на обращение к нему независимо с большой ли буквы к нему обращаются (python)?

    @rPman
    перед сравнением приведи строку к нижнему регистру, а список вариантов задай массивом и проверяй наличие с попомщью in
    if name.lower() in ["дядя","дедок","дедуля"]:
    ну и следи за кодировкой, если что делай decode
    Ответ написан
    1 комментарий
  • Загрузка без диска, есть ли готовое рещение?

    @rPman
    для загрузки windows без дисков нужен сервер со следующим функционалом:
    * dhcp сервер либо продвинутые настройки на роутере, позволяющие указать на каком сервере будет стоять tftp и раздавать загрузчик
    * tftp сервер, этот сервер должен раздавать файлы загрузчика - конфигурационный текстовый и pxe-загрузчик (можно настроить по mac адресу машины какой конфиг)
    * iscsi сервер (старые версии windows позволяли другие источники диска, например системный тупо подгружался в ramdisk, но у меня есть предположение что с где то с win8.1 или точно win10 нормально загрузиться по сети можно только по iscsi)

    все это можно поднять как на windows машине так и на linux, в т.ч. на отдельных железных решениях (iscsi и tftp на nas а dhcp адекватный роутер позволит настроить), я настоятельно рекомендую использовать linux машину для всего, там будет больше понимания что происходит и как настраивать. Для iscsi используй простой istgt демон, его настраивать проще всего.

    гуглить diskless windows 10 boot выбирай метод и используй.
    например

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

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

    @rPman
    потому что вывод YES никак не связан с твоим if, он вне его записан, дальше - выход из цикла определен условием в for (цикл будет работать пока i<10), внутри условия if у тебя стоит дополнительное увеличение i на единицу, а так же на каждом шаге в цикле i увеличивается на 1, значит значение i у тебя на каждом шаге цикла будут 0,2,4,6,7,8,9 - т.е. 7 раз

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

    @rPman
    Буква закона говорит о конфедициальности и трансграничной передачи данных, использование google cloud 'в лоб' без шифрования данных на российской стороне будет противоречить духу и букве закона.

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

    p.s. к сожалению исполнить весь комплекс законов невозможно, 'не продав душу', так что думайте сами
    Ответ написан