• Могу ли я делать и продавать ремастеры знаменитых игр и фильмов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Конечно можете. Заключаете договор с правообладателем, приобретаете право на создание производного произведения и вперёд, творите.
    Ответ написан
    Комментировать
  • Нужно ли хранить сервер и клиент в разных репозиториях?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Как удобнее. Я разделять стараюсь.
    Ответ написан
    2 комментария
  • Что нужно для авторизации через Google?

    "Sign in with google" реализуется при помощи OIDC:
    В документации есть ссылки и на стандарт, как это работает, и что примерно нужно сделать у себя в приложении, чтобы это заработало.
    https://developers.google.com/identity/openid-conn...

    Кстати, если ты такую кнопку добавляешь у себя в приложение на яблоке, то ты также будешь обязан сделать "Sign in with apple"
    https://developer.apple.com/sign-in-with-apple/get...

    Но на яблоке вроде для игр есть какой-то свой API, так что ты вполне можешь на Android использовать Google Play Games, а на яблоке - яблочное.
    Ответ написан
    3 комментария
  • Какие таблицы работают эффективнее?

    @rPman
    На каждую таблицу будет заводиться индекс PK, если количество записей будет одинаковое (в смысле на каждое значение PK будет по одной записи в каждой таблице) - будет хуже, так как размер индекса у каждой таблице растет с ростом количества записей в ней, и много таблиц - много по факту отдинаковых индексов (но для разных таблиц он хранится), поэтому разделять по мелким узким таблицам имеет смысл только для разряженных данных, когда записи появляются только при наличии данных, причем чем больше таких отдельных таблиц тем больше должна быть 'разряженность' данных, чтобы это имело смысл.

    Так как объем ПЗУ значительно выше (при той же стоимости) чем ОЗУ (а требования к ней таковы что индексы желательны влезать в нее, хотя бы для оперативных запросов) то лучше забить на оптимизацию по занимаемому месту данными, чем увеличить кратно требования для оперативного хранения индексов.

    Поэтому - не дроби на большое количество таблиц, пусть будет меньше таблиц с большим количеством полей, но без фанатизма, если видишь что появляется куча условий not null когда как для нескольких таблиц это отрабатывается inner join, то тогда да (not exists лучше чем is null).

    p.s. в догонку про сериализацию данных в одно поле, когда одно поле БД хранит сразу несколько значений - это оправдано и даже рекомендуется, если эти данные не имеют смысл по отдельности, красивый пример ip-адрес и порт как настройки подключения - суть одни данные, и нет никакого смысла разделять их на разные поля базы, за исключением случаев когда возможно потребуется активная аналитика по отдельному полю (например по ip адресу) - 'активная' тут это значит нужно строить индексы и делать частые запросы а не разовый full scan бакэндом.

    Дробление данных на большое количество полей - повышает нагрузку на бакэнд (спорное утверждение, бывает наоборот, но зачастую да), правда для тех разработчиков, где такая оптимизация имеет смысл, такими вопросами не задаются, нужны действительно большие нагрузки.
    Ответ написан
    1 комментарий
  • На чем легче написать электронный каталог для библиотеки?

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

    А по сложности реализации - все мейнстримные языки с GC будут очень похожими.
    Ответ написан
    Комментировать
  • Как запускать и контролировать статус работы сторонних exe файлов в c++?

    @FaTTeST
    Для запуска внешней программы из кода на C++ можно использовать функцию system(). Эта функция позволяет выполнить команду в командной строке. Например, чтобы запустить программу installer.exe, можно использовать следующий код:

    #include <stdlib.h>
    
    int main()
    {
        system("installer.exe");
        return 0;
    }


    Функция system() блокирует выполнение программы, пока запущенный процесс не завершится. Если вам нужно запустить процесс асинхронно, то можно использовать функцию CreateProcess() из библиотеки Windows API.

    Чтобы определить, что внешняя программа завершила работу, можно использовать функцию WaitForSingleObject(). Эта функция блокирует выполнение программы до тех пор, пока указанный объект не перейдет в сигнальное состояние. В случае с внешней программой, этим объектом будет процесс, который она запустила. Например, чтобы дождаться завершения программы installer.exe, можно использовать следующий код:

    #include <windows.h>
    
    int main()
    {
        STARTUPINFO si;
        PROCESS_INFORMATION pi;
        ZeroMemory(&si, sizeof(si));
        si.cb = sizeof(si);
        ZeroMemory(&pi, sizeof(pi));
    
        // Запускаем процесс
        CreateProcess("installer.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    
        // Ожидаем завершения процесса
        WaitForSingleObject(pi.hProcess, INFINITE);
    
        // Закрываем дескрипторы процесса и потока
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
    
        return 0;
    }


    В этом коде мы используем функции CreateProcess() и WaitForSingleObject() для запуска процесса и ожидания его завершения. Функция CreateProcess() создает новый процесс и возвращает дескрипторы процесса и потока. Функция WaitForSingleObject() ожидает завершения процесса, используя дескриптор процесса, который мы передали ей в качестве параметра. После завершения процесса мы закрываем его дескриптор и дескриптор потока с помощью функции CloseHandle().
    Ответ написан
    Комментировать
  • Голосовой ассистент на c#. С чего начать? Что надо изучить? Как реализовать(это мой первый проект)?

    Griboks
    @Griboks Куратор тега C#
    Если это ваш первый проект, то никак. Но если очень хочется, то:
    1) найдите готовый голосовой ассистент
    2) соpдайте свой пользовательский интерфейс вокруг готового ассистента
    Ответ написан
    5 комментариев
  • Как закрыть доступ к старым commit для разработчиков на ветке master?

    Как не удалив историю коммитов в master предоставлять доступ разработчикам к актуальной версии приложения без доступа к коммитам содержащим конф. данные в коде?

    Раз уже данные скомпрометированы, то их нужно изменить (старые отозвать, новые выпустить).

    А историю можно переписать, чтобы убрать ненужное.
    Ответ написан
    Комментировать
  • Импликация (следование) в C++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Нету в C++ отдельных операторов для этих логических функций. Потому что их все можно составить из И, ИЛИ и НЕ.

    Так, импликация - это !a || b. Эквивалентность - можно просто сравнить 2 переменные: a == b.
    Ответ написан
    1 комментарий
  • Почему цикл if внутри цикла for который находится в цикле while не работает?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    С чего вы взяли что у вас там что-то не работает?
    Во-первых:
    Почему цикл if внутри цикла for который находится в цикле while не работает?

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

    Stalker_RED
    @Stalker_RED
    В большинстве игр в настройках можно вместо fullscreen выбрать windowed fullscreen. Если такого режима нет, то возможно он включается параметрами в ярлыке (во многих движках, даже если разработчики не добавили в меню).
    Третий вариант - запустить в окне, и уже сторонними утилитами убрать рамку.
    Работает везде, где есть режим "в окне", если и его нет в меню - попробуйте alt+enter.
    Ответ написан
    Комментировать
  • Как пофиксить нерабочий второй монитор, когда на первом игра в полноэкранном режиме?

    @Drno
    Используй оконный режим в игре
    Ответ написан
    Комментировать
  • Возможно ли на java сделать микросервис, который бы генерировал xls со сложной структурой и использовать его через api?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Микросервис можно
    Обращаться по api можно
    Генерировать xls можно
    Осталось понять, что вы имеете ввиду под «сложной структурой»

    Начните со знакомства с apache poi
    Ответ написан
    3 комментария
  • Возможно ли на java сделать микросервис, который бы генерировал xls со сложной структурой и использовать его через api?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Вопрос состоит из двух частей.

    1) Можно ли на java сделать микросервис? Ответ - да. Есть много готовых шаблонов типа Spring-REST
    которые являют собой почти готовые микро-сервисы.

    Например https://start.spring.io/;

    2) Генерировать XLS со сложной структурой. Тут не знаю. Насколько сложной? Что там? Вся база знаний о планете Земля со времен Шумеров? Ну для работы с XLS есть библитечка apache poi

    https://poi.apache.org/
    Ответ написан
    4 комментария
  • Как встроить webgl игру на сайт?

    demon416nds
    @demon416nds
    Разработчик на чем попало
    проще всего через iframe
    вам в любом случае нужно с базы начинать - html и css
    потом желательно хотя бы базовое понимание js и только потом браться за самостоятельное создание сайтов
    Ответ написан
    2 комментария
  • PhpStorm перестал открывать py файлы - что делать?

    Видимо отключился плагин с поддержкой питона.
    Посмотри в Settings -> plugins
    Ответ написан
    Комментировать
  • Как сделать независимые друг от друга объекты с одинаковыми скриптами на них?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Чтобы объекты были не зависимые они должны использовать только свои локальные переменные. Никаких там статик и управления с клавиатуры.
    Ответ написан
    Комментировать
  • Как узнать размер незаполненного массива в c++?

    @dima20155
    you don't choose c++. It chooses you
    Заполните изначально массив INT_MAX и затем заполните его на столько элементов, сколько нужно. Затем ищите первый элемент равный INT_MAX. Индекс этого элемента и будет длиной массива см. Как работает strlen.

    Второй и наилучший вариант - использовать std::array или написать его аналог
    Ответ написан
    5 комментариев
  • Как понять где +, а где -?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Обычно плюс внутри. а минус снаружи, но бывают исключения. Посмотрите на блоке питания. обычно указано, но можно и проверить мультиметром.
    На плате можно определять полярность по электролитическим конденсаторам, но обычно видно как стоял разъём, редко его можно припаять двумя способами. Если можно, то ваших фотографий не достаточно.
    В любом случае, если вам не очевидно как определить полярность, то лучше не лезьте и отнесите в сервис. Бе опыта можно накосячить очень многими способами и помимо перепутывания полярности. А токи там приличные, и ноут спалите, и пожар можете устроить.
    Ответ написан
    Комментировать
  • Чем защитить RDP кроме нестандартного Логина и сложного пароля?

    @TheBigBear
    СтарОдмины мы
    Мало информации
    Для начала не использовать стандартный RDP порт 3389 и разрешить доступ только определенным IP (см ниже)
    По возможности поднять VPN-сервер и настроить юзерям VPN-клиенты
    Сервер напрямую подключен к Интернет или через роутер и проброс порта?
    Первое - не самый лучший способ мазохизма.
    Если второе, то хотя бы сообщите - какой роутер?
    Если нет возможности поставить всем VPN то как минимум настроить ICMP или port-knokking для получения IP юзера и разрешить доступ к порту на несколько часов только тех IP что прошли проверку.. На Микротике это делается на раз-два. В самом крайнем случае выявить диапазоны местечковых провайдеров юзеров и добавить в "белый список" Шанс что злодей находится в вашем городе, очень низок. Делается несложно - просим пользователя из дома зайти на сайт 2ip.ru или yoip.ru и сообщить его IP. Далее чере 2ip.ru/whois смотрим какому провайдеру принадлежит
    Ответ написан
    3 комментария