Задать вопрос
  • Opengl 4.* или vulkan?

    TrueBers
    @TrueBers
    Гуглю за еду
    Это вообще разные вещи.
    Нужно отличать изучение API, от изучения технологии. Если вы хотите выучить просто API, учите что угодно, ибо разницу заметите только, когда поймёте основы, базу.

    OpenGL проектировался когда были другие архитектуры железа. Мультипроцессорность была только в теории, и считалась уделом суперкомпьютеров и ненужной для пользовательских ПК.
    Можно привести аналогию: OpenGL == C++, Vulkan == асинхронный Assembler + hardware threads. Например, в C++ сейчас довольно много архитектурных косяков, которые пытаются решить новыми стандартами, объявляют какие вещи устаревшими, потому что они концептуально неверны и не подходят под современные реалии.
    Но, при этом, вы можете всё то же самое написать на ассемблере, но нужно намного лучше понимать, как работает процессор и ОС, самому писать примитивы синхронизации, и т. п.

    Для этих же целей и создавался вулкан. Для программирования на нём, нужно знать все тонкости железки, читать кучи пейперов от той же НВидии, исследовать, придумывать новые фичи для современных архитектур с нуля, которые изначально были придуманы в OpenGL, но для старого железа.
    Т. е. на Вулкане нужно делать больше руками, больше оптимизировать. Вместо одного вызова функции OpenGL, на вулкане придётся несколько сотен строк написать. При этом, если вы не понимаете какой-то одной тонкости, вы сделаете менее эффективнее то, что изначально было хорошо реализовано в OpenGL. К тому же, OpenGL умеет выбрасывать ошибки, в случае, когда вы где-то накосячили. Вулкан же их не выбрасывает, он полагается на то, что вы уже знаете как этим пользоваться. Точно так же, как ассемблер просто меняет состояние регистров, у него нет понятия ошибки. Как интерпретировать эти регистры, зависит от того, насколько хорошо разработчик читал мануал к процессору.

    В итоге, я бы ответил так:

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

    Если же вы пишете простые прикладные вещи, которым нужно показать какую-то графику, то учите OpenGL. Здесь вы учите только API, соглашаясь с уже готовым, слегка устаревшим, архитектурным дизайном.

    Если хотите писать игры не мирового класса, то учите готовые движки, Unity или Unreal. Они уже поддерживают за вас Vulkan, продумали за вас API и архитектуру.
    Ответ написан
    2 комментария
  • Как понять принцип работы кода из книги "Философия Джавы"?

    TrueBers
    @TrueBers
    Гуглю за еду
    Вы руками что ли исходники из книги набиваете?
    Вот же официальные исходники от автора. Скачайте и разбирайтесь себе спокойно.
    Ответ написан
    4 комментария
  • На какой базе собирать компьютер?

    TrueBers
    @TrueBers
    Гуглю за еду
    Во-первых, вам точно не нужны 128 гигабайт памяти, это абсолютно бессмысленная трата денег. 32 хватит с головой, поверьте. Виртуалки умеют memory ballooning, с ним вы можете запустить на 128 гигабайтах памяти около тысячи инстансов однотипных виртуалок. Зачем вам это может понадобиться... ума не приложу.

    Во-вторых, GTX 1070 в SLI точно так же не имеет смысла после того, как вышла 1080Ti. Деньги те же, производительность та же, меньше жарит, меньше шума, меньше блок питания нужен, нет задержек на шине при синхронизации, меньше точек отказа. В случае чего, можно докупить потом вторую 1080Ti, но при этом придётся поменять процессор, ибо у этого не хватит линий PCIe.

    Асус Стрикс — весьма сомнительная переплата за понты и цветные светодиоики.

    Проц, если вам действительно для работы, лучше взять с ибея Xeon 2683 v3. Те же деньги, но 14 ядер и 40 PCIe линий против 28 у 6800k. Можно подшаманить биос, разогнать до 3.1ГГц с разлоченным турбобустом. В итоге, этот проц, при цене в 20к, свободно делает десятиядерник i7-6950X за 100 тыщ рублей на мультиядерных задачах.
    Ответ написан
    9 комментариев
  • Как поймать ошибку в visual studio?

    TrueBers
    @TrueBers
    Гуглю за еду
    Вот к примеру
    char ch = str[5];
    длина str всего 3. Поэтому возникает ошибка, но vs не вылетает

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

    А ещё лучше, для строк используйте специально созданный для этого контейнер std::string, для статических массивов — std::array, для динамических — std::vector. И ничего не будет вылетать.
    Ответ написан
    2 комментария
  • Куда переходить с Ubuntu 14.04?

    TrueBers
    @TrueBers
    Гуглю за еду
    Раньше перепробовал все популярные дистрибутивы с дистровотч.
    Пока не дошёл по списку до Арча. Пользуюсь уже лет 8, никаких проблем не было за это время. Всегда свежайший актуальный софт, все существующие пакеты есть в пользовательских репо. Заводится на любом железе: стоит на 3-х ПК, одном ноуте, 2 серверах и Малине. Пересадил брата с мерзкого OpenSUSE, брат жив. Если делать всё адекватно и понимать, что делаешь, читать официальные новости/вики, в которых пишут, если есть какая-то особенность обновлений и т. п., то проблем не будет.

    Конечно, знаний нужно побольше, чем мышкой возить в бубунте, но оно того стоит. Например, rolling release — штука довольно непонятная для большинства. Здесь нужны понимания, что такое версии SO-библиотек, как от них зависят исполнимые файлы, как их безболезненно обновлять и т.д. Ну, это если в бою использовать.
    А если на домашнем компе, который можно перегрузить свободно, то просто, нужно усвоить правило: не устанавливать новые пакеты без обновления старых, с каждым апдейтом желательно перегружаться, и проблем не будет.
    Ответ написан
  • Игровой ПК до 35000 руб? Какие комплектующие лучше подобрать?

    TrueBers
    @TrueBers
    Гуглю за еду
    Для современных игр в 4k вам нужна минимум GTX1080. Карты, уровнем ниже, тупо не потянут такое разрешение.
    Т. е. в ваш бюджет входит только видеокарта...
    Ответ написан
    2 комментария
  • Как сделать наследование класса со структурой?

    TrueBers
    @TrueBers
    Гуглю за еду
    У вас в корне неверное понимание наследования и каша в голове.

    Наследование — это выражение отношения является. Т. е., по-вашему, книга является множеством авторов. Абсурд ведь, разве нет?
    Книга — это книга, она может являться бумагой, или абстрактным объектом, или содержимым библиотеки, но никак не авторами. Она написана авторами, авторы — это её аттрибут. Поэтому здесь лучше использовать агрегирование, а не наследование. Ибо книга содержит, в какой-то мере, творчество множества авторов.

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

    TrueBers
    @TrueBers
    Гуглю за еду
    Если у вас С++, а не чистый Си, то конечно используют std::vector. А вместо char[] используют std::string.
    Если Си, то придётся выделять динамически через malloc.
    Ответ написан
    9 комментариев
  • Получения приглашения на IT event для облегчения получения визы. Есть ли опыт?

    TrueBers
    @TrueBers
    Гуглю за еду
    Абсолютно ничего не зависит. Там всё рандомно. Был свидетелем того, как в семейной паре одному дали визу, а другого завернули. Хотя они какие-то там приглашения показывали.

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

    TrueBers
    @TrueBers
    Гуглю за еду
    Mercury13 и fshp ответили верно.
    С одним лишь исключением: std::chrono::high_resolution_clock — не монотонные часы. Т. е. они могут дрифтить даже относительно RTC, а этот дрифт будет корректироваться и влиять на результаты измерений. Например, когда вы будете делать измерения, и между стартом и стопом к вам прилетит синхронизация NTP.

    Использовать нужно монотонные часы, для этого предназначены std::chrono::steady_clock. Они независимы от изменений и специально предназначены для измерений интервалов.
    Ответ написан
    6 комментариев
  • Что определяет качество 3D картинки в играх?

    TrueBers
    @TrueBers
    Гуглю за еду
    Чем обусловлена такая разница?
    Баблом.
    Анрил пилят сотни инженеров за бабки. А огры — костылями студенты за чсвешчку. Вот и вся разница.

    OpenGL может выдать абсолютно то же самое, что и directx или вулкан. Потому что это все — API. А это в, свою очередь — просто соглашение, как нужно писать. У стандартов графических API нет понятия качества картинки. Качество зависит только от профессионализма разработчика, как инженера-математика, его фантазии отчасти, способностей нестандартно мыслить.

    Разработчики анрила многие имеют ученые звания в этой области, проводят исследования, выступают на конференциях с докладами, работали в нвидии, интеле и прочих корпорациях, которые изначально делают видеочипы, поэтому их экспертиза позволяет им творить такое.
    Открытые же движки никто не спонсирует, поэтому кандидаты наук туда не идут.
    Ответ написан
    Комментировать
  • Почему нет C++17?

    TrueBers
    @TrueBers
    Гуглю за еду
    Потому что скриншот маркетинговый. С++17 ещё не принят окончательно. Т. е. его ещё не существует как такового в виде релиза, хоть и изменений вноситься уже не будет. А даже когда примут, пройдёт миллион лет, как студия начнёт его поддерживать. Ставьте latest и не парьтесь.
    Ответ написан
    3 комментария
  • Как слушать Stomp через WebSocket на C++?

    TrueBers
    @TrueBers
    Гуглю за еду
    Попробуйте погуглить, вам понравится!

    У апачевского рантайма, как минимум, есть библиотеки, как плюсовая, так и чисто сишная.
    Ответ написан
  • Как работать с выделенным текстом в X.org?

    TrueBers
    @TrueBers
    Гуглю за еду
    Ответ написан
    Комментировать
  • Статичный IP дома под веб сервер. Как настроить? Нужен ли проброс портов?

    TrueBers
    @TrueBers
    Гуглю за еду
    В случае с IPv4, на компе вы получите только адрес внутренней сети. Внешний на комп можно получить, если провайдер выдаёт IPv6-префиксы. Префикс можно анонсировать и раздавать любым устройствам.
    На роутере у вас NAT, скорее всего. На нём нужно пробросить нужные порты на внутренний адрес сервера.
    Ответ написан
    7 комментариев
  • Какие инструменты разработки и отладки Rust вы используете?

    TrueBers
    @TrueBers
    Гуглю за еду
    Не бойтесь использовать гугл. Он не кусается.
    Ответ написан
    Комментировать
  • Как максимально быстро отслеживать новые проэкты на upwork?

    TrueBers
    @TrueBers
    Гуглю за еду
    Самописный аддон для хрома с нотификациями + оповещения в телеграмм.
    Ответ написан
    Комментировать