• Ошибка с диском линукs ubuntu 23.10?

    @rPman
    Раскрою ответ который тебе уже дали в комментариях

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

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

    Лечить файловую систему из windows (можно и из linux но настоятельно рекомендуется родные файловые системы чинить средствами windows). Сделать это можно в windows проводнике, свойства диска, вкладка обслуживание - проверка диска, отметить чекбокс 'исправлять ошибки' либо в диспетчере дисков (либо командой в консоли chkdsk).

    Чтобы такого больше не происходило, если компьютер выключается с целью последующего запуска другой ОС (или например диск извлечь и нести другому человеку), то выключать командой
    shutdown -s -t 0

    Либо полностью отключить гибернацию, как советовали в коментариях
    powercfg -h offТогда любое выключение будет полным (и соответствующий запуск windows медленным)
    Ответ написан
    Комментировать
  • Почему переменная постоянно растет, хотя я нигде не прописывал этого?

    @rPman
    ИИ от anthropic - claude.ai:
    В коде есть несколько моментов, которые могут приводить к неправильному поведению при работе с последним элементом массива alarms:

    Размер массива объявлен как ALARM_COUNT = 20. Это значит, что индексы элементов будут от 0 до 19 включительно. Но в некоторых циклах обработки массива используется условие i <= 30. Это выходит за границы массива и может привести к неопределенному поведению.
    При инкременте и декременте номера банка (funkции incrBank, decrBank) не проверяется выход за границы массива. Например, если bank = 20, то после inkBank он станет равен 21, что уже выходит за размер массива.
    Не инициализируются значения элементов массива alarms после номера 19. Эти элементы могут содержать случайный "мусор", который и приводит к странному поведению.

    Чтобы исправить эти проблемы, я бы порекомендовал:

    1. Использовать в циклах условие i < ALARM_COUNT вместо i <= 30
    2. Добавить проверку границ при инкременте/декременте номера банка:

    void incrBank() {
      if (bank >= ALARM_COUNT-1) { 
        bank = 0;
      } else {
        bank++;
      }
    }
    
    void decrBank() {
      if (bank <= 0) {
        bank = ALARM_COUNT-1;  
      } else {
        bank--;
      }  
    }

    3. Явно инициализировать все элементы массива alarms при старте.

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

    ИИ можно использовать как начало анализа, проверяя каждое из его предположений и задавая наводящие вопросы
    Ответ написан
    1 комментарий
  • Как создать exe файл с интерпретатором angel script?

    @rPman
    AngelScript sdk это и есть набор инструментов и библиотека по компиляции и запуску скриптов с интеграцией их в своем c++ приложении.

    Ответ я не знаю но я открываю документацию и там все красиво с примерами написано

    Вот так ты компилируешь скрипт
    Вот так ты запускаешь метод в скрипте

    Внутри sdk в каталоге sdk/samples есть примеры проектов visualstudio
    Ответ написан
    Комментировать
  • Какие легковесные дистрибутивы Linux еще остались?

    @rPman
    Не путай размер дистрибутива и размер установленной системы на диске

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

    Например одно время ubuntu server альтернативно можно было установить, загрузившись в примерно 100-200мб iso образ, с установщиком, который с удобным текстовым интерфейсом устанавливал абсолютно все пакеты по сети из репозитария..

    Место, занимаемое установленной ОС зависит не от выбора мейнтейнера, а от выбора софта, который тебе нужен. Что бы ты не выбрал, пример - если тебе нужно ставить пакеты для разработки нейронных сетей (tensorflow) на nvidia gpu, то качать тебе минимум 5 гигабайт всего что с этим связано (а то и больше).

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

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

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

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

    @rPman
    Все зависит от плеера, у каждого свои механизмы

    Например у mpv (потомка mplayer) есть возможность управлять им, симулируя нажатия на кнопки (как я помню через stdin пайпом от своего приложения) и используя плейлист через пайп или тот же stdin, формируя его на лету своим приложением

    по нормальному mpv поддерживает скриптовые плагины на lua, есть плагин mpv-network-commands так что любое поведение можно запрограммировать
    Ответ написан
    Комментировать
  • Учитывает ли Git регистр имени файла и как его поменять?

    @rPman
    Попробуй переименовать файл
    git mv -f hello.cs Hello.cs
    если он не будет давать это сделать на твоем текущем репозитарии, переименуй файл сначала обычными средствами файловой системы в hello.cs а потом с помощью git-mv
    Ответ написан
    Комментировать
  • Как редактировать контент сайта человеку не знающему HTML (без конструкторов)?

    @rPman
    Тебе нужна 'система управления к содержимым' (content management system), в общем случае это программа которая из текста делает html, и делает это в удобном и понятном виде.

    Либо ты пользуешься готовыми системами типа конструкторов сайтов и новыми cms типа древнего wordpress, либо пишешь его сам
    Ответ написан
    4 комментария
  • Куда стоит поступать на ИИ?

    @rPman
    Не воспринимайте мой ответ как верный, но как повод задуматься.

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

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

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

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

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

    p.s. безотносительно выбора ОС, могу предположить что забитая оперативная память может повлиять на количество операций чтения с постоянной памяти (hdd или ssd) при условии что эти данные могут быть закешированы и кеш этот использован (т.е. данные читаются повторно). Вся свободная оперативная память ОС будет использована как дисковый кеш (в linux это настраивается но нет никакого смысла это менять), соответственно если эту память занять подо что то другое, данные будут чаще считываться с диска.

    Но потребление ssd/hdd при чтении данных, по сравнению с 'ничегонеделанием' очень мизерное. Боюсь что это так же не имеет особой значимости.
    Ответ написан
    5 комментариев
  • Как сгенерировать случайное имя файла?

    @rPman
    return random_name + '.pdf'  # Добавляем расширение .pdf к случайному имени


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

    import random
    import os
     
    def generate_random_name():
        characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
        random_name = ''
        for i in range(10):
            random_name += random.choice(characters)
        return random_name
     
    def rename_file(file_path):
        new_name = generate_random_name()
        directory = os.path.dirname(file_path)
        new_file_path = os.path.join(directory, new_name)
        os.rename(file_path, new_file_path)
        return new_file_path
     
    file_path = 'C:\\2\out.pdf'
    new_file_path = rename_file(file_path)
    print(f'Файл переименован в {new_file_path}')

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

    import random
    import os
    
    def generate_random_name():
        characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
        random_name = ''
        for i in range(10):
            random_name += random.choice(characters)
        return random_name + '.pdf'
    
    def rename_file(file_path):
        new_name = generate_random_name()
        directory = os.path.dirname(file_path)
        new_file_path = os.path.join(directory, new_name)
        os.rename(file_path, new_file_path)
        return new_file_path
    
    file_path = 'C:\\2\\out.pdf'
    new_file_path = rename_file(file_path)
    print(f'Файл переименован в {new_file_path}')


    В этом коде мы добавили метод generate_random_name(), который возвращает случайное имя файла с расширением .pdf. Затем мы изменили функцию rename_file, чтобы она использовала новое имя файла, сгенерированное методом generate_random_name(), в качестве последнего имени файла.
    Ответ написан
    3 комментария
  • Для надёжности, какой тип внешнего диска лучше выбрать, SSD vs HDD?

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

    usb flash самый ненадежный носитель данных, из-за того что в него вставляют не очень умный контроллер, у нее хуже охлаждение и в ней скорее всего используют дешевую память. У меня есть пример несколько флешек (от дешевых и старых до midend usb3) которые от лежания в ящике стола чуть больше года перестали работать (а одна теперь работает только в usb2 разъемах)

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

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

    Напоминаю, вероятность выхода из строя hdd диска среднего ценового диапазона гуляет вокруг 1.5% за первые 5 лет, и максимум выпадает на первый год работы. Какая-нибудь дешевая 3Тб тошиба будет выходить из строя с вероятностью в 7% (личное наблюдение). Вероятность выхода из строя диска, который постоянно включают и выключают - значительно выше (в разы).

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

    Хранить данные в одной копии - лучший способ их потерять. Настоятельно рекомендую делать резервную копию.
    Если опасаешься аппаратных проблем,
    можно воспользоваться технологией raid, когда надежность диска повышается многократно за счет объединения вместе нескольких дисков (одинакового размера) за счет потери итоговой суммарной емкости равной размеру одногодиска (raid mirror 2 диска размер 1 диска, raid5 - от 3-х дисков размер итоговый 2 диска,при этом если дисков будет 32 то итоговый размер будет все равно на 1 меньше). При использовании raid1/raid5 возможна безопасная потеря 1 любого диска, raid6 - двух. Само собой когда диск умирает, рейд переходит в ненадежное состояние и необходимо заменить сбойный диск, для приложений эта замена проходит незаметно (падает производительность на время замены)

    Софтварный raid в linux позволит делать его из любых устройств, хоть флешек! как бы это не выглядело странно. В windows removable диски кажется нельзя напрямую так использовать, но можно обойти ограничение с помощью виртуальных дисков .vhdx

    само собой при использовании raid бездумно извлекать его составные диски из компьютера нельзя, нужно сначала останавливать его и только потом отключать диски
    Ответ написан
    1 комментарий
  • Как ввести длинный поток байтов?

    @rPman
    Ввести как константу в исходниках? самое простое base64 encoding
    base64.b64decode('твоя base64 строка')

    а сам исходный файл кодируй либо какой либо утилитой либо онлайн либо напиши программу на python в 3 строчки
    -------------

    есть утилита xxd, она преобразует файл в набор 16-ричных цифр, добавить к ним \x и заключить в ковычки b'\x...' получишь свою строку

    -----------

    chatgpt сгенерировал такую программу, чтобы сделать это самому да еще и печатные символы в код не преобразовывать, выглядит вроде верным кодом
    import string
    
    # Откройте файл в режиме чтения байтов и прочитайте его содержимое
    with open('your_file', 'rb') as f:
        byte_content = f.read()
    
    # Преобразуйте байты в строку байтов
    byte_string = ''
    for b in byte_content:
        if chr(b) in string.printable and b not in (0x0a, 0x0d):  # Проверка, является ли символ печатным и не является ли он символом новой строки или возврата каретки
            byte_string += chr(b)
        else:
            byte_string += '\\x{:02x}'.format(b)
    
    # Выведите строку байтов
    print(byte_string)
    Ответ написан
    Комментировать
  • Видеокарта для обучения нейросетей, Palit P104-100 8Gb?

    @rPman
    Если выбирать при работе с нейронными сетями - больше памяти = лучше почти всегда (чтобы в память влезали нейронки, обучающая выборка и тесты и еще осталось), в идеале конечно и кеш больше но это архитектура (новее = лучше почти всегда). Выбор nvidia почти всегда для нейронок лучше, вопрос не железа, оно у них даже может быть хуже (соотношение цена/результат), вопрос софта, почти весь популярный ЛУЧШЕ или вообще работает с nvidia.

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

    p.s. стоимость видеокарты намекает на покупку с рук БУ, почти наверняка с майнинга, будь осторожен, можешь получить горелую.
    Ответ написан
    2 комментария
  • Как получить и выводить usdt trc20?

    @rPman
    Кошелек бери только один из официальных Tron (trc20), самое простое для обывателя это расширение для браузера TronLink.

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

    DPOS блокчейны (коим является Tron, кстати это лучший выбор для usdt по затратам, худший - это bitcoin omni) для работы требуют свои базовые токены для оплаты комиссий (дорогой вариант) или стейкинга (дешевле раза в 3 но требует заблокировать монеты), если тебе однократно, то просто переведи себе на кошелек некоторое количество trx (купи там же где менять собираешься).

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

    @rPman
    для неопытного пользователя никаких вариантов кроме debian based дистрибутивов типа xubuntu или лучше mint, вопрос даже не философии, а тупо больше пользовательская база и инструкции в интернете рассчитаны именно на ubuntu

    браузер firefox, он немного быстрее работает на слабых машинах (это хорошо что у тебя 4гб ram) чем chromium браузеры (но чистый chromium тоже неплохо бы поставить)

    для просмотра видео используй mpv, он умеет youtube и другие облачные видеохостинги (но навигация вручную в браузере), так же можно скачивать видео каким-нибудь yt-dlp (он тоже не только youtube)
    Ответ написан
    2 комментария
  • Хостинг собственного сайта для личных целей?

    @rPman
    Держать сайт законно

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

    т.е. не важно где ты держишь, важно что и как

    p.s. российский интернет сломан провайдерами, вероятность что твой домашний компьютер будет доступен по тому или иному протоколу далека от 100%, каждый провайдер ломает по своему

    http вроде бы пока не ломают, так как он не шифрованный и его легко анализировать, а вот https хз, по уму пока не должно быть проблем. У меня на ростелекоме были рандомные проблемы по типовым портам типа 3389 (rdp) или тот же 22 (ssh) а уж с мобильного (tele2) я к своей машине не мог никак подключиться кроме http...
    Ответ написан
    Комментировать
  • Правильный бекап базы данных mysql?

    @rPman
    проверять работоспособность бакапов

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

    p.p.s. мегаоперативный бакап это репликация (не заменяет обычный так как не защищает например от ошибки пользователя сделавшего delete * from data) с рабочими скриптами превращения резервной ноды в оперативную, тогда смерть базы от аппаратных проблем (например пожар или кража) не остановят бизнес
    Ответ написан
    Комментировать
  • Есть ли возможность получить читаемый текст?

    @rPman
    tesseract может это распознать (шрифт ему знаком) но у него проблемы с таблицами, он все сливает в один сплошной текст (да корявый)
    Штатный linux OCRFeeder + tesseract

    Интегрированная  сыстема  манеджмыента сертифицирована на соответствия требованиям ГОСТ Р МСО 9001-2015, ГОСТ Р ИСО 15183-20415, ГОСТ Р ИСО 14001-20165, ГОСТ Р ИССУМаК 27СКИ -2006, ОНЗАЗ 18001:2007, ВА ЗА ВОСКОМ
    № направления‘дата:Фамилия: ЛПУИмя: Доктор.Дата рождения: 
    Адрес пациентаПол: 
      
      
      
    Наименование исследования Результат Ед. изм. — Нормальные значения 
      
    ИММУНОЛОГИЧЕСКИЕ ИССЛЕДОВАНИЯ 
      
    Лимфоциты, % 39.1 % 18.2-47.4 Лимфоциты (иммунограмма) 2.00 10*9/л 1.16-3.18 Т-лимфоциты СОЗ, % 76.40 % 55.00-80.00 Т-лимфоциты СОЗ 1.53 10*9/л 0.80-2.20 Лейкоцитарно-Т-ЛФ индекс 3.3 - 4.0-7.0 Т-хелперы СОЗ/СО4, % 43.60 % 31.00-51.00 Т-хелперы СОЗ/СО4 0.87 10*9/л 0.60-1.60 Т-цитотоксические СОЗ/СО8, % 30.20 % 19.00-37.00 Т-цитотоксические СОЗ/СО8 0.60 10*9/л 0.30-0.80 Иммунорегуляторный индекс 1.444 1.200-2.500 СО4/СО8 
    В-лимфоциты СО19, % 10.70 % 5.00-20.00 В-лимфоциты СО19 0.21 10*9/л 0.10-0.50 МК-клетки СО16/СО56, % 12.90 % 6.00-20.00 МК-клетки СО16/СО56 0.26 10*9/л 0.07-0.73 Т-киллерь(Т-МК) СО3/СО16/С056 0.242 + 10*9/л 0.005-0.200 Т-киллеры(Т-МЮ) СО3/СО16/СО56, % 12.10 + % 0.00-10.00 НГА-ОБ+ активированные Т- 10.20 % 0.00-12.00 лимфоциты СОЗ/НГА-ОК, % 
    НГА-ОБ+ активированные Т- 0.20 10*9/л 0.00-0.20 лимфоциты СОЗ/НГА-ОБ. 
    Фамилия И.О.врача, проводившего Никитина Л.В. 
    исследование

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

    @rPman
    Для не программистов (или с минимальными знаниями) есть инструмент autoit, вместе с ним 7 лет назад шла мегаутилита au3record которая преобразовывала движения пользователя в программу, потом ее удалили из-за того что антивирусы считают эту программу вирусом

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

    затем подготовить исходные данные (например список url) в каком-нибудь редакторе (например блокнот) и первыми действиями удалять первую строку в буфер (ctrl+x) и вставлять ее в браузер, в программе тогда достаточно будет вручную указать количество повторений цикла равное количеству строк.

    интервалы времени между повторениями взять с запасом
    Ответ написан
    Комментировать