Задать вопрос
  • Truenas, пул zfs, возможно ли будет вытащить данные если диск подключить к другому компьютеру?

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

    @rPman
    А это считается осмысленным?
    Родился на улице Герцена, в гастрономе номер двадцать два. Известный экономист, по призванию своему — библиотекарь. В народе — колхозник. В магазине — продавец. В экономике, так сказать, необходим. Это, так сказать, система… э-э-э… в составе ста двадцати единиц.
    Ответ написан
    Комментировать
  • Как обнаружить высокое потребление CPU?

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

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

    Но, так как часто бывает, процесс большую часть времени чего то ждет, например IO операции с базой, сетью или диском, то таким образом не получится вычислить нагрузку именно на процессор. Поэтому, либо перед каждой такой операцией отключаешь счетчик (т.е. снова засекаешь время начала и конца) либо используешь средства операционной системы, для определения нагрузки на процессор конкретным процессом/потоком... они для каждой ОС и фреймворков/языков программирования - свои
    Ответ написан
  • Хватит ли имеющегося БП для новой видеокарты?

    @rPman
    Технически его должно хватить
    КПД 80% получаем 520, процессор до 150W, видеокарта 200W, hdd нет (они в пике в момент включения могут 30W брать), кулеры по 10W, все основное потребление идет по линии 12V (там на 3.5V и 5V всего 150 так что процессору так и так хватит), материнки больше 100 не берут.

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

    p.s. я бы попробовал оставить этот БП, держа в голове что необходима его замена 'на вырост'
    Ответ написан
    1 комментарий
  • Полноценная Убунта поверх WSL?

    @rPman
    Главная беда windows, которая многократно ухудшается при использовании wsl - это медленная работа с диском, первая же статья из гугла где проводили тесты
    Methods
    For this experiment, I used Windows Version 2004 build 19035.1000 on a ThinkPad X1 Extreme with 32GB of RAM and a Samsung 970 Evo Plus 1TB NVMe SSD.

    The four tests are:

    yarn build create-react-app: Use webpack and babel to build the basic open source create-react-app. This generates about 40KB of gzipped code.
    yarn build tsnsi: Use webpack and typescript to build a large proprietary application that I work on most days. This generates about 40MB of minimized javascript code. This repo contains just over 100000 files. THANKS node_modules!
    du -sh tsnsi: Calculate disk usage over the 100000 small files in the proprietary project.
    du -sh cpbotha.net: Calculate disk usage over my personal blog’s hugo source files. 4700 files of varying sizes occupying about 780MB.

    In all but one case (du tsnsi on WSL2 NTFS, because the spread was just too great), I ran the test multiple times, and recorded the average time in seconds. After the first run, standard deviation was low.

    In all cases, the built-in Microsoft anti-virus real-time protection was disabled, as that can have a significant effect on IO-based benchmarks.

    Test WSL 1 ntfs WSL 2 ntfs WSL 2 samba WSL 1 lxfs WSL 2 ext4 native linux
    yarn build c-r-a 11.89 63.14 13 7.38 5.8 4.63
    yarn build tsnsi 45.25 263.71 65 31.70 28.75 24.13
    du tsnsi 4.9 70 - 155 (4x) 13.5 8.6 0.19 0.19
    du cpbotha.net 0.24 3.7 0.5 0.074 0.011 0.015
    Числа - время выполнения в секундах, антивирус отключен. Не вижу смысла что то еще добавлять.

    p.s. wsl - отличная идея, 1 версия позволяет работать числодробилкам на процессоре, без заметной потери производительности, 2 версия - позволяет устаналивать драйвера на gpu и запускать приложения числодробилки на видеокартах, сам лично не пробовал но пишут что работает без потери производительности... Считаю это лучший способ постепенно уходить от windows it разработчикам, которые все еще сидят на этой платформе но не имеют никакого опыта и резко все еще опасаются это сделать. Все равно многие вещи через docker там и так уже запускаются, помучавшись с тормозами будет логично выкинуть windows и идти в мир linux,... а там надеюсь наконец и производители оборудования подтянутся.
    Ответ написан
  • Скрипт для передачи данных, в поисках простого решения. кто может помочь?

    @rPman
    ТЗ дано, в целях - простое, про авторизацию не заикнулись...

    Реализация будет состоять из 3 частей:
    1. интерфейс - frontend
    2. серверная часть backend
    3. из-за особенности реализации backend большинством инструментов и веб серверов, регулярные операции делают сторонним скриптом, обычно его запускают средствами ОС (его шедулером), в linux это cron

    Итак, интерфейс из одного окна - окно запроса текста с кнопкой отправки с сообщением о результате, на основе html forms:
    spoiler
    <!DOCTYPE html>
    <html>
    <head>
        <title>Текстовая форма</title>
    </head>
    <body>
        <form action="script.php" method="post">
            <textarea name="text" rows="10" cols="50"></textarea>
            <br>
            <input type="submit" value="Отправить">
        </form>
    </body>
    </html>

    Бакэнд на php это эта же самая страница, но в местах где нужно менять содержимое по логике (где нужно вывести сообщение о результате) ставится <?php ... код ... ?>. Вот пример сохранения введенного сообщения пользователем в файл, имя которого будет содержать номер сессии пользователя и время (timestamp, это сделано намеренно что бы показать проблему именования файла в данной задаче при многопользовательском доступе, если использовать просто timestamp, т.е. время в секундах, то несколько одновременно посланных сообщений заменят друг друга и останется только последнее, в приведенном примере эта проблема сохранится только для одного 'пользователя' т.е. сессии браузера - открытой страницы что даже локально сложно добиться, естественно правильно делать индекс со списком файлов но зачем, задача то простая):
    spoiler
    <?php
    define("STOREPATH","/my_cool_file_database");
    
    session_start();
    
    if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["text"])) {
        // Получаем текст из POST запроса
        $text = $_POST["text"];
        
        // Создаем имя файла: session_id + _ + timestamp
        $filename = STOREPATH . "/" . session_id() . "_" . time() . ".txt";
        
        try {
            // Пытаемся записать файл
            if (file_put_contents($filename, $text) !== false) {
                echo "Успешно";
            } else {
                throw new Exception("Ошибка при записи файла");
            }
        } catch (Exception $e) {
            echo "Ошибка: " . $e->getMessage();
        }
    } else {
        echo "Ошибка: Неверный запрос или отсутствуют данные";
    }
    ?>


    И соответственно скрипт удаления старых сообщений
    spoiler
    <?php
    define("STOREPATH","/my_cool_file_database");
    define("REMOVE_INTERVAL",3600); // интервал в секундах для старых сообщений
    
    // Получаем все txt файлы из директории
    foreach (glob(STOREPATH . "/*.txt") as $file) {
        // Извлекаем timestamp из имени файла
        if (preg_match('/_([0-9]+(?:\.[0-9]+)?)\.txt$/', $file, $matches)) {
            $fileTimestamp = (int)$matches[1];
            
            // Если файл старше часа - удаляем
            if (time() - $fileTimestamp > REMOVE_INTERVAL) {
                unlink($file);
            }
        }
    }
    ?>

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

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

    @rPman
    Регулярные выражения не подходят для анализа html.

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

    Настоятельно рекомендую готовые анализаторы html, они есть подо все популярные и не очень языки и фреймворки. Например для php - штатные или рекомендую simple_html_dom, код будет простым, работать будет очень быстро, все встроено в php или простой include одного файла..
    Ответ написан
    Комментировать
  • Открываются разные сайты при входе с ноутбука и со смартфона?

    @rPman
    Технически нет проблем определить тип устройства и подсовывать разный веб-сайт. Посмотрите внимательно на адрес изначальной ссылки и то что в результате получается на смартфоне и ПК. Например изначальная ссылка проводит анализ и делает перенаправление на другой сайт.

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

    @rPman
    Если тебе запускать программы, не требующие высокой отзывчивости (например в браузере или CAD не получится) то тогда подойдет любая vps с windows, там будет стоять сервер, можно устанавливать свои программы, управление через RDP.

    Если тебе поиграть, то такое решение не подойдет, так как для игр требуется доступ к console (rdp только terminal сессии, без доступа к GPU, за исключением серверных видеокарт, цены на такие vps начинаются от 5т.р. в сутки)

    Тебе нужна desktop версия windows которую в датацентрах самому устанавливать нельзя, но можно арендовать компьютер (не виртуалку), приобрести windows самостоятельно и установить. Вроде бы можно топовые enterprise версии приобретать (у майкрософт) в режиме аренда и запускать где угодно, хоть на виртуалке хоть как. Использовать какой-либо стриминговый инструмент удаленного управления (типа rustdesk/steamlink).

    Дешево не получится... как не крути, дешевле приобрести компьютер.
    Ответ написан
    4 комментария
  • Как создать комнату в браузерной игре?

    @rPman
    Начни с простого чата, есть готовые примеры на основе websocket (на javascript там очень просто), идеологически это именно то что тебе нужно, потому что мультиплеерная игра это буквально чат между фронтэндами и бакэндом в обе стороны.

    Не смотри на фреймворки, ПОКА они тебе только помешают, тебе нужно понять принцип.

    Вопрос слишком всеобъемлющий, разбей задачу на подзадачи и спрашивай то что не понимаешь.
    Ответ написан
    1 комментарий
  • Существует ли возможность комфортной работы в связке Docker+Windows+WSL2+Vite?

    @rPman
    Use WSL2 applications to edit your files

    wsl это виртуалка майкрософт, в которой ты запускаешь linux приложения docker и т.п. Соответственно это любое приложение linux (среды разработки, скрипты, утилиты обновления проекта, git и т.п.)

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

    p.s. напомню что многие утилиты linux имеют для windows свои аналоги, иногда там есть некоторые несовместимости по именованию файлов и путей (символ разделителя каталога '/' и '\'), поэтому git для windows отработает как windows приложение а вот запущенный из wsl - как linux.

    It is also recommended to move the project folder outside of a Windows filesystem
    просто из windows не нужно вообще заглядывать в каталог linux контейнера

    p.p.s. важное замечание, все вышесказанное для wsl1, но если используетсч wsl2 то файл виртуалки будет образом файловой системы, т.е. один большой файл .vhdx понятно что из windows его ни открывать ни редактировать не нужно (да и сложно будет, ведь подключить как диск его можно, но вот поддержки linux файловых систем нужно добиться, добавив сответствующий драйвер, и ни в коем случае это нельзя делать одновременно, это вообще порушит файловую систему в образе и можно потерять файлы)
    Ответ написан
    4 комментария
  • Можно ли в Linux на файловой системе EXT4 запретить именовать файлы одинаково с разным регистром букв?

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

    В общем у файловых систем hpfs, vfat и ntfs есть опции, позволяющие такой функционал, но ext4 нет

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

    @rPman
    Попробуй полностью удалить de, xserver и драйвера на видеокарту, после удаления пакетов, почистит настройки (в debian дистрибутивах это apt pirge пакет, или аналог у тебя)... Некоторые настройки потеряться, потому что хранятся не в пользовательском каталоге...
    Ответ написан
    Комментировать
  • Как вытащить данные из игры андроид?

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

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

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

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

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

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

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

    @rPman
    Тебе нужны TTS SAPI движки, ищи, есть неплохие, для русского например RHVoice, от полностью открытый, у него есть как sapi так и подключаемая c библиотека, есть для android и я помню адаптировал из него него jni вариант для вызова из java на pc.

    p.s. к сожалению, с появления gpt и алгоритмов генеративного ИИ, синтез и распознавание речи значительно поднялось, но никто не релизил (я не нашел) именно sapi движок для них, что очень странно.
    Ответ написан
    1 комментарий
  • Вопрос по надежности ZFS. Как лучше делать датасеты: со сжатием или без?

    @rPman
    чем сложнее файловая система, тем менее вероятно восстановление после сбоя.

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

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

    p.s. настоятельно не рекомендую рассчитывать на восстановление данных на основе 'что то смогу восстановить', лучше используйте raid1/5/6 (6 версию рекомендую, от 4 дисков, суммарный объем меньше на 2 диска), в этом случае вы значительно будете защищены от аппаратных сбоев на диске (но не в контроллере и не в софте).

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

    @rPman
    Нарисовать две линии, одну светлым - по толще, а другую - нужную, по тоньше
    пример

    а универсально, рисовать в памяти в битмап разрешением больше чем необходимо, и при копировании на экран - масштабировать
    Ответ написан
    Комментировать
  • Кто отвечает за безопасность VPS?

    @rPman
    Зона ответственности хостера начинается и заканчивается в лицензионном соглашении.

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

    В любом случае VPS это виртуальная машина, по факту - еще один компьютер, который ваш администратор (клиент VPS или если арендует компания, выделенный человек в ней) обязан контролировать и за который он отвечает.
    Ответ написан
    Комментировать