• Существует ли какая- та тула, плагин или просто сервис который бы помогал улучшить код.?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Как только такая появится, вы станете не нужны.
    Ответ написан
    Комментировать
  • Можно ли назвать это обучение?

    GavriKos
    @GavriKos Куратор тега Unity
    Потому что надо начинать не с юнити, а с основ программирования.
    Юнити - это уже предметная область. А надо знать базу.
    Ответ написан
    Комментировать
  • Как выучить язык ассемблера?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    То, что Вы перечислили, это компиляторы макроассемблера. Сам ассемблер - набор кодов конкркетной архитектуры процессора.
    Такчто проще всего начать с процессоров архитееуры CISC. Это в основном 8, 16 и 32 разрядные архитекуры. Архитектура RISC более проста, но и более стожна, за счет большего количества действий, в программировании.
    Предлагаю взять что-то из семейства микроконтроллеров mips8, купить набор для разработчика за 1000 рублей и поморгать саетодиодами. Хотя до светодиодов дойти буднт труднл.
    Лучшая книга по ассемблеру - Дональд Кнут!
    Он придумал простой виртуальный процессор, на основе которого написаны его книги "искусство програмиирования". Есть куча эмуляторов для его архитектуры. Дерзайте!
    Ответ написан
    3 комментария
  • Почему вовремя ввода определённых чисел воспроизводит - 0 или Nan?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    1. В этой строке
    (a + b + c) / 2
    Будет происходить целочисленное деление, тк сумма a+b+c и 2 имеют тип int.
    Чтобы это исправить, тебе надо написать так:
    (a+b+c)/2.00
    Значение 2.00 имеет тип double и тогда деление пройдёт как ожидается.

    2. При значениях 9 9 19 будет браться корень отрицательного числа (даже если исправить первую проблему), а так как double - это не комплексное число, то и значение такое оно представить не может.

    3. А почему 0 у тебя получается в первом случае - хз. Запускал в консоли и у меня получилось 55.31
    Мой код

    // Запускал в roslynpad. Тебе возможно придётся убрать вызовы Dump и добавить юзинги
    var result1 = CalcualteAreaOfTriangle(11,11,12).Dump("result 1");
    var result2 = CalcualteAreaOfTriangle(9,9,19).Dump("result 2");
    
    
    static double CalcualteAreaOfTriangle(int a, int b, int c)
    {
        var p = (a + b + c) / 2.00;
        p.Dump("p");
        var s1 = Math.Sqrt((p * (p - a) * (p - b) * (p - c)).Dump("pre sqrt"));
        var s2 = 0.5 * a * b;
        if (s1 == s2)
        { // Кстати это почти никогда не будет срабатывать из-за IEEE754
            Console.WriteLine("Треугольник прямоугольный");//а точно ли?
        }
        return s1;
    }



    PS:
    button1, a, b, c, s1, s2, label4, label5, Form1, textBox1, textBox2, textBox3, button1, p
    Осуждаю такое именование.
    Ответ написан
    3 комментария
  • Какие есть максимально простые напоминалки для Windows 10?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Почта и Календарь.
    Ответ написан
    Комментировать
  • Где стоит писать свою 2д игру?

    LittleBob
    @LittleBob
    Если хотите харда - можно на SFML, MonoGame и прочих таких фреймфорках.
    Либо по классике, Unity, Godot, GameMakerStudio.
    От ваших запросов всё зависит.
    Ответ написан
    1 комментарий
  • Где стоит писать свою 2д игру?

    vabka
    @vabka
    Токсичный шарпист
    Проще всего взять уже существующий движок.
    UE кмк - это оверкилл, да и он больше для 3d.

    Я бы выбирал между Unity и Godot
    Ответ написан
    1 комментарий
  • На каком ЯП стоит писать программу для управления компьютерным клубом (десктоп)?

    vabka
    @vabka
    Токсичный шарпист
    Совершенно не имеет разницы на чём это делать.

    Тут у тебя по сути две (или три) части:
    1. Пользовательский интерфейс, где можно кнопочки нажимать и посылать какие-то команды (типа разблокировать комп №42 на 3 часа)
    2. Некоторая система, которая будет непосредственно эти команды реализовывать.
    3. Возможно, ещё какая-нибудь финансовая система, чтобы ещё деньги считать и чеки печатать.

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

    Самое сложное (не понятное) - это вторая, и она даже может состоять из нескольких частей (например сервер, который всем управляет и агент на управляемом компьютере)

    Пользовательский интерфейс может быть написан решительно на чём угодно - это может быть даже сайт, который будет через http обращаться к серверу, а может быть и привычный для тебя Windows Forms

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

    Griboks
    @Griboks
    Надо сделать интересную игру.
    Ответ написан
    2 комментария
  • Как написать маску для банковской карты и для даты в формате ММ/ГГ?

    iMedved2009
    @iMedved2009
    Не люблю людей
    /([0-9]{4}) ([0-9]{4}) ([0-9]{4}) ([0-9]{4}) ([0-9]{4})/


    /([0-9]{2}\/[0-9]{2})/
    Ответ написан
    Комментировать
  • Можно ли обучить бота повторять действия в игре?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если речь идет о computer vision - то да. Скорее всего можно. Но мне жаль ваш талант. Если вы действительно создатите такого бота который обучается по картинке то вас можно нанимать на работу и платить столько денег что дешевая прокачка Эльфа в какой нибудь MMORGPG вам станет просто не нужна. Сможете купить все.
    Ответ написан
    Комментировать
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    ValdikSS
    @ValdikSS
    Попробуйте kcptun, он создан как раз для таких ситуаций.
    Ответ написан
    Комментировать
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что нельзя решать проблемы TCP находясь выше уровня TCP.

    Сами потери пакетов этот протокол решает повторной пересылкой (TCP Retransmission).
    Тоесть технически это уже решено в самом протоколе. Разумеется не безплатно и ценой
    потери времени. Когда у вас примерно 50% теряется - это ситуация "очень плохо".

    Так работать нельзя и нужно решать эту проблему именно в том месте где она возникает. Если
    это физический уровень то надо менять кабели (антены) или если это работа шейперов и firewalls
    то решать это соотв там.

    По поводу удвоения трафика и избыточности. Можно использовать различные коды Хемминга и РидаСоломона
    но они требуют буфера. Причем если единица потери у вас это TCP-пакет то для удачного восстановления
    надо хотя-бы передать 1000 пакетов оснащённых кодами восстановления (и при этом гарантировать
    что ретрансмиссий не будет ибо они не нужны) и на выходе где-то (интересно где?) их всех собрать
    в один массив и быстринько проверить что инфы для восстановления уже достаточно чтоб пролечить
    потерянный пакет. Как это сделать - ума не приложу. Но это полюбому будет на уровне IP/UDP
    и это совершенно новый протокол. Крайне ресурсоёмкий по памяти и с длинным лагом по TTFB.

    Вобщем схема очень напоминает скачивание большого торрент-файла по UDP в условиях рандомного порядка
    следования чанков этого самого файла. Кому такая схема нужна? Это нединамично и неотзывчиво. Никаких онлайн
    игр и стриминга тут нельзя построить.
    Ответ написан
    2 комментария
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    @nApoBo3
    1. Вы не совсем понимаете, что такое потеря 50% пакетов. В вашем гипотетическом сценарии, это потеря каждого второго пакета, но в реальной жизни это не так.
    Удвоением кол-ва пакетов вы проблему усугубите.
    2. И да, эту проблему можно для части протоколов решить программно, но не уверен, что такие решения есть в готовом виде. Вам потребуется реализовать собственный аналог tcp для ситуации с большой потерей пакетов, работающий поверх udp или более низких протоколов, плюс промежуточный прокси.
    Возможно подобные решения есть, я про подобные вещи когда-то читал для нефтяники на спутниковых каналах, там были свои протоколы, для ускорения передачи данных, поскольку tcp плохо подходит для каналов с большими задержками.
    Ответ написан
    2 комментария
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    hint000
    @hint000
    у админа три руки
    Попробую уточнить вопрос, как я его понял.
    В UDP тупо перепосылать пакеты нельзя.
    Про UDP согласен, забудем про него.
    В TCP пакеты и так перепосылаются при недоставке.
    Есть ли тонкие настройки (для ядра Linux и т.п.) параметров TCP, такие, чтобы минимизировать задержки при повторной отправке пакетов, ценой большей утилизации пропускной способности, когда заведомо известно о больших потерях?

    Исходя из уточненной формулировки гуглим: https://www.google.com/search?q=high+tcp+packet+lo...
    Попадаем сюда: xgu.ru/wiki/TCP_tuning
    Потом сюда: https://www.linux.org.ru/forum/talks/10310095
    И сюда: https://habr.com/ru/post/168407/
    И, наконец, попытаемся призвать в топик самого ValdikSS , может быть с момента публикации статьи появилось что-то новое по этой теме.

    Собственно,
    sysctl -w net.ipv4.tcp_congestion_control=westwood
    Ответ написан
    Комментировать
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В TCP пакеты и так перепосылаются при недоставке.
    В UDP тупо перепосылать пакеты нельзя. Поскольку сам UDP не предусматривает контроль за доставкой, то два одинаковых пришедших UDP-пакета могут быть поняты как два независимых запроса/команды.
    Ответ написан
    3 комментария
  • Можно ли начать разрабатывать игры в Unity, зная основы c#?

    @oleg_ods
    Смотря что Вы подразумеваете под фразой «знаю основы».

    Можете устроить себе тест. Возьмите 200 последних вопросов с тэгом Unity с этого ресурса и попробуйте сами на них ответить(большинство проблем в них как раз таки связано с незнанием основ языка). Если нашли ответ на 80% то смело беритесь за Unity, если меньше то у Вас будет список тем по которым Вам нужно подтянуть знания.
    Ответ написан
    3 комментария
  • Как сделать так, чтобы для программы отображалась другая версия винды?

    xez
    @xez
    TL Junior Roo
    Попробуйте через настройки совместимости: https://support.microsoft.com/ru-ru/windows/%D0%BD...
    Ответ написан
    Комментировать
  • Как ограничить копирование данных из сетевых папок, локального ПК, на флешки и внешние ресурсы?

    @TheBigBear
    СтарОдмины мы
    Много лет пользовали Стахановца
    В нем можно запретить запись на внешние носители, отслеживает все копирования-удаления - даже к себе их копирует перед удалением. Можно запретить прикрепление файлов в вэб почте. Отлична развита система отслеживания подозрительных действий, слова "ловушки".
    Правда (не знаю как в новых версиях) в нашей плохо работал "клавиатурный почерк" и распознавание речи
    Два раза ловили инсайдеров конкурентов, раз сотрудницу, сливающую данные в налоговую.
    Раз помог найти украденный ноутбук
    Сколько раз наказывали за безделье на работе - не счесть (соцсети, ютуб)
    4 года назад в компании сменился владелец.
    Приказал убрать стахановца, поменял мелкое руководство, изменил отношения в коллективе.
    Запретил штрафы - если сотрудник сделал текущую на сегодня работу - пусть делает что хочет.
    Мы вспомнили что такое "премия" за хорошую работу.
    Раз собрал сотрудников и сообщил кто конкретно в коллективе на нас "стучит" и предложил вне конфликты разбирать публично
    Вот не поверите, но на работу ходим с удовольствием
    Ответ написан
    1 комментарий
  • Как разбить textarea на массив?

    mizutsune
    @mizutsune
    Frontend Developer
    1. Получаем содержимое textarea.
    2. Используя метод split разбиваем полученное значение на отдельные слова или предложения по разделителю (перенос строки/точка с запятой/запятая/точка/пробел/etc).
    4. Profit.

    Окончательный результат зависит от того => массив каких значений вам нужно получить и в связи с этим, нужно составлять определенные функции, которые будут решать поставленные задачи, при этом нужно учитывать достаточно множество моментов, при которых что-то может пойти не так.

    Несколько примеров

    Пример - №1:

    Задача: Получить простой массив слов, без модификации регистра заглавных букв и без удаления специальных символов, ну и всего остального.

    let value = '   Illusion is the first of all pleasures.   ';
    
    value.split(" ").filter(n => n !== "");


    1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя пробел.
    2. На втором этапе удаляются пустые значения из массива.

    Результат:

    ['Illusion', 'is', 'the', 'first', 'of', 'all', 'pleasures.']


    Пример - №2:

    Задача: Получить массив слов без специальных символов и прочего.

    let value = `       Lorem ipsum dolor sit amet, consectetur adipiscing elit, 
    sed do eiusmod, tempor et dolore magna aliqua.
    Amet facilisis magna!!! 
    Ornare quam viverra volutpat odio facilisis mauris.    `;
    
    value.split(" ").map(n => n.replace(/[\r\n.,!]/g, '')).filter(n => n !== "");


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

    Результат:

    ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing",
    "elit", "sed", "do", "eiusmod", "tempor", "et", "dolore",
    "magna", "aliquaAmet", "facilisis", "magna", "Ornare", "quam",
    "viverra", "volutpat", "odio", "facilisis", "mauris"]


    Пример - №3:

    Задача: Получить массив предложений из текста.

    let value = " Lorem ipsum. Dolor sit amet. Consectetur adipiscing elit.      ";
    
    value.split(".").map(n => n.trim()).filter(n => n!== "").map(n => `${n}.`):


    1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя символ точки, так как точка символизирует окончание предложения в тексте. По крайней мере, в большинстве случаев.
    2. На втором этапе обрезаем пробелы вначале и в конце каждого элемента массива.
    3. На третьем этапе избавляемся от пустых значений.
    4. На четвёртом этапе расставляем точки на концах строк, чтобы превратить их в предложения.

    Результат:

    ['Lorem ipsum.', 'Dolor sit amet.', 'Consectetur adipiscing elit.']


    Пример - №4:

    Задача: Разделить строку на части и записать их в массив, используя несколько разных разделителей.

    let value = "Lorem ipsum, tempor magna aliqua. Dolor sit amet? Consectetur! Adipiscing elit.";
    
    value.split(/[,.?!]/).map(n => n.trim()).filter(n => n!== "");


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

    Результат:

    ['Lorem ipsum', 'tempor et dolore magna aliqua', 'Dolor sit amet', 'Consectetur', 'Adipiscing elit']




    Вариантов разделения строки на массив может быть огромное множество.
    Ответ написан
    Комментировать