суббота, 1 декабря 2012 г.

Играем в «Быки & Коровы» на Windows Phone

Любите ли вы поезда? Иногда время в пути пролетает как один миг, а бывает, тянется смертельно долго. Старые добрые игры на бумаге помогают развлечь себя в такие моменты. Для путешествий с партнёром идеально подходит замечательная логическая игра «Быки и Коровы».

Правила очень просты: достаточно иметь бумагу и ручку. Один игрок загадывает слово из неповторяющихся букв, а другой должен его отгадать. После каждой попытки, игрок, который загадал слово, говорит, сколько букв угадано на своих местах в слове (быки) и сколько угадано не на своих местах (коровы). Таким образом, через N ходов игрок угадывает слово. Сколько бумаги истрачено в попытках угадать слово! Идея запрограммировать игру пришла там же в поезде. А появление платформы Windows Phone стало удобной возможностью совместить приятное с полезным. Согласитесь, что изучать технологию куда интереснее на живом примере, чем на "hello world".

четверг, 13 сентября 2012 г.

Kinect for Windows SDK. Часть 3. Функциональные возможности

 

Трекинг человеческой фигуры

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


воскресенье, 9 сентября 2012 г.

Kinect for Windows SDK. Часть 2. Потоки данных

Продолжим знакомство с возможностями Kinect. В прошлый раз я обозначил несколько особенностей Kinect, каждая из которых, несомненно, заслуживает отдельной статьи, и совсем не упомянул тружеников, силами которых обеспечивается и распознавание речи и трекинг человека. Задумывались ли вы, в каком виде сенсор передает данные? Что представляет собой этот поток или потоки данных? И если однажды безлунной ночью, в темном переулке к вам подкрадётся маньяк и спросит: «Сколько потоков данных у Kinect на выходе?», не задумываясь отвечайте: «Три!». Видеопоток (Color Stream), Aудиопоток (Audio Stream) и данные дальномера (Depth  Stream). SDK строится на этих потоках. Начнем же и мы с них.


четверг, 6 сентября 2012 г.

Kinect for Window SDK. Часть 1. Сенсор

Три части обзорной статьи можно считать вводными к двум другим: «Играем в кубики с Kinect» и «Программа, апорт!». Хотя хронологически они идут последними. Более того, за время их написания Microsoft успел выпустить новую версию SDK – 1.5. Какой удар со стороны корпорации!

Как вам должно быть известно, Kinect – это бесконтактный контроллер, т.е. скажем в играх, вместо того, чтобы яростно стучать по клавиатуре или терзать gamepad, вы размахиваете руками и ногами и время от времени голосом даете какие-то команды. Самое время спрятать дорогие китайские вазы X века подальше!

четверг, 10 мая 2012 г.

Reference Assistant for Visual Studio 11

Reference Assistant теперь доступен и для Visual Studio 11 Beta. Reference Assistant – это небольшое расширения для Visual Studio позволяющее удалять неиспользуемые ссылки (references) из проектов C#,VB.NET,  F#, VC++/CLI. Его можно установить через Extension Manager или вручную, загрузив с Visual Studio Gallery.

Эта версия (1.1.12130.850) была нацелена именно на поддержку новой Visual Studio,  в следующей версии (1.2) планируется небольшая оптимизация анализа проекта, удаление неиспользуемых ссылок из всего решения (solution), исправление дефектов и др. Следите за новостями на страничке проекта.

вторник, 24 апреля 2012 г.

Программа, апорт!

В прошлой статье я затронул тему работы с Microsoft Kinect for Windows и продемонстрировал возможности сенсора на примере игры в кубики. Замечу, что слежение за фигурой (skeleton tracking) не единственная возможность сенсора, и сегодня мне бы хотелось рассказать о распознавании речи.

вторник, 17 апреля 2012 г.

Играем в кубики с Kinect

Иногда удивительно, как стремительно идет развитие IT-индустрии. Я помню, как еще сравнительно недавно, на одном из семинаров TechDays, Евгений Марченков показывал первые ролики о проекте Natal. Много ли людей помнит это название? Ведь сейчас проект известен как Kinect!

Сенсор был разработан для консоли Xbox 360, а с февраля 2012 года доступен для персональных компьютеров. Не так давно мне представилась возможность оценить сенсор и написать немного кода.

В статье я расскажу о том, как можно написать небольшую игру в кубики. И конечно кубики будут двигаться при помощи рук!

пятница, 21 октября 2011 г.

[PowerShell] Ошибка 80040154 при работе с WebAdministration

Мне нравится время от времени писать на PowerShell. В основном это задачи администрирования и развертывания. В этой заметке я хочу рассказать о решении одной интересной проблемы связанной с работой модуля WebAdministration. Итак, суть проблемы: при выполнении любого командлета из этого модуля возникает ошибка:
Cannot retrieve the dynamic parameters for the cmdlet.
Retrieving the COM class factory for component with CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} failed due to the following error: 80040154.

четверг, 20 октября 2011 г.

Нерекурсивный обход дерева

Когда я был стажером, мой наставник показал мне, как можно обойтись без рекурсии при обходе дерева. У меня была задача, - получить список департаментов организации «X». В организации есть множество департаментов и подразделений с различным уровнем вложенности. Вместо того чтобы рекурсивно сделать обход дерева, он предложил следующее решение: использовать цикл While и две коллекции. Node – это класс, описывающий структуру организации: название, количество служащих, дочерние подразделения, которые также описываются классами Node и т.д.

четверг, 22 сентября 2011 г.

Удаление неиспользуемых сборок из .NET проекта

Когда-то во время учебы в университете, преподаватель, проверяя лабораторную работу по C++, вдруг неожиданно для меня задал вопрос: “А зачем вам здесь #include “%имя_библиотеки%”? Вы можете пояснить, для каких частей кода нужна каждая директива include?” Та директива, что «бросилась ему в глаза», была добавлена при попытке использовать какой-то класс. Класс, видимо, не прижился в лабораторной и его использование было благополучно удалено, а include остался…

Программируя в С#, с использованием Visual Studio, мы так же сталкиваемся с неиспользуемыми директивами using. Но Visual Studio может помочь справиться с проблемой, достаточно для .cs файла вызвать команду “Remove Unused Usings”. Правда есть еще одно место, которое так же не мешало бы время от времени чистить. Это ссылки (References) проекта. Как ни печально, но для C# проекта такой команды нет. В MS Connect даже баг создали по этому поводу. А вот для VB.NET проектов такая функция есть (найти её можно в свойствах проекта), но по злой иронии судьбы для VB.NET проектов нет команды для удаления неиспользуемых Imports (usings в C#) :)

Подогреваемые жаждой сделать полезное коллегам, независимые разработчики решили написать небольшие расширения для Visual Studio. А тут еще и Extension Manager из Visual Studio 2010 так упростил процесс распространения расширений. Пример таких расширений можно найти здесь и здесь. Невозможно судить об алгоритмах, используемых в этих расширениях. Хотя не буду скрывать, что после того как первое расширение бессовестно удалило из проекта приличную часть реально нужных для компиляции сборок, мы все таки посмотрели его рефлектором… Разбираться со вторым уже не стали. В общем-то, проблема одинакова, а ключевое словосочетание можно найти в пред-предыдущем предложении: нужных для компиляции.