Задать вопрос
  • Процессор i5 vs i7. Когда надо и надо ли?

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

    При выборе процессора смотри на объем кеша L2 (и тут победитель 'последние' годы amd но не в секторе ноутбуков к сожалению) и бенчмарки в single thread (однопоточные). А еще у интель есть энергоэффективные ядра, которые роняют производительность ниже плинтуса, да, affinity можно ручками выставлять, говорят помогает но это дико неудобно.

    Если смотреть твои варианты, то:
    thinkpad t14 gen3 - 3213 попугая, батарея 39.3Wh (пишут что есть варианты с дискретной видео тогда 52.5Wh)
    thinkpad t14 gen4 - 3482 попугая, батарея 39.3Wh
    thinkpad t14 gen5 - 3453 попугая, батарея 52.5Wh (и пишут что батарея заменяемая)
    Что то описания на офф сайте не очень совпадают с тем что магазин показывает, либо там оперативную память вынимают (маркетинг ****) либо кто то косячит.
    Оперативную память 'всегда' можно докупить, процессоры до 64гб поддерживают (если нельзя заменить, то такой ноут точно не нужно рассматривать как мощная машина, обычно это SoC с запаянной памятью, ssd и процессором)

    p.s. И помним, что ноутбук это не про производительность! это про мобильность и время работы. Либо ты будешь работать быстро и мощно (игровые ноуты, из дорогого сегмента) но не долго (пару часов) либо долго (5-6 часов) но 'без огонька'.

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

    Для смеха, добавлю вариант - мощный компьютер стоит в машине, раздает быстрый wifi, а ноутбук работает как терминал к нему, подходит для тех кто катается например на природу 'поработать' на своей машине.
    Ответ написан
    6 комментариев
  • Как установить основную ОС на другой жесткий диск на уже запущенной машине?

    @rPman
    Вариантов много, все они требуют какие то навыки работы с linux.

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

    Можно по другому. Для начала тебе нужно запустить на этом компьютере какой-либо linux (использовать livecd/liveusb варианты с возможностью работать как с обычным ос) что бы он мог найти сетевой адаптер и настроить его автоматически, а так же что бы в его составе шел какой-нибудь сервер удаленного управления, от ssh до vnc на выбор...

    Вот пример как модифицировать тот же livecd ubuntu в gui с помощью cubic-wizard

    Так же можно по тупому, на рабочей машине протестировать, какую последовательность действий необходимо выполнить для установки vnc сервера, и прожать кнопки в слепую.
    например:
    # переключиться в tty консоль ctrl+alt+f1 ввести логин и пароль (у ubuntu livecd дистрибутивов имя пользователя совпадает с названием дистрибутива, например xubuntu, и с пустым паролем)
    # переключить консоль на рута (
    sudo -i
    # обновить индексы репозитария и установить x11vnc
    apt update; apt install -y x11vnc
    # Запуск VNC сервера без пароля
    x11vnc -forever -shared -display :0
    теперь можно подключиться по ip:5900 хоть с винды, простейший vncviewer

    ip адрес можно узнать, зайдя в админку роутера или просканировав локальную сеть (я надеюсь все это в локальной сети будет происходить?) каким-нибудь сканером типа nmap

    Но и без знания ip можно выкрутиться, у vnc есть обратный режим подключения, когда сервер (машина которой нужно управлять) подключается к клиенту (машина с которой будет управление), клиент тогда запускать командой
    vncviewer -listen 5500
    а сервер
    x11vnc -display :0 -connect IP_КЛИЕНТА:5500
    ip клиента ты знаешь, в слепую набрать на клавиатуре это не сложно.
    Ответ написан
    Комментировать
  • Как можно узнать какие сайты открыты в хроме у пользователя терминального сервера?

    @rPman
    Потребуется приложение и расширение к браузеру, и то и другое формально можно написать в блокноте (wsh/.net/powershell), они не такие сложные как ожидается. Ну и расширение пользователь может отключить (раньше для IE это можно было политиками запретить но для хрома/edge на сколько я знаю этот функционал отсутствует) или запустить браузер со своим отдельным профилем

    Можно мониторить заголовки окон, тоже простым приложением, будет видно что в браузере открыто окно с заголовком, в котором обычно название сайта (но не ссылка) активной вкладки
    Ответ написан
    Комментировать
  • Совет по организации NAS?

    @rPman
    Важнейший вопрос тут - для каких задач будет использоваться NAS.

    1гбит будет давать до 110мбайт/сек, для hdd особого смысла выше нет (только если это будет бесплатно, что обычно не так, так как 2.5Gb коммутаторы все еще дорогие), так как высокие скорости (200мб/с) достигаются только при линейном копировании больших файлов и при отсутствии фрагментации... во всех остальных случаях скорость может упасть 10кратно... и не утилизирует сетевой канал.

    Второе - по какому сетевому протоколу будет обеспечиваться доступ к файлам... Например самые быстрые - iscsi/nbd/aoe (потому что позволяют кешировать локально даже записи, ОС знает до каких пор), но они только блочные устройства транслируют... дальше идет linux nfs и где то в конце майкрософтовский smb (он на мелких файлах может чуть ли не кратно ронять скорость)

    Теперь важный ответ про RAID, никогда не используйте дешевые 'аппаратные' raid контроллеры (не серверные, те что с кешем записи и батарейкой), пользы они вам не принесут никакой а вот гемороя административного добавят (например вендорлок, при смене материнки/контроллера пересобирать рейд). Пользуйтесь программным рейдом, он есть как в windows штатно (даже в десктопных ОС если pro версия) так и конечно в linux (mdadm или штатная фича файловых систем btrfs/zfs).

    По поводу конфигурации... подбирайте корпус mini pc что бы диски были внутри и подключались по своему штатному коннектору, в вашем случае sata, так как внешние usb контроллеры могут добавить багов (например не будет виден smart дисков или уберут поддержку trim для ssd) и главное, конструктивно эти наружу торчащие провода можно задеть и сбросить диски 'со стола'... NAS должен быть удобным и монолитным, и 'с ручкой для переноса'.

    p.s. покупать аппаратный raid с корпусом (домашние ревизии) имеет смысл когда есть желание получить готовый результат без усилий, за это и идет доплата в цене, по сравнению со своей сборкой, выбирайте либо вы собираете либо за вас. Ну и функционал готового рейда обычно лимитирован софтом, который там запущен, когда как свой linux - максимально полнофункционален но конечно не так удобен, плюс никто не мешает и тут такой же софт поставить с UI.
    Ответ написан
    4 комментария
  • 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 одного файла..
    Ответ написан
    1 комментарий
  • Открываются разные сайты при входе с ноутбука и со смартфона?

    @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 комментарий