Метка «c++»

image

Game Engine
Проектируем, пишем, думаем рассуждаем, читаем и многое другое
Внимание: статьи содержат много костылей!
Читать полностью »

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

Взгляд снизу вверх или Ubuntu Server для разработчика электроники. Часть 1 - 1

Статья описывает практику применения описанной техники и не ставит целью охватить все глубины и возможности современной аппаратуры. Это один из вариантов решения поставленной задачи.
Читать полностью »

При заходе в метод мы часто выполняемым проверку на null. Кто-то выносит проверку в отдельный метод, что бы код выглядел чище, и получается что то такое:

        public void ThrowIfNull(object obj)
        {
            if(obj == null)
            {
                throw new ArgumentNullException();
            }
        }

И что интересно при такой проверке, я массово вижу использование именно object атрибута, можно ведь воспользоватся generic-ом. Давайте попробуем заменить наш метод на generic и сравнить производительность.

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

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

Пусть М = некоему набору исторических годов:

int[] M = { 1905,1917,1941,1953,1989,2001,2013,2025,2241 };

Тогда, для него справедлив следующий тест:


//((1))
	// Набор специальных исторических годов M
	static int[] GetSpecialHistoryYears() {
		int[] M = { 1905,1917,1941,1953, 1989,2001,2013,2025,  2241 };
		return M;
	}
	
//((2))
	// Проверяем математические закономерности годов M
	[Test]
	protected void SpecialHistoryYearsMath() {
		int[] M = GetSpecialHistoryYears();
		
		// A и B - индексы массива
		// вкладывая A в B мы получаем возможность брать любую пару в массиве M.
		for( int A = 0; A < M.Length; A++ ) {
			for( int B = 0; B < M.Length; B++ ) {
				// разница любой пары в наборе кратна 12
				Assert.AreEqual( 0, Math.Abs(M[A]-M[B]) % 12, 
				"Expected 12x differrence" );
			}
		}

	}

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

Всем привет! Я часто ищу в просторах интернета «идеальную архитектуру» и несколько месяцев назад наткнулся на интересную реализацию и хотел бы поделится немного дополнив его.

Ссылка на реализацию

Немного модернизации и я получил вполне универсальный рабочий шаблон.

Для всех, кто не знаком с DDD можно начать с wiki.

В конце мы получим связку с DDD + CQRS + Entity Framework + OData + WebApi + Log4Net + Castle Windsor + Kendo UI.
Читать полностью »

Доброго времени суток всем тем кто читает эту статью. Мы будем говорить об Arduino Uno и я проведу маленький урок на примере одного «устройства» — полоска с мигающими светодиодами (два разных алгоритма). Сразу скажу, кто не знал, программировать на Arduino надо на С++ (Cpp).

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

Настройка проекта

В этой статье рассказ пойдет о создании окна и подключение SharpDX-библиотек. Мы будем использовать одну из библиотек SharpDX, а именно SharpDX.Window.
Читать полностью »

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

Разработка платформы для анализа финансовых рынков - 1

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

Долго ли, коротко ли, вместе с новой Visual Studio 2017 в релиз вышел ASP.NET Core. Тулинг лишился приставки preview, как и все инфраструктурные сборки, поставляемые Microsoft'ом. На мой взгляд, фреймворк получился отличным, а история с cjproj=>xproj=>project.json=>csproj и поломанная совместимость при переходе с RC1 на RC2 — это всё же разумная плата за скорость развития. Ну да ладно, опустим дела минувших дней, и вернёмся к текущим реалиям.

А реалии таковы, что есть задачи, и есть инструменты которые их решают. В частности, передо мной встала задача генерирования PDF-документов средствами ASP.NET Core. «Хмм… Наверняка уже есть что-то готовое...», — подумал я. Как бы не так. Вернее готовые библиотеки для этого есть, но платные, а вот чего-то OpenSource'ного нет. «А как же iText?», — спросите вы. «AGPL», — ответит вам страничка с лицензией на гитхабе. Для OpenSource проектов бесплатно, а для коммерческого использования, извольте заплатить. Ну что ж, раз нет инструмента, решающего мою задачу, значит я сделаю его сам.
Читать полностью »