• Минимальная версия Ubuntu Server 18.04?

    @res2001
    Developer, ex-admin
    также необходимо удалить/отключить все лишние сервисы/логгирование для того, чтобы сохранить работоспособность и не убить USB флешку.

    Логирование отключать не стоит. Можно сделать диск в памяти и смонтировать его в /var/log, тогда флэшка останется не тронутой. Разберитесь с настройками syslogd и уменьшите до минимума потребляемое логами дисковое пространство.
    Так же, видимо, нужно поступить и с /tmp и возможно с чем-нибудь еще.
    Размер дисков в памяти выясните опытным путем.
    Из того что можно отключить - GUI однозначно, это значительно облегчит дистрибутив.
    Ответ написан
  • Будут ли проблемы с установкой второй ОС Ubuntu к существующей Win10?

    @res2001
    Developer, ex-admin
    1.На 30 Гб Убунта встанет. Но для работы это явно мало. У меня мои проекты то же достаточно не большие, но, например, регулярно тяну что-то с гитхаба для изучения или сборки со своими параметрами. Кроме того несколько ВМ есть как Винде так и в Убунте. Все это очень не плохо отъедает дисковое пространство.
    Я перед тем как ставить Линукс воткнул в ноут лоток для второго диска (hdd caddy) вместо DVD ну и соответственно второй диск то же. Теперь в обоих ОС дискового пространства хватает.
    2.Из Убунты разделы винды видны "из коробки", можно и писать и читать. В обратную сторону - все значительно хуже. В свое время на Вин7 пользовался ext2fs, работало нормально, но сейчас на Вин10 он у меня не завелся. Особо не разбирался. Попробовал еще несколько вариантов - то же не срослось. Пока обхожусь.
    3.Не пробовал - все еще 2 системы в ноуте. Но теоретически можно, только пользоваться надо не встроенными средствами, а грузиться с какого-либо live носителя и использовать что-нибудь типа Acronis Disk Director или PartionMagic, которые нормально работают с большинством файловых систем.
    4.Переставлять не нужно. Из линукса (или из live носителя из п.2) убьете разделы винды и расширите линуксовые или сделаете новый раздел и смонтируете.
    Ответ написан
  • Как проверить совместимость программы с ОС?

    @res2001
    Developer, ex-admin
    Поставьте на виртуалке под ХР и посмотрите.
    Ответ написан
  • Как сохранить в памяти и суммировать в число определенную в байтах массу файлов а затем использовать результат?

    @res2001
    Developer, ex-admin
    Из mass() возвращайте размер файла. Там где вызываете mass() суммируйте возвращенное значение.
    unsigned mass(char filePath[]) {
       ...
      return fileSize;
    }
    ...
    unsigned sum_mass = 0;
    sum_mass += mass("file1.txt");
    sum_mass += mass("file2.txt");


    Если сделать sum_mass глобальной, то она будет видна из всех функций данной единицы трансляции. И можно ее присваивать непосредственно в mass() и возвращать в endSumm(). Кстати endSumm() у вас не правильно объявлена.
    Но я бы не советовал использовать глобальные переменные - плохая практика.
    Ответ написан
  • Нужно помочь в решении задачи по информатике. Почему не проходит?

    @res2001
    Developer, ex-admin
    Тут геометрическая прогрессия. Из формулы суммы n членов геометрической прогрессии у меня получилось что-то такое:
    h = floor( log(1. - (1.-b)*MAX/(double)a1) / log((double)b)); // в h количество тарелок при которых sum <= MAX
    if(h > n) 
      cout << n << std::endl;
    else
      cout << h << std::endl;

    На тестовом примере дает правильный результат.
    Ответ написан
  • Не получается найти ошибку, пытаюсь сбилдить на винде - *** missing separator. Stop.?

    @res2001
    Developer, ex-admin
    Возможно тут ошибка:
    !if"$(OPT_WINCRYPT)" == "true"
    Пробел после if добавьте.
    Ответ написан
  • Как запустить и прописать сертификаты автоматически через бат?

    @res2001
    Developer, ex-admin
    В винде есть утилита командной строки для работы с сертификатами: certutil
    Ответ написан
  • Почему не работает условие и не выводит результат?

    @res2001
    Developer, ex-admin
    1.Арифметические операции поддерживаются только в команде set /a (смотрите set /?)
    2.Кавычки в условии должны быть двойные.
    3.Поставьте после set /p вывод option (echo %option%), чтоб убедиться что в переменной содержится то значение, которое вы ввели с клавиатуры.
    4.Метки в goto указываются без кавычек
    5.На сколько я могу судить, вам нужно между вторым if и меткой сделать exit /b. Сейчас у вас код в метке в любом случае отработает, даже если вы введете 2 (в этом случае откроется файл test.txt и выведется 2+2).

    PS: сейчас под рукой винды нет, протестировать ваш код не могу

    @echo off
    set /p "option="
    if "%option%" == "1" (goto:math)
    if "%option%" == "2" (start "test.txt")
    exit /b
    
    :math
    set /a "val=2+2"
    echo %val%
    pause
    Ответ написан
  • Как скомпилировать библиотеку для Qt из под windows?

    @res2001
    Developer, ex-admin
    Вам не нужно компилировать библиотеку для Qt, вам просто нужно ее откомпилировать. Как она в дальнейшем будет использоваться (с Qt или без) роли не играет.

    Для mingw - проще всего использовать не чистый mingw, а msys2+mingw. В msys2 есть менеджер пакетов и в его репах уже много готового для использования софта. Думаю, что openbabel там то же есть. Просто ставите пакет openbabel так же как в линуксе и используете в своем проетке. Кстати, там же есть и qtcreator и Qt и много чего еще.

    Для msvc. Почему бы вам не использовать уже собранные бинарники библиотеки? Они, по моему, доступны для скачивания на официальном сайте.
    Если все же нужно собирать, то вот тут есть инстркция: openbabel.org/docs/dev/Installation/install.html#w...
    Рекомендую собирать в командной строке, а не в GUI. Используйте преднастроенную командную строку msvc (ссылки на нее есть в меню Пуск, после установки msvs). В состав msvs уже входит cmake. Если уж очень хочется GUI, то запускайте cmake GUI из той же командной строки msvc, тогда cmake сможет найти микрософтовский компилятор.
    Генератор cmake нужно выбирать тот, какой версии msvc у вас установлен в системе.
    Ответ написан
  • Как устроиться на работу программистом, если живешь в регионе?

    @res2001
    Developer, ex-admin
    Разместите резюме на HH (мой круг, superjob и т.п.), откликайтесь на понравившиеся вакансии, проходите собеседования, делайте тестовые задания. Не забывайте ежедневно обновлять резюме. Удаленные вакансии есть, устроится реально.
    В свободное время делайте то что задумали, потом добавите ссылки к резюме.
    Параллельно можно посмотреть и в сторону фриланса.
    Желаю удачи!
    Ответ написан
  • Интеграция WSL и PowerShell?

    @res2001
    Developer, ex-admin
    Лично мне это было не нужно, но это уже работает прямо сейчас.
    Только в wsl нужно запускать не cmd, а cmd.exe, не powershell, а powershell.exe - т.е. указывать полное имя исполняемого Windows файла. Для системных утилит это работает без указания пути, т.к. системные каталоги винды прописаны в переменной PATH wsl, для программ установленных в "Program Files" или в других местах нужно указывать полный путь. Виндовые диски монтируются в wsl в /mnt/c/, /mnt/d/, ...
    https://docs.microsoft.com/ru-ru/windows/wsl/interop
    Ответ написан
  • Как перевести int в unsigned int?

    @res2001
    Developer, ex-admin
    Преобразование типов в Си делается так:
    int a = -103;
    unsigned int b = (unsigned int)a;

    Но надо понимать, что unsigned типы - это беззнаковые, т.е. unsigned int переменная может принимать значение от 0 до 4294967295, т.е. значение -103 в вашем случае не входит в область допустимых значений типа unsigned int.
    Когда вы делаете преобразование знаковых типов в беззнаковые вы должны четко понимать к чему это приведет.
    В двоичном представлении переменная a из моего примера принимает значение: 0xFFFFFF99
    Переменная b в двоичном представлении примет это же значение (0xFFFFFF99), но интерпретироваться оно будет уже как 4294967193.
    Обычно когда нужно преобразование знаковых в беззнаковые числа вы перед этим должны убедиться, что знаковое число строго >=0 и только потом преобразовывать. Отрицательные значения должны обрабатываться по другому.
    Хотя, конечно, могут быть и другие задачи, где не требуется отсекать отрицательные числа, а имеет значение только двоичное представление числа (например такой подход применяется при преобразовании порядка байт из little endian в big endian и наоборот).
    Ответ написан
  • Как раcсортировать файлы по дате изменения файла по папкам, где папки с названием даты изменения через bat?

    @res2001
    Developer, ex-admin
    Смотрите for /?
    а конкретно модификатор переменной цикла %~tI
    Для выделения подстроки (понадобится для получения даты в нужном формате) смотрите
    set /?
    Ответ написан
  • Как сделать bat файл для установки файлов обновлений Office или Windows?

    @res2001
    Developer, ex-admin
    Запускать надо батник из-под админа, тогда запускаемые из него программы унаследуют права батника.
    В батнике или просто запускаете отдельно каждое обновление или в цикле примерно так:
    @echo off
    for %%a in (.exe) do (
       %%a <параметры>
    )

    Вариант с циклом может не пройти, т.к. возможно важен порядок устанавливаемых обновлений. В таком случае или первый вариант или можно сделать текстовый файл, в котором в нужном порядке перечисляете исполняемые файлы обновлений. Тогда батник будет читать построчно файл и запускать программу, указанную в прочитанной строке:
    @echo off
    for /f "tokens=* delims=" %%a in (updatelist.txt) do (
       "%%a" <параметры>
    )

    Обычно исполняемые файлы обновлений поддерживают некоторые параметры командной строки. Список параметров можно узнать, запустив обновление с опцией /? . В вашем случае будет полезен параметр "тихой" установки.
    В помощь:
    for /?
    Ответ написан
  • С++ Vs js производительность, у js немного больше вот функции для теста, я думал разница будет в 2 раза а не в 3секунды, код функций внизу?

    @res2001
    Developer, ex-admin
    1.Задайте size в миллион (или больше) и сравнивайте, ваши 11 сейчас - это вообще ни о чем для современных процов.
    2.В коде на С++ не нужно выделять память для Buf так как это делаете вы - выделяйте одним куском сразу. Можно использовать std::vector.
    3.В determinant() в последнем цикле избавьтесь от проверки условия внутри цикла. Возможно надо разбить этот цикл на 2.
    Это то что сходу заметил.

    На счет оптимизаций и прочего - можно не особо заморачиваться код на плюсах будет гораздо в любом случае на больших объемах данных. Просто на текущих объемах вы не можете даже адекватно замерить время, т.к. задача выполняется практически мгновенно не зависимо от ЯП, в этом случае затраты времени, например, на запуск программы начинают играть существенную роль.
    Ответ написан
  • Как и где лучше изучать C?

    @res2001
    Developer, ex-admin
    Язык не сложный. Берите любой предложенный учебник (K&R - не учебник), ставьте компилятор и IDE и делайте примеры из учебника.
    Ответ написан
  • Не могу понять, почему не работает туннель?

    @res2001
    Developer, ex-admin
    MaxxDamage,
    Конфиг сервера:
    push "route 192.168.1.0 255.255.255.0 10.8.0.2"
    Обычно в route не задают третий параметр - он подставляется автоматически - адрес ВПН сервера.
    push "route ..." прописывает на клиенте маршрут до сети за сервером. У вас же эта команда прописывает на клиенте маршрут за клиентом. Этот маршрут и так присутствует на клиенте.
    Нужно ее привести в такой вариант:
    push "route 192.168.0.0 255.255.255.0"
    После подключения клиента в его таблице маршрутизации должен появиться соответствующий маршрут.

    Директива
    route 192.168.1.0 255.255.255.0 10.8.0.1
    в таком виде не правильна.
    route добавляет маршрут на своей стороне (т.е. на стороне сервера в данном случае). Нужно в третьем параметре указать адрес клиента (10.8.0.1 - наверняка адрес сервера).
    Но лучше перенести эту директиву в клиентский конфиг на сервере (это тот который лежит в пути указанном в директиве client-config-dir) в следующем виде:
    iroute 192.168.1.0 255.255.255.0
    Тогда при подключении клиента маршрут к его сети добавится на сервере, адрес клиента автоматически добавится к директиве, его указывать явно не нужно.

    Конфиг клиента:
    Директива
    route 192.168.0.0 255.255.255.0
    тут не нужна. Ее функции выполняет директива push "route ..." в конфиге сервера.
    Вообще обычно клиентский конфиг делают максимально простым. Вся маршуртизация прекрасно конфигурируется на стороне сервера.

    Вообще можно конфигурацию ВПН полностью отладить на виртуалках в своей виртуальной сети и перенести ее на реальное железо, заменив только слушающий адрес сервера в директиве local.
    Ответ написан