• Чем нейронные сети отличаются от ИИ?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    5e7096d14cca5837411277.jpeg
    Искусственный интеллект — название всей области, как биология или химия.

    Машинное обучение — это раздел искусственного интеллекта. Важный, но не единственный.

    Нейросети — один из видов машинного обучения. Популярный, но есть и другие, не хуже.

    Глубокое обучение — архитектура нейросетей, один из подходов к их построению и обучению. На практике сегодня мало кто отличает, где глубокие нейросети, а где не очень. Говорят название конкретной сети и всё.

    источник
    Ответ написан
    Комментировать
  • Как преобразовать название процесса в нижний регистр?

    freeExec
    @freeExec
    Участник OpenStreetMap
    p.ProcessName.ToLower()
    Ответ написан
    Комментировать
  • Почему игнорируются необязательные параметры?

    twobomb
    @twobomb
    Потому-что ваш конструктор не отрабатывает, передайте ему хотя бы одно значение. Отрабатывает конструктор без параметров который нельзя переопределить. Если нужно чтобы эти значения были по умолчанию, то задайте их сразу соответствующим полям.
    Ответ написан
    2 комментария
  • Как создать школу курсов на базе ВУЗа ил колледжа?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    как доказать что именно я могу вести работу над созданием курсов?

    Это невозможно, если вы даже это не смогли сделать без глупых вопросов на Тостере.
    Ответ написан
    3 комментария
  • Тема диплома ПО на C# для работы с API соц. сети?

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

    gbg
    @gbg
    Любые ответы на любые вопросы
    Очередной "зачем меня учат" - вопрос. Объясняю:

    Процесс обучения состоит не только в тупом заталкивании в башку одмина информации "бело-оранжевый, оранжевый, бело-зеленый, синий, бело-синий, зеленый,...), но и в развитии его способностей к мышлению, а также развитию его личности в целом.

    Именно для этой цели во все учебные программы засунуты такие ненужные вещи как физкультура (чтобы в 30 лет не скупать половину аптеки), культурология (чтобы отличать Бебеля от Бабеля, Бабеля от кабеля, кабель от кобеля, а кобеля от суки), математика и прочее барахло.

    Умение ковыряться с абстрактными буковками на бумажке что-то там улучшает в мозгах, после чего решение тех же задач по планированию работ получается с меньшими усилиями. И кроме того, вы не будете всю жизнь тянуть кабели (надеюсь), так что начальные знания полезно иметь.
    Ответ написан
    4 комментария
  • NET Core. Как перенести с виндовс на mac os?

    FoggyFinder
    @FoggyFinder
    Собрать приложение под другую платформу можно с помощью команды publish

    dotnet publish

    с указанием правильного runtime. Например:

    dotnet publish -c Release --framework netcoreapp2.0 --runtime osx-x64
    Ответ написан
  • Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Нет, не стоит.
    Вы тупо будете слушать, как картавый мычащий Васян пересказывает какой-нибудь learnjavascript, пропуская половину тем, которые сам не понимает.
    И таких видео - 90%.
    Ответ написан
    12 комментариев
  • Как повысить свой архитектурный навык в программировании?

    @grinat
    80% крупных js проектов выглядят так будто их делала толпа обдолбанных обезьян сбежавших с зоопарка. Так что лучшее решение это писать на другом языке, потом вернуться назад. Ну или ждать, есть подвижки в этом направлении, просто комьюнити слишком молодое, с тем же php раньше тоже самое было, но прошло время и все переменилось.
    Ответ написан
    1 комментарий
  • Как организовать хранение аудиофайлов для серверного проекта?

    @ArgosX
    1) Хранить аудио в папках, сохраняя значения путей в БД (Что на мой взгляд не правильно!)

    именно ваш взгляд не правильный
    Ответ написан
    9 комментариев
  • Правда ли что рынок веб разработки "перегрет"?

    OTCloud
    @OTCloud
    Программирование и Архитектура ПО
    100% перегрет, но не программистами или веб-мастерами, а индивидами, которые решили что веб это просто и легко и не стоит сильно париться над своими скиллами и знаниями.
    Ответ написан
    8 комментариев
  • Как разобраться в сетях?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Начинать надо с малого. Сначала эхо-сервер, потом чатик, многопользовательский чатик, многопоточный чатик, простой web-сервер и так далее, постепенно наращивая сложность. Кроме того, намного лучше идёт обучение, когда есть понимание принципов работы сетей. За этим знанием можно обратиться к учебнику "Компьютерные сети" Таненбаума.
    Ответ написан
    3 комментария
  • С чего и как начать продажу команды разработчиков с нуля без портфолио?

    @PavelFokeev
    pavl1k.ru
    опыт работы на удаленке стремится к нулю

    Работать "на портфолио", естественно, не буду, за копейки тоже

    Команды пока нет

    Хмм...
    Буду очень рад абсолютно любым советам

    Иди на завод)
    Ответ написан
    9 комментариев
  • Хочу поставить убунту на эндлесс. Но не могу найти сайт с убунту и как его установить?

    mrsexy
    @mrsexy
    Senior Pomidor
    Ненужна вам Ubunta и любой другой дистрибутив Linux. Вам ещё сюда рано... Вы потом будете проклинать всё на свете, и плодить миллионы вопросов на Тостере. У Убунту и некоторых дистрибутивов хоть и есть визуальная оболочка, но 80% это работа из консоли(чёрное окошко куда нужно будет вводить команды). В игрушки на ней не поиграете, программы так же специфические и не устанавливаются простым скачиванием установщика из интернета.
    Мой совет, освойте Windows. Потом лезьте в эти дебри мануалов.
    Ответ написан
    6 комментариев
  • Kaк защитить файл от слива в интернет?

    @stictt
    просто рак
    Ничего из этого не работает. И ничего не поможет. нет защиты от пиратства. Все существующие методы могут помочь на не большой срок. при условии что ваш вайл не очень кому и нужен.
    Ответ написан
    Комментировать
  • Unity как сделать систему инвентаря?

    GavriKos
    @GavriKos Куратор тега Unity
    все предметы это объекты image

    Бдзз! Неправильно. Все объекты - это некие сущности, у которых есть id (или любое другое строго уникальное поле), количество и метаинформация - картинка, название, описание и т.д. Сохраняем в Playerprefs айдишники и количество - остальное нафиг не надо.
    Ответ написан
    4 комментария
  • Почему C# не позволяет делать Downcast от родителя к потомку?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Интересно, почему C# принципиально не позволяет расширять базовый экземпляр, как в этом коде?

    Потому, что объект создан и занимает в памяти 20 байт. И о не как не может кастнуться в объект который должен занимать 20 Мб.
    Поэтому вам как не крути придётся создавать новый экземпляр.
    Ответ написан
    Комментировать
  • Как правильно написать этот код/как оптимизировать это "код"?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Первое, что нужно сделать - определить доменные сущности, с которыми будет работать программа. В вашем случае это:
    • тест, который состоит из вопросов;
    • вопрос, который состоит из текста и ответов (упорядоченные по индексам);
    • ответ, котрый состоит из текста и признака правильности.
    Код
    public class Test
    {
        public IList<Question> Questions { get; set; }
    }
    
    public class Question
    {
        public string Text { get; set; }
        public IList<Answer> Answers { get; set; }
    }
    
    public class Answer
    {
        public string Text { get; set; }
        public bool IsRight { get; set; }
    }



    Необходимо декомпозировать задачу на атомарные подзадачи. Каждую подзадачу можно унести в отдельную функцию, чтобы ограничить сферы ответственности кода (в духе SOLID в общем и SRP в частности), чтобы обезопасить себя от "эффекта бабочки", когда небольшое изменение отдого кусочка кода в одной части приложения рушит остальную работу в другой части. Да и читать код будет проще, не путаясь в деталях реализации из огромной портянки неразрывного кода с неочевидными связями переменных. Получается примерно так:

    1. логика "главного меню";
    2. логика теста:
      1. создание контента теста;
      2. прохождение теста:
        1. распечатка вопроса;
        2. получение ввода пользователя;
        3. проверка ответа;
        4. подсчет и вывод статистики.



    Затем необходимо сформировать структуру теста. Для этого можно создать функцию-фабрику, которая возвращает новый объект теста (данные хардкодятся как здесь, читаются из базы, ходят за ними в интернет... whatever, нас интересует само тестирование):
    Код
    public static Test CreateTest()
    {
        return new Test
        {
            Questions = new List<Question>
            {
                new Question
                {
                    Text = "Какая команда выводит текст в консоль?",
                    Answers = new List<Answer>
                    {
                        new Answer { Text = "if/else" },
                        new Answer { Text = "System.out.println();" },
                        new Answer { Text = "Console.WriteLine();", IsRight = true },
                        new Answer { Text = "int x = 10;" }
                    }
                },
                new Question
                {
                    Text = "Какой тип из списка целочисленный?",
                    Answers = new List<Answer>
                    {
                        new Answer { Text = "char" },
                        new Answer { Text = "int", IsRight = true },
                        new Answer { Text = "float" },
                        new Answer { Text = "double" }
                    }
                }
                //,...
            }
        };
    }


    Пусть программа, как у вас, приветствует пользователя, а затем, пока он не введет какой-то из двух корректных выводов (регистронезависимо (...IngoreCase)), будет показывать приглашение с подсказкой. Если Go - вызываем создание теста и заходим в игру. Если игра завершилась или пользователь изначально ввел Exit - печатаем знаменитое Press any key... и выходим из программы.
    Код
    public static void Main()
    {
        Console.WriteLine("Всем привет! И это моя первая мини-программа для проверки ваших знаний языка программирования C#");
        string input;
        
        do
        {
            Console.WriteLine("Если готовы пройти тест напишите Go, а если хотите выйти напишите Exit.");
            input = Console.ReadLine();
    
            if (input.Equals("Go", StringComparison.InvariantCultureIgnoreCase))
            {
                var test = CreateTest();
                PlayGame(test); // <----- Логика тестирования находится здесь
            }
        } while (   !input.Equals("Go", StringComparison.InvariantCultureIgnoreCase)
                 && !input.Equals("Exit", StringComparison.InvariantCultureIgnoreCase));
    
        Console.WriteLine("Для выхода нажмите любую клавишу...");
        Console.ReadKey();
    }


    Для игры нам потребуется массив с номерами "проваленных" вопросов (которые пригодятся для статистики в конце - CalculateResult). Мы обходим все вопросы из теста, сначала выводя их текст с вариантами на экран (PrintQuestion), затем спрашивая юзера его выбор (GetUserChoice). Затем ответ проверяется (IsCorrectAnswer), если он неверен - добавляем номер ответа (i - это индекс массива с нуля, поэтому +1) в массив ошибок. После всех вопросов - подсчитываем и выводим статистику.
    Код
    private static void PlayGame(Test test)
    {
        var mistakes = new List<int>();
        for (int i = 0; i < test.Questions.Count; ++i)
        {
            var question = test.Questions[i];
            PrintQuestion(question, i);
    
            int choice = GetUserChoice(question.Answers.Count);
    
            if (!IsCorrectAnswer(choice, question.Answers))
            {
                mistakes.Add(i + 1);
            }
        }
    
        CalculateResults(test.Questions.Count, mistakes);
    }


    Вопрос распечатывается элементарно: сначала его текст, затем варианты ответов, перед которыми ставиться табуляция (\t), чтобы сформировался отступ списка:

    Код
    private static void PrintQuestion(Question question, int questionIndex)
    {
        Console.WriteLine($"{questionIndex + 1}. {question.Text}");
    
        for (int i = 0; i < question.Answers.Count; ++i)
        {
            Console.WriteLine($"\t{i + 1}. {question.Answers[i].Text}");
        }
    }


    Получение варинта юзера делается циклом аналогичным вводу Go/Exit в начале. Его завершением управляет переменная isCorrectInput, которая ставится равной true только в самом конце, когда значение успешно спарсится и пройдет проверку на валидность номера ответа (от 1 до максимального номера ответа):
    Код
    private static int GetUserChoice(int answersCount)
    {
        bool isCorrectInput = false;
        int choice = -1;
        do
        {
            try
            {
                Console.WriteLine("Введите номер ответа:");
                string input = Console.ReadLine();
                choice = Convert.ToInt32(input);
                if (choice >= 1 && choice <= answersCount) isCorrectInput = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Неправильный формат ввода");
            }
        } while (!isCorrectInput);
    
        return choice;
    }


    Для проверки правильности сначала выделяем правильные ответы вопроса (rightAnswers), а потом сравниваем их порядковые индексы с выбранным пользователем индексом. Если хоть один ответ совпал (да, их может быть несколько) - вернется true:
    Код
    private static bool IsCorrectAnswer(int choice, IList<Answer> answers)
    {
        var rightAnswers = answers.Where(x => x.IsRight);
        int chosenAnswerIndex = choice - 1;
        return rightAnswers.Any(x => answers.IndexOf(x) == chosenAnswerIndex);
    }


    Ну и вишенка - распечатка результатов. Если ошибок нет - все гуд, 100% решений. Если ошибки есть, то мы решаем простую пропорцию, вычисляя сколько процентов ошибочных ответов было дано, а затем вычитаем их из 100%, получая процент успеха.
    Код
    private static void CalculateResults(int questionsCount, IList<int> mistakes)
    {
        if (mistakes.Count == 0)
        {
            Console.WriteLine("Вы на все вопросы ответили правильно! Тест пройден на 100%! ");
        }
        else
        {
            string invalidQuestionsString = string.Join(", ", mistakes.Select(x => $"#{x}"));
            int progressPercentage = 100 - (int)Math.Ceiling(100 * (double)mistakes.Count / questionsCount);
            Console.WriteLine($"Среди ваших ответов есть неправильные ({mistakes.Count}: {invalidQuestionsString})). Тест пройден на {progressPercentage}% ");
        }
    }



    ЗЫ Вы можете поиграть с кодом, попробовать добавить больше вопросов, принудительное прерывание после первого неправильного ответа, обработку множественных корректных ответов (добавлять или баллы за частичное угадывание), разнообразить типы вопросов и прочее.

    Полный листинг на ideone
    Ответ написан
    Комментировать
  • Какие требования для мидла в проектах Unity?

    GavriKos
    @GavriKos Куратор тега Unity
    Если вы себя миддлом не считаете - то писать вам требования бесмысленно.
    К тому же, ИМХО - все что выше джуна - это уже речь не о знаниях, а о навыках, которые прочитав книжки получить невозможно.
    Ответ написан
    3 комментария