• Event - это value или reference type в C#?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    event так относится к экземпляру делегата ( Станислав Макаров : мультикаст ), как property относится к значению поля.

    event - это синтаксический сахар, обертка для методов add и remove, как property является оберткой к методам get и set.

    Таким образом, вопрос некорректен, поскольку event не тип.
    Ответ написан
    6 комментариев
  • C# асоциативные массивы?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    А обязательно хранить?

    public class Id: UInt32{}
    public class Name: string{}
    public class Value: double{}
     
    public class IdNameValue
    {
        public Id id{get;set;}
        public Name name {get; set;}
        public Value value {get; set;}
    }
    
    IEnumerable<IdNameValue> idNameValues = Create();
    
    var idNameValuesWhereValueIsNaN = idNameValues.Where(item=>double.IsNaN(item.value));
    Ответ написан
    Комментировать
  • Какие есть капли от глазного давления или как ухаживать за ними?

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

    Повышенное глазное давление - это несколько другое. Я погуглил: через глаз постоянно проходит жидкость. Есть капилляры по которым жидкость приходить, есть - по которым уходит. Если отвод затруднен, то наблюдается повышенное глазное давление. Но это определяется специальными методами в больнице. Самому себе диагнозы ставить - последнее дело.

    В любом случае, если проблема уже заметна, то стоит сходить к врачу, он даст более грамотные рекомендации или направит на лечение при необходимости.
    Ответ написан
    Комментировать
  • Можно ли одновременно системный блок ПК занулить и заземлить?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    А как вы распознаете где ноль, зануляя внутри корпуса системный блок? А если после переноса/чистки компьютера вы розетку подключите не так как она была раньше? В этом случае при включение вилки системного блока в розетку фаза попадет на корпус, а значит соединится с заземлением и вы по дому по заземлению эту фазу пустите, а значит по батарее в том числе.

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

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    вы нигде не принимаете ответ
    вместо
    byte[] inCommand = new byte[s.Available];
    нужно что-то типа
    var bytes = 0;
    var sb= new StringBuilder();
    var bytesReceived = new byte[256];
    do 
    {
        bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
        sb.Append(Encoding.UTF8.GetString(inCommand));
    }
    while (bytes > 0);
    var rzz=sb.ToString();


    Еще лучше использовать асинхронное взаимодействие. Между запросом и ответом может пройти существенное время и ответа может вообще не прийти. Во время ожидания программа может делать что-то полезное (а не делать вид, что зависла), например, помахать интерфейсом или обратиться к другому серверу/сокету.
    Ответ написан
  • Что делает техник-программист?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Когда-то тоже заинтересовался этим вопросом. Нашел такое мнение и успокоился на нем:
    В советское время ЭВМ были большие и требовали особого обслуживания. Загрузка перфокарт, текущее обслуживание, небольшой ремонт и т.д.
    Вот этим и занимался техник-программист. Что-то типа обслуживающего персонала у вычислительной машины со средне профессиональным образованием.
    А инженеры-программисты занимались почти наукой. Образование - высшее. И отношение было соответствующее.

    К настоящему времени техники-программисты превратились в системных администраторов. Системное администрирование в силу общирности области и своей сложности также требует высшего образования, хотя у меня есть пара знакомых, которые работают сисадминами, не закончив институт, по сути "эникейщики/тыжпрограмисты", но это понятное дело совсем другие люди по сравнению с теми, кто обслуживает современные дата-центры.
    Ответ написан
  • В каком возрасте вы прочитали GOF паттерны?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    с 20 до 27 лет работал схемотехником...программировал в школе, институте, на работе под микроконтроллеры и для ПК простые приложения для взаимодействия с микроконтроллерами.
    В 27 стал работать С#-программистом и GOF-книгу прочитал в 29. Нового почти не узнал, узнал названия тех вещей, которыми занимался. =)
    Ответ написан
    Комментировать
  • Почему не используют шары с гелием для квадрокоптеров?

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

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

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Есть яндекс.карты, яндекс-пробки...API-открыт.
    Можно поиграться на этом поле: построение маршрута, прогноз пробок, оптимизация светофоров.

    Еще интересная тема с математикой: колоризация ч/б изображений и видео. С подсказками, без подсказок, с автоматическим поиском подсказок в интернете (поиск изображений сходного сюжета, гугл вроде какой-то такой сервис предлагал).

    Обработка изображений со спутников. Мониторинг лесных, водных ресурсов (пожары/наводнения), динамика/прогноз.
    Ответ написан
    1 комментарий
  • Как найти все соседние клетки одинакового типа в двумерном массиве?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Представим, что двумерный массив - это граф, где каждая клетка - это узел. Данные узла: его координаты, цвет, массив ссылок на соседей, булево значение посещен/не посещен.

    Отметить все узлы непосещенными.
    На вход алгоритма подается узел графа.
    Процедура P:
    1. Выдать координаты входного узла.
    2. Пометить входной узел посещенным.
    3. Применить процедуру Р ко всем непосещенным соседям такого же цвета.

    Необязательно строить граф явно. Можно соседей получать непосредственно в процедуре Р. Для "посещен/не посещен" нужна какая то быстрая и компактная структура данных, в которую можно быстро записать координаты клетки и быстро проверить: записывались ли раньше какие-либо координаты.
    В простейшем случае - это булев двумерный массив того же размера, что и исходный. Но в зависимости от исходных данных и ограничений, другие способы могут быть более подходящими.
    Ответ написан
  • Сколько ветвей в цепи?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    По определению: ветвь - это участок электктрической цепи по которой протекает один и тот же ток.
    Участки 1-2 и 1-3 тоже ветви. По ним протекает один и тот же ток.
    Серожа none : маленькую жёлтенькую стрелочку внизу посередине можно не считать. С точки зрения топологии концы этой ветви - это один и тот же узел. Хотя при большом желании можно и ее посчитать (к определению подходит), но это ничего не даст для вычисления параметров остальной схемы. Эта "ветвь" вырождена: разность потенциалов - ноль, сопротивление - ноль. Ток может быть любым. Ну не любым, конечно, он определяется с помощью первого закона Киргофа, но уже потом (бывают такие задачи, когда между этими узлами ставять амперметр и нужно узнать, какую величину тока он покажет).
    Ответ написан
    Комментировать
  • Как реализовать клиент-серверное взаимодействие с собственным удостоверяющим центром сертификации?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov Автор вопроса
    Я подозреваю вот решение на мой вопрос. Пока вопрос формулировал, уже понял что нужно гуглить...
    Ответ написан
    Комментировать
  • Как упростить код с lambda-операциями?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Expression<Func<Catalog, bool>> filter = x => (userId==null || x.UserPtr == userId) && x.IsPublished;
    Ответ написан
    2 комментария
  • Что необходимо знать чтобы понять что здесь (на картинке)?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Там же все написано. Модульный электроэнцефалограф (ЭЭГ). На верхней картинке - изолированный модуль микроконтроллера с аналогоцифровым преобразователем. На нижней картинке - 2х-канальный усилительный модуль ЭЭГ.
    Для того, чтобы это узнать, достаточно знания английского языка.

    Если почитать даташиты на используемые микросхемы (подписанные прямоугольники с большим, чем два, количеством контактов) или просто из опыта рисования/чтения схем понятно, что на первой картинке слева - микроконтроллер со своей обвязкой, справа сверху - блок питания, справа снизу - интерфейс RS-232.

    На второй картинке (читаем подписи) - два канала обработки измеряемых сигналов, которые состоят из (слева-направо): защита от статики с ограничением тока, усилитель с постоянным коэффициентом усиления 12.2, усилитель с переменным коэффициентом усиления с G=6...100, фильтр Бесселя 3го порядка с частотой Fc=59Гц (подозреваю, что он тут нужен, чтобы срезать сетевые наводки).

    Снизу на второй картинке еще один канал....калибровочный.

    Проще всего при чтении схемы идти от задачи, выделить крупные блоки, а затем все более детализироваться до необходимого уровня.
    Ответ написан
    3 комментария
  • Решил написать библиотеку.Вроде ошибок нету, но при тестировании говорит, что индекс находиться вне границ массива.Как исправить???

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Это шутка такая? Я более отвратительного кода в жизни не видел.
    Это из цикла:
    - где ошибка?
    - в днк...
    Ответ написан
    Комментировать
  • Как уловить сигнал мозга? Или как сделать brain controller?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    https://ru.m.wikipedia.org/wiki/Электроэнцефалография
    Нужно измерить потенциалы нескольких точек на голове относительно уха (например). Эти сигналы будут косвенно указывать на активность или неактивностб мозга. Вот что потом с этими сигналами делать. Классификатор какой-то нужен.
    Ответ написан
    Комментировать
  • Как сделать программу написанную на C++\CLR чтобы она работала, как обычное приложение, без глюков?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Если программу скомпилировать как х64, то она не будет работать на х86. Если программу скомпилировать как х32 или как AnyCPU, то по логике она запустится и на х64 и на х32, с разными компромиссами по быстродействию.

    Есть еще нюансы.

    Не используйте абсолютные пути для хранения данных программы. Пользуйтесь помощью .NET, который вам даст и папку для временных фалов, и папку для хранения данных приложения, и текущую папку, и папку текущего пользователя, и много другого.

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

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

    И самое главное: тестируйте, тестируйте, тестируйте везде, где бы вы хотели, чтобы ваша программа работала.
    Ответ написан
    Комментировать
  • Стоит ли так делать для своего проекта?

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