• Игруха из Microsoft Store - обычное приложение или интернет-сервис?

    C:\Program Files\WindowsApps, не? Из диспетчера задач почему бы не посмотреть расположение exe-шника?
    Ответ написан
  • Как отменить git rebase?

    git rebase --abort, если процесс ребейза ещё не прерван. А дальше - доки.
    Ответ написан
    2 комментария
  • C++ Прояснить что происходит. Как это работает?

    Nipheris
    @Nipheris Куратор тега C++
    У сета вызывается конструктор, принимающий два итератора - откуда и докуда нужно идти. Все элементы от начального до конечного итератора перебираются (а это всё char-ы) и каждый из них помещается во множество. Т.к. множество не добавляет дубликатов элементов, все дубликаты пропускаются. Итого, размер множества и является количеством уникальных букв.
    Ответ написан
    Комментировать
  • Передача по ссылке в C99?

    Ссылки в Си?? Это что-то новое. Я пропустил нововведения?
    Почему работает только 1 вариант?

    Потому что первый вариант компилит код как C++.
    Ответ написан
    1 комментарий
  • Как сделать уравнения?

    Nipheris
    @Nipheris Куратор тега C++
    Вместо
    pow(cos(pow(x, 3), 2))
    надо
    pow(cos(pow(x, 3)), 2)

    Разбивайте выражение на части или форматируйте на нескольких строках, чтобы поменьше упарывать на скобках.
    И кстати да, вам очень подробно расписали ошибки. Прям вот без заморочек, даже в русском переводе нормально читается.
    Ответ написан
    Комментировать
  • Не правильный куб в LWJGL?

    Беглым взглядом могу сказать что проблема у вас в скорее всего в том самом "переходе" от 2D к 3D. Точнее, в его отсутствии.

    Недостаточно просто взять и вписать трёхмерные координаты. Вам нужно доучить матчать по видовым и проекционным матрицам и задействовать glMatrixMode с последующей загрузкой нужной матрицы. Сейчас вы, грубо говоря, не рисуете трёхмерный куб - вы рисуете его как двухмерную фигуру, не задействуя третью координату так как вы хотели бы.

    И да, ещё важный момент. Не имел дела с указанной вами библиотекой, но похоже что вы сейчас пользуетесь вызовами OpenGL старых версий, и работаете в "старой" модели программирования. В целях обучения это может даже и лучше, но это не готовит вас к современному OpenGL из реального мира. В современном подходе для матричных преобразований используются шейдеры (и это лишь ничтожная часть того что можно сейчас делать с помощью шейдеров различных типов), а координаты примитивов задаются не последовательными вызовами glVertex (что крайне неэффективно с учётом производительности современных GPU), а построением буферов данных заранее и отрисовкой всего набора вершин целиком (см. glDrawElements и прочие функции).

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

    Nipheris
    @Nipheris Куратор тега C++
    https://www.wireshark.org/lists/wireshark-dev/2008...

    ....
    For example TCP defines port 80 only for the use of HTTP traffic. But, this convention doesn't prevent anyone from using TCP port 80 for some different protocol, or on the other hand using HTTP on a port number different to 80.

    To solve this problem, Wireshark introduced the so called heuristic dissector mechanism to try to deal with these problems.

    По ссылке в мейлинг-листе вайршарка дают подробный ответ на этот непростой вопрос.
    Ответ написан
    1 комментарий
  • Простым языком о замыканиях?

    1. У вас есть алгоритм (функция) F, зависящий от некоторого числа переменных (значений), включая N параметров функции и некоторого количества "свободных" переменных (т.е. определённых вне тела функции, но доступных в теле функции на момент его выполнения).
    2. У вас есть другая функция G, требующая для своей работы некоторую функцию, зависящую от M параметров (причём N > M).
    3. У вас есть желание использовать функцию F как параметр функции G, однако для этого необходимо заранее задать значения всех аргументов, которые G не будет передавать в F (т.е. тех, которые не входят во множество параметров M), а также значения всех свободных переменных (иначе код функции F невозможно будет выполнить).
    4. Для реализации этого намерения вы примените замыкание (иначе просто невозможно).

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

    Nipheris
    @Nipheris Куратор тега C++
    Ну если вам прямо по пробелу, и если действительно на C++, то вот:
    #include <iostream>
    #include <sstream>
    #include <vector>
    
    int main()
    {
    	std::istringstream input{ "foo bar baz qux" };
    	std::vector<std::string> result;
    
    	// extract substrings one-by-one
    	while (!input.eof()) {
    		std::string substring;
    		input >> substring;
    		result.push_back(substring);
    	}
    
    	// print all the extracted substrings
    	for (const std::string& substring : result) {
    		std::cout << substring << std::endl;
    	}
    }


    А вообще тут столько вариантов, что и не сосчитать (есть даже более короткий вариант с использованием std::copy).
    Ответ написан
    2 комментария
  • Какую тему выбрать для курсового по ОС?

    А почему вы считаете что эти темы не годятся на курсач? Курсовая - это хорошо сделанная лаба. Не знаю как в вашем вузе, но обычно отчёты стуендтов по лабам не настолько хороши, чтобы их прям некуда было улучшать.

    Качественная реализация, подробное документирование алгоритмов, подробное тестирование и сбор статистики по производительности - вот что отличает лабу от курсача.

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

    У вас кстати требования не то чтобы невыполнимые, но несколько сковывающие в выборе, я про C# + WinAPI. Я бы предложил вам взять FUSE и сделать на нём какую-нибудь ФС (например, читалку из облачного хранилища или простейшую реализацию UnionFS) но тут бы лучше C/C++ и линух.

    Ну или можете пописать алгоритмы организации ThreadPool-а.
    Ответ написан
    2 комментария
  • Как можно избавиться от подобного мусора в коде?

    Nipheris
    @Nipheris Куратор тега C#
    Создать отдельный класс для этого всего?

    Неплохая мысль. А ещё можно использовать WPF.
    Ответ написан
    Комментировать
  • Как воспроизвести wav файл на чистом c++ без сторонних библиотек?

    Nipheris
    @Nipheris Куратор тега C++
    1. Курите формат wav-файлов, он не особо сложный, написать код чтения не должно составить проблем.
    2. Разбираетесь с аудио-API различных ОС. Убеждаетесь, что для разных ОС реализация будет разная.
    3. Обеспечиваете необходимые преобразования прочтенных из wav данных о звуковой волне в данные, готовые к передаче в аудио-API.
    4. Результат.
    Ответ написан
    1 комментарий
  • Почему не вызвать конструктор с производным классом в аргументе?

    Nipheris
    @Nipheris Куратор тега C++
    Когда можно оперировать указателями на базовые классы, оперируя объектами производных?

    А вам не кажется что у вас ситуация с точностью до наоборот? Вы пытаетесь объект базового класса QObject передать под видом объекта производного класса QAbstractItemModel.
    Ответ написан
  • ReactiveUI, кто использовал для больших проектов?

    Nipheris
    @Nipheris Куратор тега C#
    Насколько оно вообще работает в сложных интерфейсах?

    Нормально работает, нужно только понимать что ты делаешь и не плодить бездумно сущности - можно легко переусложнить код или сожрать кучу вычислительных ресурсов. Если подходить с умом - всё нормально.
    Насколько оно кросс-платформенно?

    Я использовал только для WPF, цитата с сайта:
    ReactiveUI has first class support for Xamarin Forms, Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Tizen, Windows Forms, Windows Presentation Foundation (WPF), & Universal Windows Platform (UWP).

    Стоит ли оно вообще того?

    Этот вопрос сводится к вопросу "Стоит ли использовать Rx в моём проекте?", т.к. ReactiveUI это мост между вышеперечисленными UI-технологиями и ReactiveX. Вот как только вам надоест вручную отслеживать связи между различными значениями в вашем пользовательском интерфейсе, тогда вы и придёте к ReactiveX с мольбами о помощи.
    Ответ написан
    1 комментарий
  • Как проще всего поднять SQL базу с готовым API?

    OData?
    Ответ написан
    Комментировать
  • Решается ли вопрос поддержки актуальности данных в вебе?

    В вебе традиционно забивается на синхронизацию данных - так я думаю.

    Здравствуйте:

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

    А если вам гугл-докс, так это уже куда более сложные материи, см. Operational transformation и CRDT.
    Ответ написан
    Комментировать
  • Можно ли без сборки установить фреймворк для C++?

    Nipheris
    @Nipheris Куратор тега C++
    Не совсем понимаю почему SmInc так сильно завязался на сценарий заливки в VCS, если под заранее собранной может пониматься и выложенная например в releases на гитхабе.

    Есть ряд объективных проблем:
    • большое количество архитектур, под которые нужно выполнять сборку;
    • большое количество конфигураций сборки - в мире C++ приятно делать в библиотеках возможность compile-time конфигурирования - когда отдельные фичи могут менять своё поведение или отключаться в момент КОМПИЛЯЦИИ, а не работы библиотеки. Сюда же разлчиная степень оптимизации, debug/release-билды и так далее;
    • большое количество тулчейнов и операционных сред - Клэнг на FreeBSD, gcc на Линуксе, VC++ на Винде, Клэнг на Винде и так далее..

    Все вышеперечисленные факторы приводят к комбинаторному взрыву вариантов сборки. Поэтому некоторые проекты по получению некоего "пакетного менеджера" или "каталога библиотек" идут по пути дерева портов, например vcpkg. Тут всё просто - вы знаете какой конкретно сейчас вам нужен компилятор, какие ОС и т.д. - скрипт автоматизации сборки помогает вам собрать библиотеку. Это довольно продуктивный компромисс.
    Кроме того, не следует также отбрасывать вариант сборки заранее "для себя", которая вполне может прижиться в локальной среде для среднего и круного проекта. См. например репозитории ПМ Conan и реализацию от JFrog.

    Вообще в плюсах из-за зоопарка платформ и инструментов острейшим образом стоит проблема интеграции библиотек. В стеке C++ (если вообще можно такой обозначить) общим знаменателем является, пожалуй, только сам C++. Всё остальное зависит как от авторов библиотеки - с одной стороны, так и от вашей среды где вы собираетесь библиотеку запускать - с другой стороны. Так что привыкайте.
    Ответ написан
    Комментировать
  • Где хранить интерфейсы?

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

    Тогда почему бы не описать REST API с помощью OpenAPI-спеки и на её основе не сгенерить код?
    Ответ написан
  • Как правильно версионировать данные в бд?

    Желательно хранить различные версии записей.

    Есть ли какие-нибудь best practice по этому поводу?

    Есть, это темпоральные возможности стандарта SQL:2011.
    Поддержка в DB2.
    Поддержка в SQL Server 2016.

    У вас какая СУБД кстати?
    Ответ написан
    3 комментария