• Параллельное использование жёсткого диска?

    GavriKos
    @GavriKos
    Даня, тебе 10 раз сказали - проверь жесткий!!
    Конечно так можно - у многих 1 диск в компе и все ок. Никакого "бага в вбокс" или еще что ты там мог себе придумать нет - люди десятками тысяч делают так как ты описал.

    У тебя явно что то херит сам файл виртуалки - либо сыпется диск, либо вирусня шарится, либо некорректно завершаешь работу виртуалки.
    Ответ написан
    8 комментариев
  • Какие есть программы для мониторинга заполняемости дискового пространства на ПК?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Не совсем мониторинг, но можете сначала попробовать визуализацию папок:
    Ответ написан
    Комментировать
  • Можно ли хранить в графовых базах данных JSON?

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

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

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

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

    p.s. json это значит для контроля над целостностью, индексации и поиска придется городить свои надстройки, с другой стороны это освобождает руки от непреднамеренного усложнения хранилища там где это не требуется, в общем осторожностью нужно подходить к этому, это не плохо и не хорошо, это просто еще один способ со своими плюсами и минусами
    Ответ написан
    4 комментария
  • Как отключить кулер на C#?

    Сначала узнаём, через что в принципе можно программно управлять вентиляторами:
    https://stackoverflow.com/questions/485448/program...
    Узнаём, что вентиляторы управляются через SuperIO, а к SuperIO можно обратиться через MMIO/PMIO.
    К MMIO/PMIO можно обратиться только на уровне ядра - значит нужен свой драйвер, либо какой-то уже существующий софт, у которого есть API, к которому мы можем обратиться.

    За своими драйверами идём сюда: https://docs.microsoft.com/en-us/windows-hardware/...
    За существующими: https://github.com/starofrainnight/winio

    Потом вызываешь его через P/Invoke

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

    команда | less -R
    ну или прям чтоб совсем удобно
    ls -la | vim -
    где ls -la - это твоя команда
    Ответ написан
    2 комментария
  • Как определить, можно ли из символов первого массива создать строку идентичную второму массиву?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Подсчитайте, сколько каждого символа встречается в первой строке и убедитесь, что во второй - их не больше.
    Самый простой способ сделать это - это завести массив счетчиков на 256 элементов. Для символов первой строки увеличивайте счетчик по индексу static_cast<int>(s[i]) на 1, для второй строки - вычитайте 1. Если где-то получили -1, то составить нельзя.

    И еще, это же у вас C++, судя по тегам и cin? Ну так используйте std::string. Зачем вы сишные строки выделяете?
    Ответ написан
    Комментировать
  • Что делать если чип биоса сгорел?

    @pfg21
    ex-турист
    заменить микруху и надеяться что все остальное волшебный дым не выпустило и продолжает работать.
    Ответ написан
    1 комментарий
  • КПД пауэрбанка?

    @VT100
    Embedded hardware & software.
    С высокой степенью достоверности, КПД каждого современного преобразователя (микросхема и её обвязка, по одному в банке-источнике и приёмнике) можно принять от 85 (шлак) до 95 % (топ).
    Основное влияние окажут аккумуляторы, КПД которых, в том числе, зависит и от нагрузки (больше ток - меньше). Как-то - целенаправленно искал данные для 18650 (что поспорить с адептами "электричек"), но не преуспел.
    Так что, вполне можно считать верхнюю границу в 60-65 % ~ 0,9^4.
    Ответ написан
    Комментировать
  • КПД пауэрбанка?

    Levman5
    @Levman5
    print(“Hello World!”)
    У каждого повербанка свой кпд. Также это зависит от провода по которому ты будешь передавать энергию
    Ответ написан
    Комментировать
  • Что нужно знать для изучения линейной алгебры для ИИ?

    @dmshar
    Вопрос немного странноват. Вы так спрашиваете, будто вам надо еще и "обычную математику" учить. Ну, то есть вы еще математику (обычную - это школьную, что-ли?) недоучили, но нейросети уже собрались изучать.
    Линейная алгебра - один из первых курсов, изучаемых на специальностях, связанных с математикой. Или одна из первых тем в курсе "вышки", которую изучают обычные инженеры. Поэтому для ее изучения достаточно знать все, что вам преподавали в "обычной математике".
    Ответ написан
    Комментировать
  • Обращение к записи БД требует некоторой обработки. Что лучше: обработать в скрипте, который обратился, или в хранимой процедуре в БД?

    @Akina
    Сетевой и системный админ, SQL-программист.
    что эффективнее: хранить в записи список id объектов, которые должны быть обработаны при обращении к этой записи, в виде строки (скрипт будет парсить строку и отрабатывать каждый id), либо сделать триггер и хранимую процедуру (MySQL), которая возьмёт эту работу на себя?

    Ни то ни другое.

    Если тебе нужна канава, и есть экскаватор, то взять из его ремнабора лопату и ей копать канаву - голимая дурь. Это что касается обработки в скрипте - сервере БД сделает то же на порядок быстрее и эффективнее.

    Но есть ещё косяк - в том, как хранятся данные. Упаковка набора данных в одну запись в виде CSV-списка - это тоже дурь в подавляющем большинстве случаев. Умные люди не зря придумали нормальные формы, которые позволяют обрабатывать данные максимально эффективным образом.

    Вот и займитесь - почитайте про нормализацию, нормализуйте схему БД. А потом обрабатывайте данные на сервере как надо. В большинстве случаев оказывается, что супер-пупер-сложная обработка сводится на самом деле к одному не сильно сложному запросу.

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

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Скорее всего, где-то некорректно отрабатывают скрипты определения устройства. Было бы неплохо, чтобы Ваш вопрос увидели современные дизайнеры сайтов, чтобы понять свою ошибку... С точки зрения дизайна привязка именно к разрешению экрана не очень хорошее решение.

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

    @pavelsha
    Дизайнеры и верстальщики работают на понтовых мониторах 27+ с высокими разрешениями
    Руководство, которое принимает их работы сидит за такими же мониторами или на мобильных устройствах с Retina-дисплеями ;-)
    Если дизайнер и верстальщик работают в офисе, то так и надо "дизайн у некоторых сайтов делают настолько крупным, чтобы его с 10 метров было видно на мониторе". ПРОДАКТ--гОВНЕР идет по опенспейсу, сразу видит что работа идет в нужном ключе и на душе у него благостно.

    Исследования целевой аудитории и их устройств также проводятся для галочки.

    А результат ты описал выше.

    Экономия трафика??? Обработать, сжать/оптимизировать графические элементы перед публикацией? Зачем??
    Везде 5Джи и Wifi 6.
    Ответ написан
    Комментировать
  • Следует ли использовать геттеры и сеттеры внутри самого класса?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Правильнее конечно же через геттеры-сеттреры, так как изначально предполагалось, что есть только одна точка контроля - геттер/сеттер.
    С другой стороны - все на усмотрение разработчика, можно и напрямую к полю.
    Ответ написан
    3 комментария
  • Как правильно установить Qt Creator для всех пользователей компьютера?

    @pavelsha
    Сисадмин имеет низкую квалификацию. Не учел при установке, что программой будут пользоваться пользователи с рядовыми правами.

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

    Часто, все, что нужно сделать, чтобы сделать программу доступной для всех пользователей на компьютере, - это скопировать эти ярлыки в место, к которому могут получить доступ все пользователи, такие как Public Desktop или меню «Пуск». Для этого:

    Найдите ярлык (ы) приложения в учетной записи пользователя, выполняющего установку. Общие места, где создаются иконки:
    Меню Пуск пользователя:
    C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs 1
    Рабочий стол пользователя:
    C:\Users\\Desktop 2
    Скопируйте ярлык (ы) в одно или оба из следующих мест:
    Рабочий стол всех пользователей:
    C:\Users\Public\Public Desktop
    Меню Пуск всех пользователей:
    C:\ProgramData\Microsoft\Windows\Start Menu\Programs 3

    1 Также доступно через %APPDATA%\Microsoft\Windows\Start Menu\Programs
    2 Также доступно через %USERPROFILE%\Desktop
    3 Также доступно через %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
    Ответ написан
    3 комментария
  • Как обработать большой объем данных?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Установите pgAgent. Руководство.
    Создайте задание. Руководство.
    С запросом (от Aleksey) UPDATE accounts SET x=b WHERE x=a;
    Ответ написан
    Комментировать
  • Как обработать большой объем данных?

    Zoominger
    @Zoominger
    System Integrator
    А зачем через Яву-то дёргать? Можно непосредственно в самой СУБД запланировать. Пример для MS SQL, чтобы было понятно: https://www.osp.ru/winitpro/2017/01/13051261
    Ответ написан
    1 комментарий
  • Насколько мой код читабелен?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    С ходу же:
    try
    {
        if (from > to)
            throw "Incorrect couple 'from - to' for generating random numbers";
    }
    catch (const char *message)
    {
        std::cerr << message << '\n';
        exit(1);
    }
    Зачем нужен такой изврат, если вы ловите исключение сразу же? Чем хуже
    if (from > to)
    {
        std::cerr << message << '\n';
        exit(1);
    }


    bool init(IntList1D &list, int number)
    {
        if (list == nullptr || *list == nullptr)
        {
            if (list == nullptr)
                list = new IntList1D_element *;
            *list = new IntList1D_element(number);
            return true;
        }
        return false;
    }
    Чем меньше глубина вложенности, тем лучше. Ранний выход из функции лучше, чем выход в самом конце. Сравните
    bool init(IntList1D &list, int number)
    {
        if (is_initialized(list))
        {
            return false;  
        }
        if (list == nullptr)
        {
            list = new IntList1D_element *;
        }
        *list = new IntList1D_element(number);
        return true;
    }


    bool is_inited(const IntList1D list)
    {
        if (list == nullptr || *list == nullptr)
            return false;
        else
            return true;
    }
    Здесь и название функции кривоватое и чересчур усложнена сама функция.
    bool is_initialized(const IntList1D list)
    {
        return (list != nullptr && *list != nullptr)
    }

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