• Подходит ли 27"(2560x1440) монитор для macbook на процессорах m1/m2?

    @dronmaxman
    VoIP Administrator
    Думаю, что все уже видели эту таблицу.
    64dd3671e7008778903751.jpeg
    Ответ написан
    1 комментарий
  • Подходит ли 27"(2560x1440) монитор для macbook на процессорах m1/m2?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    картинка мака на любом мониторе будет отличаться от привычной виндовой. Другой рендеринг шрифтов.
    Единичный внешний монитор должен спокойно тянуть.
    Если 1920 на 1080 онли, то кривой кабель hdmi или преобразователь usb-c в hdmi.
    Мелко / крупно решается настройками масштабирования. В отличии от винды придется настраивать каждую прогу под себя.
    При пересаживание под мак, монитор наименьшее отличие. Клава больше будет раздражать.
    Меня год бесило отсутвие Home,End на универсальных клавах. Боль снялась только оригинальном. Fn+стрелки
    Ответ написан
    1 комментарий
  • Какие есть аналоги ssh клиентов MacOS?

    NowebNolife
    @NowebNolife
    Slowpoke App Developer
    1. Ставите iterm2
    2. В настройках: создаёте необходимое кол-во профилей => указываете данные для подключения по ssh/
    3. Подключетесь к необходимому вам серверу в один клик
    Ответ написан
    Комментировать
  • Какую среду разработки выбрать на Mac для С++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    2 комментария
  • Какая книга по С++ мне лучше подойдёт?

    @res2001
    Developer, ex-admin
    Вам нужна книга, которую прочитаешь и сразу в "сеньоры" можно идти?
    Боюсь такой нет. Только практика и еще раз практика.

    Из продвинутых книг могу посоветовать:
    1. Эффективный и современный С++. 42 рекомендации по использованию C11 и C14
    в ней очень толково описаны нововведения в стандартах уже не совсем свежих, но эти нововведения чуть ли не самое главное изменение в языке до сих пор.
    2. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ
    3. Оптимизация программ на C++. Проверенные методы повышения производительности.
    Ответ написан
    2 комментария
  • С чего продолжить изучение C++?

    @Mr-Governor
    Губернирую
    Если цель не стоит работать именно с С++, то в плане экономической перспективы рекомендую переходить на актуальные языки, т.к сейчас в основном востребован веб (C#, Node.js, Java).
    Потом можно и фронт (Верста, React, Vue, Angular)

    А если и оставаться с С++, то:
    - Делать GUI (например Qt5)
    - Работа с сетью (сокеты, протоколы)
    - БД (PostgreSQL, MongoDB, ElasticSearch)
    - GameDev (UnrealEngine, OpenGL, DirectX, Vulcan и т.п)
    Ответ написан
  • В чем преимущества процессов над потоками?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вопрос уровня "в чём преимущества грибов над ягодами?" Это просто разные вещи со своими особенностями и нюансами, и нет смысла говорить о преимуществе одних или других без конкретного описания условий и требований.

    На самом деле процесс и поток в реализации конкретной OS могут быть близки до такой степени, что потоки могут быть видны даже в списке процессов. Поэтому вполне можно сказать, что это практически одно и то же. Но не совсем.

    Для создания нового процесса в UNIX-системах делаетя вызов fork, который создаёт полную копию текущего процесса, включая его код и данные (в других системах может не быть fork, но есть свои способы создания процесса). Для создания же нового потока также делается новый "процесс", но вместо копии данных и кода в нём передаётся ссылка на те же самые данные и код (очень по-питоновски - ссылка вместо deepcopy данных). Поэтому потоки могут работать с одними и теми же данными, а самостоятельные процессы нет. Но иногда это как раз и нужно. Например, потоки должны как-то отслеживать конфликты с доступом к одним и тем же данным, а для процессов такой проблемы не стоит.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если компиллятор глотает оба варианта и тесты проходят - то я-бы взял просто первый вариант.

    Там меньше букв.
    Ответ написан
    3 комментария
  • Как правильно передавать функцию в качестве параметра?

    @res2001
    Developer, ex-admin
    Оба варианта правильные. Имя функции это и есть указатель на функцию, так что sizeof(foo) == sizeof(&foo). По сути тут компилятор просто игнорирует операцию взятия адреса от функции.
    Вся функция никогда не передается - только указатель.

    Я бы предпочел второй вариант, т.к. тут явно указано, что надо передавать указатель на функцию.
    На самом деле тип указателя на функцию я бы оформил через typedef, и в параметре указывал бы уже имя типа:
    typedef void (*foo_t)();
    void fooPrint(foo_t foo) {
        foo();
    }
    Ответ написан
    4 комментария
  • В чем преимущества процессов над потоками?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Главное приемущество: независимость процессов. Потоки делят между собой одну память и ресурсы системы (всякие хандлеры в винде, например).

    Если один из процессов завершится или, что чаще происходит, упадет - остальные не будут затронуты. Плюс эта независимость позволяет делать песочницы для безопасности. Так, все современные браузеры запускают js и вообще каждую вкладку в отдельном процессе. Даже если куллхацкер полностью взломает браузер через специальный сайт, он окажется в процессе, который особо прав никаких не имеет, библиотеки особо интересные туда не загружены, а все общение с внешним миром - через жестко прописанные протоколы ipc (inter-process communication). Так что злодею придется взламывать еще и их.

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

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Не понимаю, откуда эта ошибка появляется


    Здесь написано, что create_huge_matrix принимает два аргумента, и второй имеет такой же тип, как тип элементов внутреннего вектора:
    template <typename T>
    void create_huge_matrix(std::vector<std::vector<T>>& matrix, T lowerLimit);


    а здесь первый аргумент типа std::vector<std::vector<double>>, а второй -- int:
    create_huge_matrix(matrix_s, 5);

    а здесь вообще только один аргумент:
    create_huge_matrix(matrix_p);
    Ответ написан
    Комментировать
  • Что означает *&?

    Nipheris
    @Nipheris Куратор тега C++
    делает тоже самое что и передача простого int по ссылке в функцию?

    Скорее всего вы не очень удачно выразились, поэтому попробую догадаться: да, передача ссылки на int, ссылки на float, ссылки на int* и ссылки на float** ничем принципиально не отличается. В обоих случаях вы получаете идентификатор, в кторый можно присваивать значение того типа, на которое у вас ссылка (т.е. int, float, указатель на int, указатель на указатель на float), и это значение попадёт в ту область памяти, которая была "завёрнута" в ссылку при вызове функции. Это может быть как обычная переменная, так и какой-нибудь разыменованный указатель.
    Ответ написан
    Комментировать
  • Как замерить производительность i/o?

    @serhiops
    Python/JavaScript/C++
    #include <chrono>
    #include <iostream>
    
    class Timer
    {
    public:
        Timer()
        {
            start = std::chrono::high_resolution_clock::now();
        }
        ~Timer(){
            end = std::chrono::high_resolution_clock::now();
            std::chrono::duration<float> duration = end - start;
            std::cout << "Time : "<<duration.count()<<endl;
        }
    private:
        std::chrono::time_point<std::chrono::high_resolution_clock> start, end;
    };
    int main(){
        Timer t;
        //весь остальной код
    }

    В конце выполнения программы в консоль выведется время, потраченное на его выполнение
    Ответ написан
    3 комментария
  • Массив указателей на функции. Почему программа не даёт результат?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Мне нужно выполнить функцию, из массива указателей на функцию, номер которой я укажу в консоли. Почему не выполняется?

    Потому что mass[0]; -- это не вызов функции, а просто указатель. Вызов функции выглядит так: mass[0]();
    Ответ написан
    Комментировать
  • Как создать приложение в Xcode?

    Waka_Waka
    @Waka_Waka
    IOS Developer
    Product => Archive => Export
    Ответ написан
    Комментировать
  • Можно ли использовать SFML в проекте QT?

    Вот тут вы отключаете Qt
    CONFIG -= qt
    Если вам нужны библиотеки Qt, то эту строчку стоит убрать и добавить что-то вида (зависит от того, какие модули вам нужны)
    QT += core gui widgets network

    Далее, SFML подключается как обычная статическая или динамическая библиотека.
    В INCLUDEPATH вы указываете путь к файлам *.h библиотеки. В LIBS вы указываете с какими библиотеками будет происходить линковка. Не забывайте, что если вы не указываете в LIBS пути к линковке, то они должны быть указаны в QMAKE_LIBDIR.
    Ответ написан
    Комментировать
  • Как написать алгоритм по определению шансов абитуриента поступить на специальность?

    @dmshar
    Так как вы написали - понять вообще ничего нельзя. Если хотите критики алгоритма - до дайте алгоритм, а не какой-то отрывочный набор слов.

    По первому вопросу. Во-первых, причем тут обход графа? Каким он боком к этой задаче? Во-вторых, причем тут рекурсия? В-третьих - так информация о "первом абитуриенте в списке" или "топ-1" (т.е. как минимум втором?). Что значит "выбранная специальность" - откуда она взялась? "выходим из рекурсии" - и что при этом? Каков результат "захода в рекурсию"? "начинаем алгоритм с начала" - это как? Почему при "копии" надо выходить из рекурсии? В общем - набор каких-то несвязанных обрывков фраз, алгоритмом который назвать невозможно. А значит, и критиковать нечего.
    По второму вопросу. Как может быть корректна формула, если ее коэффициенты (да и сама структура) взяты из головы и ничем не подкреплены? Что такое "тип документа с отрицательным весовым коэффициентом"?? Справка о судимости, что-ли? Но даже если вы "придумали" формулу, какое она имеет отношение к реальным шансам человека?

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

    P.S. Кстати, итерация и рекурсия - это РАЗНЫЕ формы реализации алгоритмов. А то у вас в заглавии одно, в вопросе - другое.
    Ответ написан