Задать вопрос
  • Как из листа взять все числа в случайном порядке, без повторений?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    почему то значения в r1 r2 другие, хоть и приближенные

    правильно
    Random.Range(numbers[0], numbers[2]);
    никогда (или с очень малой веорятностью) не вернет ни numbers[0], ни numbers[2]. вы же задаете их как границы диапазона будущего случайного значения. обычно вы получите действительно значение где то между границ

    немого забегая вперед, раз уж у вас cлучайное значение, то numbers.Remove(r1); скорее всего ни чего не удаляет из списка. для удаления надо укзать значение, которое там действительно существует

    а r3 всегда равен min

    естественно (причины выше, вы никогда, ни чего не удаляе из списка)
    numbers = new List<float>() { min, mid, max };
    ...
    r3 = numbers[0];


    вероятно вам надо что то в этом духе
    numbers = new List<float>() { min, mid, max };
    // тут без изменений
    // далее различаем индексы и сами значения
    i1 = Random.Range(0, numbers.Count-1);
    r1 = numbers[i1]
    numbers.RemoveAt(i1);
    // ну или как вариант
    i_n = Random.Range(0, numbers.Count-1);
    r_n = numbers[i_n]
    numbers.Remove(r_n);
    // как видите, ни одной строки не убавилось. а удаление по индексу точно быстрее
    // полную совместимость с Unity это уж сами проверьте
    // естественно n ни когда не должно превышать исходного размера списка
    // и еще - средства раскраски синтаксиса напомнили in это зарезервированное
    // ключевое слово ;))


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

    pps
    freeExec, в каментах, утрверждает что верхняя граница ни когда не возваращается рандомайзером
    если это действительно так, можео смело шпарить
    ...i_n = Random.Range(0, numbers.Count);
    на любой фазе. ведь numbers.Count всегда вернет актуальное значение размера. его нельзя использовать в качесве индекса. но нас только что заверили, что рандомайзер не возвращает верхнюю грницу. значит такой код и короче и корректнее
    Ответ написан
    3 комментария
  • На каком языке и с применением каких технологий, IDE лучше писать программы для Windows, которые бы занимали минимум оперативной памяти?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    самый компактный и быстрый код - ассемблер
    самая компактная "IDE" - notepad. хотя и это не предел. есть консольные редакторы. даже под винду

    вы уж определитесь с хотелками. под винду нет инструмента лучше Visual Studio (а современный инсталятор отлично выбирает хотелки). если у вас слишком слабый комп - очень интересный инструмент Visual Studo Code (вот только исользует node.js и засирает систему кучами кешей npm, даже для собственного функционирования) зато наверное уже давно рекордсмен по количеству поддерживаемых языков (но плагины как правило и являются модулями npm)

    ps на сколько мне известно, это последняя версия официального ассемлера МС - https://www.masm32.com/ там даже какая то своя IDE есть
    но на masm свет клином не сошелся - https://www.nasm.us/
    и для nasm есть даже очень легковестная ide, ссылка в гугл, по тому что там еще и статься с хабра вылетает - https://www.google.com/search?client=firefox-b-d&e...
    .. и вообще, ассемблеров, как собак не резаных.. в чем глубинные отличия, кроме библиотек макросов, что логично, мне как правило даже и не понятно ))

    pps Visual Studio Community редакция абсолютно бесплатна, по окончании 30 дневного трила, если не ошибаюсь, надо просто зарегистрироваться. лицензия (довльно дешевая) требуется для публикации приложений в "магазин" МС. она у меня есть давно, по этому что делать тем у кого ее нет - не подскажу

    Visual Studo Code, а так же подавляющее большинство плагинов к ней, беспалтны абсолютно
    Ответ написан
  • Как написать асинхронный конвеер на c#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ну так IEnumerable<> и yield вам в помощь. само собой и async/await
    как раз эти четыре понятия и придназначены, для упрощения написания кода, над массивами даннх, растянутыми во времени, и не известной длинны. с их помощью, большая часть кода, выглядит так, будто все входные данные предоставлены сразу, и результат вы выдаете как будто тоже сразу

    ps для практики полезны примеры из MSDN (где они есть) либо на https://metanit.com/sharp/tutorial/ придется поискать. в любом случае, однозначно придется понять обсласти применения и возможности этих понятий. а тогда уже точно сложится картина, как они лягут на ваш конкретный случай

    pps
    Ссылки от того куда положили возвращаем в виде коллекции тому кто нас вызвал.
    вот это место не очень вписывается в концепцию конвеера на IEnumerable/yield/async/await
    дело в том что результирующие ссылки, вы получаете "изредка", и явно в отрыве от момента получения исходного изображения
    тут несколько путей:
    - именно коллекцию ссылок (json?) формировать по окончанию обработоки
    - возвращать в первоисточник ссылки по одной, и формировать коллекцию там, а привязку можно делать по имени/тегу/коду/номеру изображения.. (кадра?)
    - можно и асинхронно, растянуто во времени досылать json, или любую выбранную коллекцию дотнета, если на приемнике дотнет, и вы так же правите исходниками
    - как вариант, если известно количество кадров изначально, можно уведомлять первоисточнк о начале пересылки хоть массива заданной размерности, в любом понятном ему формате, если конечно он так же способенн к асинхронной обработке

    ppps
    Пробовал с BlockingCollection
    повторюсь, на сколько я уловил вашу задачу, кроме IEnumerable<>, в подобном конвеере в принципе ни че больше не нужно. ну или разве что как вы там результат решите формировать. но и для результата, даже для накопителя, из дотнетовских конструкций, того же IEnumerable<> за уши, а из него, если кончно это требуется, можно и json формировать
    Ответ написан
    6 комментариев
  • Что лучше прочесть для изучения .NET Framework и WMI?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    гуглится много аж глаза разбегаются но мне бы найти конкретно для меня, для чайника
    совет чайнику - вы просто начните, можно 2-3 источника сразу. и сравниватей как заходит
    более того. когда сочтете что уже не чайник, все равно сравнивайте более одного источника. это очень сильно продвигает опыт
    еще совет - смаостоятельное решенеи (и его поиск) неотемлемая часть работы программиста. по крайней мере хорошего - точно. практикуйтесь
    рутрекер к сожалению не помог, что то на эту тему там очень мало, старое, и на английском
    книги всегда фатально отстают от реальности. но книг среди и есть такие, которые достоины быть настольными. для этого надо переформулировать вопрос. и опять же на такой вопрос успешно ответит и гугл. (затруднения с деньгами? уверяю, основные шедевры найдутся и на рутрекере тоже. тогда уж librusec добавьте в источники тоже. там уже давно ввели платное, хотя и копешное сачивание (да и не за все), но по прежнему многое мжно просто читать с сайта)
    .. завершая мысль - хрошую книгу следует совмещать со свежайшими примерами MSDN. может не сразу, может в промежутке что то типа https://metanit.com/sharp/tutorial/

    успехов!
    Ответ написан
    Комментировать
  • Распознавание образов с окна игры?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    - вы можете покадрово снимать буффер экарана (не просите код. гугл в помщ. и отдавайте предпочтение ссылкам сразу на MSDN ))). это лишь указание "куда смотреть")
    - ну а потом "разглядывать его "нейронками". или чем научитесь ))

    ps мои личные достижения - грабинг обычной гуевой программы с текстовыми полями. но необычной тем, что она была создана на Qt for windows, то есть добраться до контента элементов по дереву хендлов, возможности не было ни какой. так и вознигла идея грабинга битмаповского буффера. на этом сходство с вашей задачей, могло бы закончиться,.. далее шрифт распознавал "домашними" алгоритмами. позднее, по срокам, на которы все это растянулось, стало очевидно, что можно было смело грызть нейронки сразу. но, не смотря на некоторый прогресс, клиент уже перегорел ))
    возможность применения нейронок была бы вторым, возможным сходством. в обоих измерениях, моя задача, возможно была существенно проще.
    Ответ написан
    Комментировать
  • Зачем нужны делегаты?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    тут все просто:
    - хочешь, учи C#
    - хочешь учи C++

    ps прямой ответ на вопрос эелементарно ищется на MSDN, куче учебных сайтов и в книгах
    pps ну или готов подискутировать в каментах.
    начнем со встречного вопроса - зачем вам C#? если так симпатичен C++. прошу развернутого ответа
    Ответ написан
    6 комментариев
  • Эмулятор Android?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    специально искал всяческие x86(_x64) эмуляторы - ни чего подобного не видел. подпишусь за компанию, но сомневаюсь что будут ответы по существу. думаю в лучшем случае вам напомнят об эмуляторах класса MEmu, NoxPlayer, Genimotion, может есть еще что то подобное. у них могут быть довольно приличные списки эмулируемых устройств, но это только смена разрешения экрана, и в лучшем случае какие то вещи типа переменных среды исполнения, которые заверяют софт что "я такой то планшет или смарт". возможно изменение доступных фич, типа эмуляции тех или иных сенсоров. но ни о каких прошивках речи нет и близко. на них более менее прилично работает весь софт на основе java, но не на NDK (бинарный код палтформы, написанный к примеру на C++). ну и лично мне, все они показались очень не стабильными.

    при необходимости предпочитаю поднимать андроид на виртуалке. что то из проекта Andriod x86, а еше лучше Bliss. из недостатков - нет проброса клипбоарда. зато не соизмеримо стабильнее чем все выше перечисленные "эмуляторы". и в систему не гадят. живут строго в виртуалке

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

    для сравнения - Майкрософт создал версию Windos 10 для ARM. и не то что бы в первые винда на ARM. 8ку точно тоже пробовали. но в этой 10ке уже не один год обкатывается реалтайм jit-компиляция x86/x64 обычных десктопных приложений Widows. анонсов и презентаци море. в самой корпорации ряд сотрудников ползовался прототипами уже не менее года. но реально продукт все еще не выпущен на рынок. по тому что все это не так просто как хотелось бы

    ps тут коллега Владимир Коротенко, предлагает вам опробовать эмулятор от гугл. возможно это один из самых качественных эмуляторов именно для разработчиков. тем не менее - прошивки в него загрузить невозможно. есть еще ряд ограничений. если интересно, смотрите каменты под ответом Владимир Коротенко.
    Ответ написан
    Комментировать
  • Windows 10 как рабочая среда для full-stack разработки?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    юбунта уже как минимум пару выпусков - минное поле. кубунта 1904 еще была довольно стабильна, но 1910 уже тоже может что то крешится в первые минуты после инстала

    федора 31 - в виртуалке вроде стабильна, но мне их вайланд поперек горла (я с Нортона привык к Ctrl+Enter, потом в Far, потом в mc, а под вайландом Ctrl как модификатор не признается)

    при этом хочу все свежее. угробил неделю на перебор дистрибутивов и... вернулся на винду. проще обкастрировать фоновые процессы, а дальше, что то под WSL, что то в виртуалках. в зависимости от хотелок
    Вин10 + Убунту в виртуалке? Дык интерфейс безбожно тормозит в виртуалке, начинает бесить..
    вы часом не Hyper-V пробовали? под ним только винда шикарно живет. можно и линуксы, но только сервера. ну разве что еще KDE.. но гостевых тулов нету. клипбоард не пробрасывается. зачем такой мазохизм?
    только VMWare или VirtualBox. варька понадежнее и стабильнее, но не бесплатная (да и потяжелее чуток). у бокса в принципе тоже свои плюшки есть. осваивать нюансы надо и там и там. но в целом, даже по дефолту все должно работать..
    при условии что у вам памяти достаточно - гигов 8, лучше 16. если вдруг всего 4 - только WSL

    ps если с ресурсами все в порядке (проц память в достатке) - в вирт советовал бы выбирать из Debian или Centos (графические драйвера и кодаки не нужны, все развлечения можно оставить винде)
    о WSL советую прочитать относительно свежую публикацию - https://habr.com/ru/company/microsoft/blog/476026/
    Ответ написан
    61 комментарий
  • Как клонировать/мигрировать/перенести образ c HDD на SSD?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    ssd выбираете по кошельку, а обьем не обязательно должен в точности равнятся старому.
    если перенос акронисом, то он замечательно умеет подгонять размер
    (а как правило все комплектные утилиты это частично брендированный и/или урезанный акронис. если в комплекте нет - гугл в помощь, загрузочный образ ищется элементарно, в отличичии от установочного варианта, ни каких серийников не требует, работает просто так)

    что на самом деле стоит учитывать - это объем данных на старом диске. если вы задаете такой вопрос, то шансов правильно перенести recovery у вас уже не 100%, да и ценность его не очень велика. так что оценивайте по занятому пространству на системном разделе. к этому стоит добавить гигов 20 (лучше 30) для процедуры обновление вин10 (если это вин 10).. а дальше уже вычисляйте себе "на вырост"

    если посадочных мест на два устройства ну ни как не получается, старый хард можно выселить в usb-бокс*, и он может еще долго послужить файло хранилищем (но стоит оценить его здоровье по S.M.A.R.T. опять же гугл в помощь). тогда всяческие папки долгохрана можно сразу вычитать. вот только на момент переселения, их надо будет сохранить на 3м носителе, хотя бы временном

    ps * - хард в usb-боксе очень желательно обеспечить дополнительным питанием. в идеале отдельным блоком питания. при недостатке энергоснабжения по порту usb, хард в боксе, можно довольно быстро убить. буквально
    Ответ написан
    Комментировать
  • Можно ли установить в ноутбук SSD диск с SATA3 если до этого стоял HDD с SATA2?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    Судя по данным AIDA64 в моем ноуте используется SATA2 - вот только не понятно..
    в AIDA64 все понятно:
    - если смотрите в блоке материнки, то это параметр материнки (контроллера)
    - если смотрите в блоке самого HDD, то это параметр HDD
    Посоветуйте, какой SSD мне взять
    вот такой
    Форм-фактор 2.5"
    а про SATA тоже все просто:
    - как уже упомянуто Дмитрий, они совместимы все, просто работают на скорости более низкого из пары контроллер-устройство
    - ну и как вы уже сами заметили, ssd ниже SATA III не бывают*

    ps * типа примечание - даже если контроллер на материнке SATA II, вы все равно получите существенный выигрыш в производительности:
    - SSD это устройство произвольного доступа, нет затрат времени на позиционирование головок как у харда
    - у харда пропускная способность выше в "начале" диска (на цилиндрах дальше от шпинделя) и полого снижается к "концу" диска. а у SSD пропускная способность масимальная на любом фрагменте
    - харды, осбеннно 2.5", как правило, даже SATA II (и даже в "начале" диска) не способны полностью прогрузить по скорости
    Ответ написан
    2 комментария
  • Если скопировать windows на новый диск, то можно пользоваться одной лицензией в двух экземплярах?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    кроме "нарушения" лицензии, если вы сумеете запустить эти копии одновременно (в виртуалке или на другом компе) одна из них вылетит (лицензия конечно), а может и обе, придется обращаться в сапорт, или переактивировать по телефону, ту которая нужнее

    если по очереди и на одном компе, это эквивалентно тому, что вы восстанавливаете из бекапа одну из копий. лицензия падать не будет. но практического смысла в этом не вижу. интереснее поставить другую систему. или линукс, или другую версию винды, в зависимости от круга интересов
    Ответ написан
    1 комментарий
  • Как сделать вывод лога работы в XML файл на c#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
    там пример есть как писать. как резать, если 24/7 - ваше творчество
    а вообще вряд ли самый удобный формат для логов
    Ответ написан
    Комментировать
  • Какие .exe у системных файлов администрирования?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    да фих их знает.. там их как собак не резаных..
    а еще не только *.exe, еще *.dll, *.msc, *.vbs, *.cmd, *.ps1 .. там сам черт ногу сломит
    Ответ написан
    Комментировать
  • Какой язык программирования подойдёт для написания высокопроизводительного приложения на Windows?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    ответы более чем очевидны, в порядке приоритета перфоманса:
    - C++, D
    - Rust, Go
    - даже C#
    .. вот только пожелания
    язык программирования ... для написания высокопроизводительного приложения на Windows
    и
    Не слишком высокий порог входа
    состоят в полной противоположности

    ps капля лирики
    даже мой любимый C#, если добавить немножко ускорителей
    https://habr.com/ru/company/clrium/blog/467663/
    https://habr.com/ru/post/443804/
    .. но это точно не сразу за порогом вхождения

    pps я бы рекомедовал D, тем более и плагин для VS есть
    ppps тут скриптовые языки советуют и критикуют регулярки.. и это более чем верно. регулярки слишком универсальный инструмент, что бы быть быстрым. регулярки в скриптовых языках - помножайте на скорости (точнее тормоза) интерпретаторов. на том же шарпе (без низкоуровневых финтов), но простым поиском по образцу начала фрагмента, и конца (да, задача была не сложной )), я получал что то вроде десятикратного обгона регулярок, самого же шарпа ))
    .. вывод - если вы займетесь программированием.. реально займетесь. и правда, и на php, и на js, получите обгон регулярок, наверняка тоже на порядок. а если не поймете как обрабатывать строки, ни один язык вас не спасет. на любом языке можно написать самую медленную программу ))
    Ответ написан
    3 комментария
  • Можно ли через планировщик задач остановить работу приложения?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    в планировщике точно есть условие для триггера запуска "при простое системы"
    это не гарантирует 0% загрузки процессора. но гарантирует низкую активность. к примеру ваша задача встанет в очередь за антивирусом, индексатором, дефрагментатором, и тд.

    в целом вопрос абсолютно реашаем, путем внимательного изучения планировкщика, методом "тыка"

    ps
    по многочисленным просьбам публики
    RF4V8oG.png

    pps
    критика версии что надо сложно программировать
    загрузку основных ресурсов, можно отслеживать аж на уровне скриптов - https://ru.wikipedia.org/wiki/WMI
    еще можно настраивать аудит на многие вещи - https://docs.microsoft.com/ru-ru/windows/security/... а шедулер умеет триггерить любые эвенты по достаточно изощренным фильтрам
    таже существует много сторонних инструментов, с широчайшими возможностями, в том числе средствами мониторинга чего либо
    https://docs.microsoft.com/ru-ru/sysinternals/
    https://www.nirsoft.net/utils/index.html

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

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    последний шанс
    Acronis TI with Universal Restore
    Ответ написан
    Комментировать
  • План изучения C# чтобы стать C# junior - как улучшить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - все перечеркнуть и начать действовать
    2 - потом можно достать скомканый черновик из корзины.. ну и допустим добавить функциональная парадигма (куда вы без LINQ уедете?.. хотя LINQ это еще далеко не вся потенциально возможная функциональщина)
    Ответ написан
    2 комментария
  • Какие есть библиотеки для рендеринга и скриншота веб-сайтов?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    cef#. в тч "безголовый" режим (минимальная консольная демка кажется как раз скриншотит)

    ps а вообще до дури всего. гугли "встраиваемые браузеры", "веб-боты", "тестирование веб ui". скриншотинг умеют практически все, кто достоин внимания
    Ответ написан
    Комментировать
  • Как в Windows 10 заставить работать горячие клавиши при русской раскладке?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    ни когда не слышали, что кодеры предпочитаюл локаль en-us? если слышали, не задумывались почему?

    ps Ctrl+C/V/X (иже с ними Ctrl + Ins/Del, Shift + Ins, работают везде как часы. при любой раскладке. если у вас нет - ищите перехватчики хоткеев. может даже вирусы)
    Ответ написан
    1 комментарий
  • Как можно исправить проблему со входом в Microsoft Store?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    у вас лицензия?
    если да - вам в сапорт МС
    если нет - все вопросы к пиратам, которые помогли активировать

    ps спасибо за отметку. на всякий случай - 0 ехидства:
    - сапор в МС адекватный, и давно доступен на русском, в 10 аж целое отдельное приложение. но можно и через сайты достучаться. и даже телефон (800й) найти
    - если сборка, то только пираты знают что они там "вырезали" (и не факт что все резали реально умельцы)
    Ответ написан
    Комментировать