Как стать автором
Обновить
30
0
Андрей Данилов @Andy_Ion

C# dev

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

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

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


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

Читать дальше →
Всего голосов 81: ↑78 и ↓3+75
Комментарии63

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

Время на прочтение7 мин
Количество просмотров52K
Привет, Хабр.

Наверное каждый разработчик на определенном этапе задумывался о собственном 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-образ, но особого смысла в этом нет — инструмент сделает это за вас.
Читать дальше
Всего голосов 21: ↑18 и ↓3+15
Комментарии8

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

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

image


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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



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


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

Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии55

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

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



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

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

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

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

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

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

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

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

Время на прочтение11 мин
Количество просмотров100K
С выходом .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.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии5

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

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

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


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

Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии34

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров23K
image

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

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

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

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


Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии6

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

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

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

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

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

Время на прочтение8 мин
Количество просмотров56K
image

Предисловие



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

Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии74

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

Время на прочтение3 мин
Количество просмотров17K
Наверное, дайджест, посвященный Unity, вы ждали с нетерпением, но, даже если не ждали, в нем всё равно много интересных материалов и новостей.


Читать все
Всего голосов 12: ↑11 и ↓1+10
Комментарии4

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

Время на прочтение4 мин
Количество просмотров24K
Доброго дня хабр. Это моя первая статья на хабре, не судите строго.

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

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

Время на прочтение13 мин
Количество просмотров81K
От переводчика
Привет, Хабр!

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

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

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


image

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


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

Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии9

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

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


Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии2

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

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


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

Информация

В рейтинге
Не участвует
Откуда
Лазаревское, Краснодарский край, Россия
Дата рождения
Зарегистрирован
Активность