• Можно ли сделать трансляцию фильма с raspberry pi 4 на телевизор lg?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Установить на raspberry pi 4 minidlna.
    Телевизор lg со smart tv должен уметь по DNLA подключаться.
    Ответ написан
    Комментировать
  • Как вывести в ListView Winforms Consl.WriteLine?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    вместо
    Console.WriteLine("+" + Id + "*" + IpAdressClient + "@" + CountryClient + "#" + CityClient);


    поставить
    ListView1.Items.Add("+" + Id + "*" + IpAdressClient + "@" + CountryClient + "#" + CityClient);
    Ответ написан
    Комментировать
  • Как сохранить новые вкладки tabpage?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Нужно сохранять состояние программы между запусками, например, в файл.
    Ответ написан
  • Где лучше создавать экземпляр класса C#?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Машина не создаёт двигатели, двигатели создаёт завод.

    Но если абстрагироваться от смысла и названий, то оба варианта могут существовать:

    В первом варианте мы создаём каждый раз новый объект. Например, это может быть метод для парсинга строк и создания на основе этих строк разных объектов. Что-то типа: Node ParseNode(string textNode);

    Во втором случае объект выдаваемый методом создаётся при создании класса. В этом случае мы имеем что-то подобное паттерну Singleton (Одиночка). У нас есть один объект, эксплуатация которого затратна по ресурсам (например, долго создаётся, или требует много памяти, или требует отдельное сетевое соединение), но в целом для работы остального кода достаточно и одного этого объекта. Мы каким-то способом этот объект создаём и затем всем кому надо отдаём один и тот же объект.
    Ответ написан
    2 комментария
  • Пошаговый калькулятор на С#?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Один из вариантов решения:
    Превратить поток символов в поток лексем (лексема - это NUMBER , OPERATION , OPEN_BRACKET, CLOSE_BRACKET).
    Затем по одной лексеме складываем в стек.
    После очередной лексемы проверяем: можно ли три верхних лексемы заменить на одну по правилам:
    NUMBER OPERATION NUMBER -> NUMBER
    OPEN_BRACKET NUMBER CLOSE_BRACKET -> NUMBER.
    Если можно - заменяем.
    Если замена проведена, проверяем по правилам заново.
    При замене выводим содержимое стека и оставшиеся лексемы.
    Выполняем пока не закончатся лексемы, а в стеке не останется одна лексема типа NUMBER.
    Ответ написан
    1 комментарий
  • Как с помощью HttpClient (C#) открыть определенные сайты?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Обычно ошибки 5хх означают проблему на стороне сервера. Т.е. вы ничего сделать в этом случае не можете.
    Ответ написан
    Комментировать
  • Как задать фиксированный размер консоли для приложения на C#?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Консольное приложение оно на то и консольное, что запускается без окна и высота/ширина тут не имеет смысла. Мы с помощью другого приложения (cmd.exe) запускаем наше консольное.
    Можно написать что-то свое похожее визуально на cmd.exe и у него зафиксировать размер.
    Ответ написан
  • Как получить .net ресурсы в сборке?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    С этого можно начать:

    IEnumerable<object> GetResources(System.Reflection.Assembly inAssembly, System.Globalization.CultureInfo inCultureInfo) =>
                ((System.Resources.ResourceManager)inAssembly
                    .GetTypes()
                    .FirstOrDefault(type => type.Name == "Resources")
                    .GetProperty("ResourceManager", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static)
                    .GetValue(null, null))
                        .GetResourceSet(inCultureInfo, true, true)
                        .OfType<System.Collections.DictionaryEntry>()
                        .Select(item => item.Value);
    
    
    var resources = GetResources(System.Reflection.Assembly.GetCallingAssembly(), System.Globalization.CultureInfo.InvariantCulture);
    Ответ написан
    4 комментария
  • Какой алгоритм подойдет для наиболее оптимального решения задачи?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Положить все номера в хэш-таблицу.
    start: Берем первый непомеченный номер и, начиная с него, делаем поиск в ширину по всем соседям (их меньше либо равно 20).
    Если сосед найден, то выписываем эту пару.
    Когда у очередного номера найдены все соседи, то помечаем его.
    Следующую итерацию поиска проводим только для непомеченных соседей.
    Повторяем, начиная со start`а, пока есть непомеченные номера.
    Ответ написан
    Комментировать
  • Как получить значение с foreach и передать его методу?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    public IEnumerable<string> GetPhotoUrl() =>
                Api
                    .Wall
                    .Get(new WallGetParams
                    {
                        Domain = "lol.community",
                        Count = 2
                    })
                    .WallPosts
                    .Select(item => item.Attachments.FirstOfDefault()?.Instance)
                    .OfType<Photo>()
                    .Select(item => item.Sizes.FirstOfDefault()?.Url.AbsoluteUrl.ToString());
    Ответ написан
    Комментировать
  • Как разобраться с преобразованием Фурье?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Вот как у меня в голове сложилось после 5 лет обучения по радиотехнической специальности, какого-то времени работы схемотехником и какого-то времени преподавания практики по курсам ОТЦ и РЦС. Плюс еще в аспирантуре с преобразованием Фурье пересекался.

    Работая с разными сигналами (аудио-, электро-) мы в основном решаем две задачи. Это анализ и синтез.
    Анализ - это узнать про сигнал все, что нужно по задаче. Узнать какой получится сигнал на выходе некоего преобразователя, если на входе вот такой сигнал.
    Синтез - это создать сигнал с заданными характеристиками. Или создать преобразователь, который из известного входного сигнала получит требуемый выходной.

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

    Учебник, как и Xilian , читал Баскакова "Радиотехнические цепи и сигналы".

    По поводу анализа звука гитары.
    Спектр гитарной струны будет какой-то такой
    5b1929c853e5d805356858.png
    т.е. видно основную гармонику (низшую) и частоты обертонов (кратных частот).

    Можно довольно просто выделить эту основную гармонику программно.

    А теперь представим, что у нас звучат одновременно несколько струн. Будет достаточно сложная картина.
    Учитывая, что диапазон гитары перекрывает несколько октав, то получится, что основные тона нижних струн могут совпадать с обертонами верхних струн. В хорошем приятном аккорде будут совпадать частоты обертонов разных струн (на то и гармония). Учитывая разный тембр звука при разном звукоизвлечении или при игре с примочками взаимное распределение по амплитуде разных гармоник для одной струны будет разным.
    Я к чему это веду. Определить в этой каше составляющие каждой струны будет очень сложно, если нет под каждой струной отдельного звукоснимателя.

    Но можно определить аккорд играемый в данный момент.
    Одновременно у нас может играть 6 струн, т.е. аккорд может состоять не более чем из 6 звуков. Нам неизвестно, есть ли в этом аккорде примы и октавы. Поэтому возьмем в спектре первые шесть пиков. Уберем кратные пики. То, что останется будет определять гармонический смысл аккорда. Так мы не сможем определить "широкие" аккорды, но самое основное получим. Из частот сможем получить ноты (с учетом того, что гитара может быть расстроенной или настроенной не от ля 440Гц).
    Ответ написан
    Комментировать
  • Как правильно добавить ссылки при компиляции через csc.exe с#?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Просто тут положу: тыц
    Ответ написан
    Комментировать
  • Как из стоки windows-1251 получить строку UTF-8 на C#?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    может так попробовать?

    readonly static System.Text.Encoding WINDOWS1251 = Encoding.GetEncoding(1251);
    readonly static System.Text.Encoding UTF8 = Encoding.UTF8;
    
    static string ConvertWin1251ToUTF8(string inString)
    {
         return UTF8.GetString(WINDOWS1251.GetBytes(inString));
    }
    Ответ написан
    4 комментария
  • Математика внеземных цивилизаций?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Придерживаюсь в отношении математики принципов платонизма. То есть... идеи (эйдосы) существуют независимо от нашего существования. Скажем, идея квадрата, идея числа и т.д.
    Но мы в силу ограниченности наших органов чувств и нашего разума не знаем всех свойств этих эйдосов. То есть эйдосы, которыми мы манипулируем в науке, в математики - это лишь проекции настоящих эйдосов на наш разум.

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

    Приведу пример: какие-нибудь слепые разумные слизни с Альдебарана могут не знать про теорему Пифагора в силу отсутствия визуального мышления, но поскольку они общаются посредством постукиваний псевдоподиями (аналог азбуки Морзе), то вполне могут иметь представление об идее числа (2 стука, 3 стука+4 поглаживания). А если знаешь про число, то можешь что-то обобщить про него, выявить какие-то законы. А 2 стука да 2 стука будь ты хоть слизнем преклонных годов - все равно 4 стука.
    Ответ написан
  • Какой выбрать преобразователь логического уровня с 3.3В в 5В?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    В свое время работал с микросхемами Analog Devices серии ADuM. Это гальваническая изоляция с возможностью преобразования уровней сигналов. У микросхемы две стороны. Каким напряжением сторону запитаешь - такого уровня логика будет. Для одного канала ADuM1100. Для четырех - ADuM14xx.
    Ответ написан
    Комментировать
  • C# GDI+ нарисовать график в 30 000 точек?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Все 30 000 точек строить необязательно.
    В "хороших" графиках в мелких масштабах графики линейны, поэтому можно заменить линейной интерполяцией.

    То есть:
    1. выберем все точки в нужном диапазоне.
    2. далее берем последовательно точки из этого диапазона, только если расстояние по Х до предыдущей превышает deltaXminGraph в пикселях.
    3.Соединяем прямым отрезком предыдущую и текущую точку.

    Имеет смысл для текущего масштаба запомнить/закэшировать используемые точки.

    Но это будет работать, если графики "хорошие"....гладкие....

    Если же присутствует некий шум....всякое шебуршение, импульсы.....то надо сначала отфильтровать его...
    Если же этот шум тоже нужно нарисовать, то тут уже разные варианты появляются.....в зависимости от того что именно интересно....
    Ответ написан
  • Запуск массива байт не работает?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    а "chk.exe" точно .NET сборка?
    а совпадает ли версия .NET Framework?
    ну и разрядность должна совпадать...
    Ответ написан
  • В чём разница указателей и ссылок?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    В том и разница. В синтаксисе.
    С указателями еще можно всякой адресной арифметикой заниматься.

    Мне как программирующем на C# с ссылками работать удобнее, чем разбирать зубодробительный синтаксис с указателями: лучше маленькие такие точечки, а не вот это вот все (*->&)
    Ответ написан
    Комментировать