Pull to refresh
30
0
Андрей Данилов @Andy_Ion

C# dev

Send message

RC Машинки: Введение

Reading time4 min
Views33K


Всем привет, сегодня я бы хотел рассказать вам об RC Cars, машинках на радиоуправлении. Это хобби и достаточно веселое. Лично для себя я нахожу в нем хоть какую-то долю реальности. Сидеть целыми днями клепать кнопочки на Backbone и React уже стало рутиной и надо это дело как-то разбавлять. Меня всегда тянуло к железу, роботам — к конструированию. Это конечно так или иначе пересекается с разработкой, но суховато. Сложно сказать, почему я купив raspberry pi почти 4-5 лет назад на нем так ничего и не сделал кроме простых hello world'ов. А у меня их два.
Но так или иначе теперь у меня есть настоящая железка, не только из кремния но и алюминия, карбона и пластмассы весом +5кг которая носится быстрей чем я даже хотел. Это первая статья из небольшого цикла, в ней я вкратце пройдусь по миру RC машинок. Далее будет уже конкретно по деталям, их свойствам, как собрать, обращаться и хранить свое творение.

Читать дальше →
Total votes 81: ↑78 and ↓3+75
Comments63

Не IoT, а малина! Строим IoT-проект на Raspberry Pi с Windows 10 и DeviceHive

Reading time7 min
Views52K
Привет, Хабр.

Наверное каждый разработчик на определенном этапе задумывался о собственном IoT-проекте. Internet of Things сейчас поистине вездесущ и многим из нас хочется попробовать свои силы. Но не все знают, с чего начать и за что браться в первую очередь. Сегодня давайте посмотрим, как легко и непринужденно запустить свой собственный IoT-проект под Raspberry Pi 2, используя Windows 10 IoT Core и DeviceHive.

Деплоим Windows 10 приложения на Raspberry Pi 2


Для начала давайте установим Windows 10 IoT Core на Raspberry Pi. Для этого нам потребуется Windows 10 IoT Core Dashboard, который можно взять вот здесь. Там же можно при желании скачать отдельно ISO-образ, но особого смысла в этом нет — инструмент сделает это за вас.
Читать дальше
Total votes 21: ↑18 and ↓3+15
Comments8

Vue.js + Asp.Net Core MVC + TypeScript и ещё Bootstrap4

Reading time11 min
Views32K

image


По стандартному шаблону Asp.Net Core MVC в Visual Studio 2017 создаем новый проект, переводим его на четвертый Bootsrtrap, встраиваем туда модульное приложение Vue.js на TypeScript.


Получаем простую, обозримую и легкую заготовку для создания своих веб-приложений на VS2017 с использованием Vue.js и TypeScript. Привычная среда разработки, в которой можно выполнять большую часть кодинга и отладки, а также быстрая пересборка приложения, делают работу вполне комфортной.


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


Материал рассчитан на способных управиться с VS2017 и знакомых с прогрессивным JavaScript фреймворком Vue.js.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments2

Создаем микросервисную архитектуру вместе с Apache Kafka и .NET Core 2.0

Reading time10 min
Views82K

Доброго времени суток! Apache Kafka – очень быстрый распределенный брокер сообщений, и сегодня я расскажу как его “готовить” и реализовать с его помощью простую микросервисную архитектуру из консольных приложений. Итак, всем, кто хочет познакомиться с Apache Kafka и опробовать ее в деле, добро пожаловать под кат.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments28

MVVM: полное понимание (+WPF) Часть 1

Reading time8 min
Views282K
В настоящей статье задействован мой опыт доведения некоторого числа студентов до полного и окончательного понимания паттерна MVVM и реализации его в WPF. Паттерн описывается на примерах возрастающей сложности. Сначала теоретическая часть, которая может использоваться безотносительно конкретного языка, затем практическая часть, в которой показано несколько вариантов реализации коммуникации между слоями с использованием WPF и, немножко, Prism.

Зачем вообще нужно использовать паттерн MVVM? Это ведь лишний код! Написать тоже самое можно гораздо понятнее и прямолинейнее.

Отвечаю: в маленьких проектах прямолинейный подход срабатывает. Но стоит ему стать чуть больше — и логика программы размазывается в интерфейсе так, что потом весь проект превращается в монолитный клубок, который проще переписать заново, чем пытаться распутать. Для наглядности можно посмотреть на две картинки:
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments53

Кроссплатформенная новогодняя демка на .NET Core и Avalonia

Reading time3 min
Views27K

"ААА! Пришло время переписывать на .NET Coreǃ", говорили они, WPF в комментариях обсуждали. Так давайте же проверим, можно ли написать кросс-платформенное GUI приложение на .NET / C#.



Новогоднее настроение навеяло идею сделать анимацию падающего снега. Были такие демки под DOS, горящий огонь, фракталы, снежок, падающий на ёлочку, и так далее.


Как увидим ниже, это не только весело, но и позволит испытать ключевой функционал UI фреймворка. Поехали!

Читать дальше →
Total votes 55: ↑52 and ↓3+49
Comments55

Git: советы новичкам – часть 1

Reading time8 min
Views141K
В Playrix приходит много новых сотрудников и большинство из них не работали с Git. Особенно это касается гейм-дизайнеров и художников. Хотя и для программистов это не редкость – опыт работы с другими системами контроля версий не слишком помогает. Например, часто встречается опыт работы с SVN. Но Git заметно отличается по идеологии. Заучить, какие кнопки нажимать, в большинстве случаев не сложно, но шаг в сторону – и уже трудно понять, что происходит.



Поэтому мы решили написать ознакомительный материал. Мы поговорим о системе контроля версий и логике её работы, с самых азов. С Git можно работать с помощью  разных клиентов, потому в статье не пойдет речь об интерфейсе пользователя. Это может показаться непривычным, но это сделано намеренно. Вместо этого мы сфокусируемся на рабочем каталоге, коммитах, ветках, командах pull, push и прочих. Когда вы разберетесь в этих понятиях, вам останется выбрать один из Git-клиентов и освоить его интерфейс.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments45

Туториал по Unreal Engine. Часть 1: знакомство с движком

Reading time12 min
Views665K
image

Unreal Engine 4 — это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved, Tekken 7 и Kingdom Hearts III.

Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.

В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:

  • Установка движка
  • Импорт ассетов
  • Создание материалов
  • Использование Blueprints для создания объектов с простейшими функциями
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments10

Задачи и отмена в .Net — tips & tricks

Reading time11 min
Views100K
С выходом .NET Framework 4.0 в состав BCL была добавлена библиотека Task Parallel Library (TPL), реализующая параллелизм на основе задач. В основе библиотеки лежат типы Task и унаследованный от него тип Task. Эти типы являются обёртками для асинхронных операций; они позволяют абстрагироваться от таких технических деталей, как, например, потоки и синхронизировать асинхронные операции друг с другом.

В этой же версии .NET Framework появился мини-framework для кооперативной отмены асинхронных операций. Состоит он из всего трёх типов:
  • CancellationTokenSource — создаёт маркёры отмены (свойство Token) и обрабатывает запросы на отмену операции (перегруженные методы Cancel/CancelAfter).
  • CancellationToken — маркёр отмены; позволяет несколькими способами отслеживать запросы на отмену операции: опросом свойства IsCancellationRequested, регистрацией callback-функции (через перегруженный метод Register), ожиданием на объекте синхронизации (свойство WaitHandle).
  • OperationCanceledException — исключение, выброс которого по соглашению означает, что запрос на отмену операции был обработан и операция должна считаться отменённой. Предпочтительный способ генерации исключения — вызов метода CancellationToken. ThrowIfCancellationRequested.

Механизм отмены через CancellationToken является стандартным для TPL — есть перегрузки методов, принимающих CancellationToken, исключения OperationCanceledException специальным образом обрабатываются и т.д. Однако, как и в любом другом API, есть свои тонкости, хитрости, best practices.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments5

Yield: что, где и зачем

Reading time6 min
Views93K

Сообщество .Net разработчиков замерло в ожидании выхода C# 7.0 и новых фич которые он принесет. Каждая версия языка которому уже в следующем году исполнится 15 лет принесла с собой что-то новое и полезное. И хотя каждая фича достойна отдельного упоминания, сегодня я хочу поговорить о ключевом слове yield. Я заметил, что начинающие разрабочики (и не только) избегают его использования. В этой статье я постараюсь донести преимущества и недостатки, а также выделить случаи, когда применение yield целесообразно.


yield создает итератор и позволяет нам не писать отдельный класс когда мы реализуем IEnumerable. C# содержит два выражения использующих yield: yield return <expression> и yield break. yield может применяться в методах, операторах и свойствах. Я буду говорить о методах, так как yield работает везде одинаково.

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments34

Dynamic DNS на C# и Яндекс.API

Reading time4 min
Views11K
Сегодня, помимо моего любимого занятия (возиться с Arduino в моем кружке детского творчества), решил я поставить себе сервер (Windows 2012 r2) и использовать его для различных манипуляций. Изучив тонну информации, всё прошло гладко.

Когда, закончил экспериментировать в локальной сети, у меня появился вопрос: «Как можно увидеть свой сервер из внешней сети, если у меня динамический IP». Снова помогла всемирная книга знаний и были найдены такие сервисы, как DynDNS, no-ip и т.п.

После регистрации увидел, что нужно качать прогу (в роутере настроек под dyndns нет), а как добросовестный параноик, я не люблю ставить сторонний софт. Вспомнив, что имею при себе домен второго уровня делегированный на Яндексе, принялся изучать сторону вопроса, для написания своего софта на C#.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments21

Почему выгорание истощает продуктивность (и как с ним бороться)

Reading time5 min
Views23K
image

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

Нереальность достижения цели без потери сил и времени — это ключевая идея нашей рабочей культуры. И создается ощущение, что слишком усердной работы не существует. 80-часовая рабочая неделя, проверка электронной почты в 3 утра, ночные сверхурочные ради запуска проекта — подобные поступки кажутся необходимыми и даже похвальными.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments15

Удлинение геймплея и создание реиграбельности

Reading time4 min
Views14K
Иногда игра, над которой вы/ты работал/ли, оказалась слишком короткой и вам в голову просто вбилось, что нужно её растянуть. Какими способами это можно сделать? Почему удлинение игрового процесса схожа с реиграбельностью? Да потому что они оба преследуют цель, чтобы в игру играли как можно больше. Заранее предупрежу, что это не всегда хорошая идея, удлинять геймплей игры.


Читать дальше →
Total votes 16: ↑11 and ↓5+6
Comments6

Настройка UEFI Dual Boot системы, приправленной rEFInd

Reading time12 min
Views227K

КДПВ. Бут-менеджер rEFInd с темой оформления Regular.

На сегодняшний день практически все уже слышали про технологию UEFI. Говорить о том, что это такое и зачем оно нужно, я не собираюсь. Сегодня я бы хотел описать простейший сценарий установки Dual Boot системы с полной поддержкой UEFI, а также рассмотреть отдельно установку и настройку бут-менеджера rEFInd. Возможно вы уже видели подобные мануалы и гайды, но я постараюсь донести весьма доходчиво суть того, что мы будем делать и зачем. В других мануалах вы лишь смотрите за «магией» картежника и пытаетесь её повторить, делая, зачастую, элементарные ошибки. Кому эта тема интересна — прошу под кат.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments64

WiFi-чайник в домашних условиях, или как сделать обычный чайник по-настоящему умным

Reading time8 min
Views56K
image

Предисловие



Если вы читали мою предыдущую статью (Бегущая строка на Arduino), то наверняка уже знаете, что у нас в университете есть возможность делать аппаратные курсовые проекты. И я, вдохновлённый предыдущей своей работой, решил ещё раз попробовать сделать что-нибудь своими руками. Только теперь тема должна была быть посерьёзнее. Кстати, думать о том, что сделать, я начал ещё на зимних каникулах, то есть до начала семестра. Хотелось сделать что-нибудь интересное и полезное одновременно.

Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments74

Дайджест новостей из мира разработки на Unity

Reading time3 min
Views17K
Наверное, дайджест, посвященный Unity, вы ждали с нетерпением, но, даже если не ждали, в нем всё равно много интересных материалов и новостей.


Читать все
Total votes 12: ↑11 and ↓1+10
Comments4

Генерация шейдеров GLSL, HLSL, Metal

Reading time4 min
Views23K
Доброго дня хабр. Это моя первая статья на хабре, не судите строго.

В данной статье я хотел-бы рассмотреть тему генерации кода шейдеров для разных платформ, а также их оптимизацию.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments13

Unity и MVC: как прокачать разработку игры

Reading time13 min
Views81K
От переводчика
Привет, Хабр!

Я ненастоящий сварщик и перевод статьи дался мне тяжело, поэтому я назову его вольным — заранее очищу совесть, если где-то слишком сильно перефразировал оригинал. Буду рад указаниям на ошибки перевода, грамматики и т.п. в личку.

Перевод публикую с разрешения сайта Toptal, где выложен оригинал автора Eduardo Dias da Costa.

Обычно программисты знакомятся с профессией, начиная с Hello World. Затем ставят всё большие и большие цели и каждая новая задача приводит к важному уроку: чем больше проект, тем запутаннее код.


image

И в больших, и в маленьких командах никто не кодит так, как ему вздумается. Код должен быть поддерживаемым и расширяемым. Ведь компания, в которой ты работал, не обращается к тебе всякий раз, когда потребуется исправить баг или улучшить код. Да и ты вряд ли этого хочешь.


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

Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments9

Введение в программирование шейдеров: часть 2

Reading time8 min
Views23K
Научившись писать шейдеры, вы сможете максимально эффективно использовать всю вычислительную мощь современных графических чипов, тысячи ядер которых работают параллельно в одном потоке, ведь все шейдерные вычисления производятся на GPU, а не на CPU. Программирование шейдеров требует другого мышления и подхода к написанию кода, нежели написание обычных программ, однако их практически безграничный потенциал с лихвой окупает все проблемы на начальных этапах.


Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments2

История о разработке Космосима на Unity

Reading time14 min
Views34K
В своей статье я постараюсь описать свой опыт создания игры за две недели, начиная от выбора жанра и сеттинга, заканчивая финальными титрами, а так же все грабли, на которые я наступил в процессе разработки, и на которые мне больше наступать не хочется. Тем, кто имеет достаточно большой опыт в разработке игр, статья скорее всего будет неинтересна, но начинающие разработчики, думаю смогут найти что-то интересное для себя.


Название — та часть игры, работа над которой была отложена на самый последний момент. В итоге ничего стоящего придумать, к сожалению, не удалось.
Узнать историю
Total votes 35: ↑32 and ↓3+29
Comments19
1
23 ...

Information

Rating
Does not participate
Location
Лазаревское, Краснодарский край, Россия
Date of birth
Registered
Activity