Как стать автором
Обновить
37
0.4

net dev

Отправить сообщение

Фильтр Калмана — это легко

Время на прочтение18 мин
Количество просмотров81K


Много людей, в первый раз сталкивающихся в работе с датчиками, склонны считать, что получаемые показания — это точные значения. Некоторые вспоминают, что в показаниях всегда есть погрешности и ошибки. Чтобы ошибки в измерениях не приводили к ошибкам в функционировании системы в целом, данные датчиков необходимо обрабатывать. На ум сразу приходит словосочетание “фильтр Калмана”. Но слава этого “страшного” алгоритма, малопонятные формулы и разнообразие используемых обозначений отпугивают разработчиков. Постараемся разобраться с ним на практическом примере.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+69
Комментарии34

Про новинки в .NET 5 и C# 9.0

Время на прочтение21 мин
Количество просмотров85K
Добрый день.

В нашей компании .NET используется с самого его рождения. У нас в продуктиве работают решения, написанные на всех версиях фреймворка: от самой первой и до последней на сегодняшний день .NET Core 3.1.

История .NET, за которой мы пристально следим всё это время, творится на глазах: версия .NET 5, которую планируют релизить в ноябре, только что вышла в виде Release Candidate 2. Нас давно предупреждали, что пятая версия будет эпохальной: с нею закончится .NET-шизофрения, когда существовали две ветки фреймворка: классический и Core. Теперь они сольются в экстазе, и будет один сплошной .NET.

Вышедший RC2 уже можно начинать полноценно использовать – никаких новых изменений перед релизом больше не ожидается, будет только фикс найденных багов. Более того: на RC2 уже работает официальный сайт, посвящённый .NET.

А мы представляем вам обзор новшеств в .NET 5 и C# 9. Вся информация с примерами кода взята из официального блога разработчиков платформы .NET (а также ещё из массы источников) и проверена лично.
Читать дальше →
Всего голосов 131: ↑131 и ↓0+131
Комментарии152

Aspect Oriented Programming (AOP) через исходный код

Время на прочтение40 мин
Количество просмотров12K


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

Сегодня, в большинстве случаев, внедрение аспектов идёт на уровне байт кода, т.е. после компиляции, некий инструмент «вплетает» дополнительный байт код с поддержкой требуемой логики.

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

Если вам интересно узнать детали, прошу пожаловать под кат.
Читать дальше →
Всего голосов 18: ↑14 и ↓4+16
Комментарии14

Async programming in .NET: Best practices

Время на прочтение24 мин
Количество просмотров36K
Появление async/await в C# привело к пересмотру того, как писать простой и корректный параллельный код. Зачастую, используя асинхронное программирование, программисты не только не решают проблемы, которые были с потоками, но и привносят новые. Дедлоки и рейсы никуда не пропадают — их просто становится труднее диагностировать.



Дмитрий Иванов — Software Analysis TeamLead в Huawei, в прошлом техлид JetBrains Rider и разработчик ядра ReSharper: структур данных, кэшей, многопоточности, регулярный спикер конференции DotNext.

Под катом — видеозапись и текстовая расшифровка доклада Дмитрия с конференции DotNext 2019 Piter.
Всего голосов 30: ↑30 и ↓0+30
Комментарии6

Поддержка анонимных jwt токенов в IdentityServer4 при помощи AnonymousIdentity

Время на прочтение4 мин
Количество просмотров5.3K


Недавно мне потребовалось реализовать поддержку анонимной аутентификации пользователей на основе OpenId Connect и OAuth 2.0 на платформе ASP.NET Core. Здесь не будет объясняться спецификация данных протоколов, для этого есть полно статей на хабре. Перейдем к сути.

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

Навигация в кроссплатформенном приложении на .NET Core с сохранением состояния на диск на примере ReactiveUI и Avalonia

Время на прочтение18 мин
Количество просмотров21K



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


MVVM фреймворк ReactiveUI предлагает сохранять состояние приложения путём сериализации графа моделей представления в момент приостановки программы, при этом механизмы определения момента приостановки различаются для фреймворков и платформ. Так, для WPF используется событие Exit, для Xamarin.Android — ActivityPaused, для Xamarin.iOS — DidEnterBackground, для UWP — перегрузка OnLaunched.


В данном материале рассмотрим использование ReactiveUI для сохранения и восстановления состояния ПО с GUI, включая состояние роутера, на примере кроссплатформенного GUI фреймворка Avalonia. Материал предполагает наличие базовых представлений о шаблоне проектирования MVVM и о реактивном программировании в контексте языка C# и платформы .NET у читателя. Последовательность действий, описанная в статье, применима к ОС Windows 10 и Ubuntu 18. Код проекта, описанного в статье, доступен на GitHub.

Приступим!
Всего голосов 31: ↑30 и ↓1+29
Комментарии0

Умный парсер числа, записанного прописью

Время на прочтение10 мин
Количество просмотров30K


Пролог


Добрый день, уважаемые читатели. В данной статье я расскажу о том, как распарсить число, записанное прописью на русском языке.


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


Для ленивых:
Ссылка на проект github: ссылка.


Читать дальше →
Всего голосов 137: ↑136 и ↓1+135
Комментарии59

ІТ термины на примере процесса выращивания картошки

Время на прочтение7 мин
Количество просмотров99K

image


Недавно меня спросили, чем разработка на C# отличается от разработки на C++. В результате родилась идея объяснить значение тех или иных ИТ терминов на примере процесса выращивания картошки.

Читать дальше →
Всего голосов 98: ↑84 и ↓14+70
Комментарии87

JavaScript-движки: как они работают? От стека вызовов до промисов — (почти) всё, что вам нужно знать

Время на прочтение14 мин
Количество просмотров62K

Вы когда-нибудь задумывались, как браузеры читают и исполняют JavaScript-код? Это выглядит таинственно, но в этом посте вы можете получить представление, что же происходит под капотом.

Начнём наше путешествие в язык с экскурсии в удивительный мир JavaScript-движков.
Читать дальше →
Всего голосов 73: ↑68 и ↓5+63
Комментарии16

Наглядное пособие по устройству микросхемы

Время на прочтение2 мин
Количество просмотров51K


Автора всегда восхищала работа микросхем. Как пластина, некоторые участки которой преднамеренно загрязнены, управляет электронами? И тут внезапно кто-то придумывает наглядное пособие, которое делает принцип действия микросхемы максимально понятным. Именно это произошло на ярмарке самодельщиков в области залива Сан-Франциско.
Читать дальше →
Всего голосов 68: ↑68 и ↓0+68
Комментарии23

Изготовление печатных плат ЛУТ'ом от А до Я

Время на прочтение8 мин
Количество просмотров133K
Доброго времени суток! Среди моих знакомых бытует мнение, что самостоятельно изготавливать печатные платы (ПП) бесполезно. Учитывая, что современные компоненты далеко ушли от DIP корпусов, то кустарно травить платы под них даже и не стоит пытаться. Тем не менее необходимость в быстрой оценке того или иного компонента всегда есть, и ждать несколько суток заказанной платы времени нет. И это учитывая, что заказ за «несколько суток» дорог, для одноразовой задачи.

В данной статье я хочу изложить порядок действий, которые позволят быстро изготавливать ПП под компоненты в корпусах подобных TQFP-100, то есть с ногами 0,2мм и таким же зазором, и при этом сводить брак к минимуму.

Конечно это способ изготовления плат только для прототипов, но он снижает риски ошибиться при создании конечного устройства.

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

Под катом подробности и трафик.
Подробности
Всего голосов 88: ↑86 и ↓2+84
Комментарии86

Обзор самых интересных докладов DotNext 2018: версия EastBanc Technologies

Время на прочтение6 мин
Количество просмотров4.6K
Привет, хабровчане!

Мы вернулись с конференции для .NET-разработчиков DotNext и честно делимся впечатлениями про самые запомнившиеся доклады. Надеемся, наш отзыв пригодится тем, кто будет смотреть видеозаписи выступлений.

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


Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии7
2

Информация

В рейтинге
2 032-й
Зарегистрирован
Активность

Специализация

Backend Developer
C#
.NET
Entity Framework
ASP.Net
Java