Рубрика «C#» - 37

MessageBox — useful window for different GUI frameworks, but you can't find it in AvaloniaUI. Let's try to do it.
MessageBox for AvaloniaUI - 1
Читать полностью »

image Single responsibility principle, он же принцип единой ответственности,
он же принцип единой изменчивости — крайне скользкий для понимания парень и столь нервозный вопрос на собеседовании программиста.

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

В лесу нас разделили на группы по 8-9 человек в каждой и устроили соревнование — какая группа быстрее выпьет бутылку водки при условии, что первый человек из группы наливает водку в стакан, второй выпивает, а третий закусывает. Выполнивший свою операцию юнит встает в конец очереди группы.

Случай, когда размер очереди был кратен трем, и являлся хорошей реализацией SRP.

Читать полностью »

15-16 мая прошла конференция DotNext 2019 Piter. Погода в Санкт-Петербурге стояла необыкновенно тёплая. Горожане недоверчиво глядели на странный жёлтый шар в непривычно синем небе и всё никак не могли решить, пора ли уже переходить на летнее пальто. А конгресс-центр гостиницы Park Inn Пулковская открыл двери для посетителей самого большого события в российском дотнете. Вспоминаем, как это было.

DotNext 2019 Piter: небольшой отчёт - 1
Читать полностью »

Привет, глубокоуважаемые!

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

Если в вашей душе от этих слов что-то колыхнулось, добро пожаловать под кат, в темные воды нашего пруда!

Как увидеть реверберацию или передача видео звуком через воду — 2 - 1
Читать полностью »

То, о чем написано в статье, я отлавливал около 10 часов, это были 10 часов непрерывного дебага, которые cвелись к пошаговому сравнению рабочей и нерабочей версий кода, даже не так, к сравнению каждой строчки из окошка дебага рабочей и не рабочей версий кода

Читать полностью »

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

Пролог

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

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

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

Читать полностью »

Make it True — Разработка логической игры на Unity - 1

Хочу поделиться процессом разработки простой мобильной игры силами двух разработчиков и художника. Данная статья в большей мере состоит описания технической реализации.
Осторожно, много текста!

Статья не являются руководством или уроком, хотя надеюсь что читатели смогут вынести что то полезное из нее. Рассчитано на разработчиков знакомых с Unity имеющих некоторый опыт в программировании.
Читать полностью »

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

В этой статье мы изложим технические детали, как работает другой инструмент слежки за школьниками: ExamCookie. Если вас интересует только обход системы, пролистайте вниз до соответствующего раздела.
Читать полностью »

Давайте отложим разговоры о DDD и рефлексии на время. Предлагаю поговорить о простом, об организации настроек приложения.

После того как мы с коллегами решили перейти на .NET Core, возник вопрос, как организовать файлы конфигурации, как выполнять трансформации и пр. в новой среде. Во многих примерах встречается следующий код, и многие его успешно используют.

public IConfiguration Configuration { get; set; }
public IHostingEnvironment Environment { get; set; }

public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
   Environment = environment;
   Configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .AddJsonFile($"appsettings.{Environment.EnvironmentName}.json")
            .Build();
}

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

Читать полностью »

«Если суть работы программиста в автоматизации работы других людей, то почему моя работа так мало автоматизирована» — думал я, копируя в очередной раз всю необходимую в проекте обвязку для добавления новой сущности в БД. И решил избавиться от этой рутины по добавлению шаблонных классов, сделав заодно «хорошо» проекту, разгрузив БД от лишних операций чтения.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js