• Программируем графику на Direct3D 11 в среде .NET (часть 1)

      1. Основы программирования 3D графики и отличия фиксированного и программируемого конвейеров
      2. Game loop, различные подходы к организации цикла рендера и обработки логики в играх
      3. Трансформации, проекции и передача параметров в шейдеры
      4. ???


      Я решил немного изменить план, и сразу же после описания теоретической части давать примеры кода.

      Процесс отрисовки



      Чтобы видеокарта что-то могла показать, сначала в нее надо загрузить 3D-сцену. В простейшем случае, сцена представлена набором треугольников, каждый из которых имеет, соответственно, три вершины. Вершина может быть и общей для нескольких треугольников. Данные вершин и треугольников загружаются в видеокарту в виде массивов (буферов), минимально необходимая информация для буфера вершин — это координаты вершины в пространстве (X,Y,Z). И если мы хотим рисовать треугольники, нужен еще буфер индексов — перечисление номеров в загруженном нами буфере вершин, описывающих треугольники.

      Рассмотрим простейший пример: мы хотим нарисовать один треугольник. Для упрощения, я изобразил его на плоскости, не используя Z координату.
      Читать дальше →
    • Программируем графику на Direct3D 11 в среде .NET

      Этой статьей начинаю серию уроков по программированию 3D графики с использованием Direct3D 11 в среде .NET.

      В этой части (пусть это будет часть 0) предыстория. План на следующие части такой:
      1. Основы программирования 3D графики и отличия фиксированного и программируемого конвейеров
      2. Game loop, различные подходы к организации цикла рендера и обработки логики в играх
      3. Трансформации, проекции и передача параметров в шейдеры
      4. ???


      Статьи рассчитаны на подготовленного программиста, знакомого с платформой .NET в общем и языком C# в частности. Объяснения будут даваться только по специфичным для 3D графики концепциям.

      Итак, часть первая
    • Работа с Command Line в .Net

      Добрый день сообщество,

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

      Мне кажется, что этой, на первый взгляд, банальной теме уделяется мало внимания. В этой статье я хотел бы поделится опытом работы с Command Line в .Net.
      Читать дальше →
    • «Паскалевская графика на HTML5» или «Что Opera сделала с Rainbow Dash»

        Увидел на тематическом сайте, посвящённом сериалу My Little Pony код на Turbo Pascal, использующий старинный модуль Graph и рисующий нескольких персонажей.

        Код содержал только вызовы функций и комментарии, javascript отлично его парсил. Осталось только дописать свои графические функции.

        Финальная версия
        Читать дальше →
      • Клиентская аналитика: Большой Брат знает, что ты купишь завтра и когда сменишь провайдера

          Если вы знаете, что один из ваших клиентов завтра проснётся с мыслью о покупке нового планшета — можно уже сегодня прислать ему письмо с кодом на скидку. Если вы понимаете, что по всем признакам клиент собирается перейти к другому провайдеру, можно повысить ему скорость, снизить цену или предложить что-то ещё. Это клиентская аналитика.

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

          Именно так выглядит Data Mining в клиентской аналитике. И именно так это уже работает на практике в сотнях крупных компаний по всему миру и в нашей стране.



          Читать дальше →
        • Набор полезных утилит и библиотек мира .NET

            Довольно часто так бывает что кто-то когда-то сделал прекрасную вещь, а она либо никем так и не была найдена, либо быстро забыта. Потихоньку я буду стараться предоставлять в серии топиков информацию по различным проектам, на которые стоит обратить внимание. Многие из них специфичны. И тем еще более интересны.

            IL Stub Diagnostic Tool



            IL заглушки (stubs) динамически генерируются во время работы приложения на лету и управляют маршаллингом и вызовом целевого метода. IL Stub Diagnostic tool была создана чтобы улучшить качество отладки приложений. Это real-time монитор, который показывает детали каждой IL заглушки, создаваемой в исследуемом процессе. Для каждой заглушки утилита показывает ее IL код и сигнатуры Managed/Unmanaged методов
            Читать дальше →
          • Библиотека для регистрации и отлова нажатий 'горячих' комбинация клавиш

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

              Пример использования

              HotKeysManager manager = new HotKeysManager();
              manager.AddHotKey(new HotKeyCombination(() => { MessageBox.Show("Привет, Хабр!"); }) { Keys.LControlKey, Keys.H });
              

              Другой вариант добавления, где в качестве комбинации берутся текущие нажатые клавиши, удобно в случае когда пользователь назначает комбинацию сам. В демке есть пример подобной записи комбинаций.
              manager.AddHotKey(new HotKeyCombination(HookManager.CurrentDownedKeys.ToArray(), () => { MessageBox.Show("Привет, Хабр!"); }));
              


              Теперь при нажатии комбинации LeftCtrl+H (или H+LeftControl), мы увидим приветственное сообщение.
              Читать дальше →
              • +21
              • 4.8k
              • 4
            • FreeNAS Legacy (0.7) умер. Да здравствует NAS4Free!

                Развод, начавшийся в конце января 2012 года, закончился созданием нового проекта на старых кодах.
                Начало истории можно прочесть здесь. Все перепетии развода отражены на форуме FreeNAS

                NAS4Free основана на кодах FreeNAS 0.7 и FreeBSD 9.0. Но на официальном сайте вы не найдете упоминания FreeNAS ибо таково было требование компании IX systems.

                NAS4Free уже можно скачать с официального сайта NAS4Free.
                • +9
                • 17.7k
                • 4
              • WPF: конвертеры как MarkupExtension

                  Конверторы являются одной из важнейшей особенностью механизма привязки в WPF. Они позволяют управлять тем, как источник привязки будет представлен в UI. В данной статье я покажу, как немного упростить использование конвертеров в XAML коде.
                  Читать дальше →
                • Обновление Windows Phone SDK 7.1.1: 256 Мб устройства и Windows 8

                    Обновление Windows Phone SDK 7.1.1, позволяющее разрабатывать для устройств с 256 Мб памяти, и под Windows 8, доступно для загрузки.

                    Поддержка разработки устройств с 256 Мб памяти, позволяет разработчикам уже сейчас начать адаптировать свои приложения для этого типа устройств, предназначеных для массового рынка. С другой стороны, есть возможность указать, что ваше приложение будет работать только на 512 Мб памяти.
                    Читать дальше →
                  • Каким ресурсом вы пользуетесь при поиске работы?

                       

                      Only registered users can participate in poll. Log in, please.

                      Каким ресурсом вы пользуетесь при поиске работы?

                      • 68.6%HeadHunter2534
                      • 15.9%Job.ru589
                      • 11.4%Rabota.ru421
                      • 14.7%SuperJob.ru545
                      • 7%Hantim.ru261
                      • 13.1%Yandex (MoiKrug.ru)487
                      • 9.4%Linkedin.com347
                      • 3.1%ITMozg.ru116
                      • 1.7%rabota.mail.ru66
                      • 19%Другое (см. комментарии)704
                    • Сжатие пакетов и защита С# клиента с открытым исходным кодом

                      Привет, сообщество.

                      Мой путь в программировании: ASP VB script >> VB.Net >> C#, с С и С++ я знаком минимально.
                      С давних пор пишу онлайн RPG (около 9 лет) и сейчас дошел до стадии публичного онлайн тестирования.

                      Клиентская часть написана на С# и доступна для изучения(улучшения) всеми желающими.
                      У меня нет никакой паранойи (надеюсь ;-)) относительно хакеров и любителей поломать чужие сервера — я отлично понимаю, что никому нет дела до моих исходников, однако мне хочется, чтобы на сервер отсылались пакеты, обработанные только известной, проверенной и утверждённой версией клиента.
                      Поэтому я хочу реализовать защиту в виде подключаемой приватной нативной библиотеки, которая будет отсылать на сервер хеш код используемого клиента, плюс она-же будет шифровать/дешифровать/сжимать/разжимать все пакеты. То есть если в клиенте реализуют отсылку фиктивного хешь кода, без использования нативной DLL, то злоумышленнику также придется реализовать свою версию обработки пакетов.
                      Читать дальше →
                    • Marketplace запущен в Украине, Казахстане и 21 стране

                        Сегодня ночью открылась возможность публикации приложений для пользователей Windows Phone в Украине, Казахстане и еще 21 новой стране. Это открывает возможность охватить вашими приложениями на 60% больше потенциальных пользователей.

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

                        Полный список новых стран: Бахрейн, Болгария, Китай, Коста-Рика, Хорватия, Эстония, Исландия, Ирак, Израиль, Казахстан, Латвия, Литва, Катар, Румыния, Саудовская Аравия, Словакия, Словения, Таиланд, Турция, ОАЭ, Украина, Венесуэла, Вьетнам.

                        Подробное руководство доступно на сайте. Обращаю внимание, что для некоторых из новых стран требуется дополнительная проверка на соответствие локальным законам (пункт 3.10 по ссылке). В любом случае расширение географии требует новой сертификации приложений – в силу запуска новых стран, в том числе Китая, этот процесс на данный момент займет не менее недели, так что поспешите.

                        От вас это требует всего 3 шага:
                        Читать дальше →
                      • Живые сказки на базе Adobe Edge

                          Всем привет. Я хочу рассказать о нашем опыте создания анимированных сказок для Apple iPad, с использованием технологий от Adobe, который воплотился в приложение «Живые сказки».

                          Первый опыт. Flash + Wallaby


                          Чуть меньше года назад мы решили отрисовать и анимировать сказку «Ячменное зернышко», чтобы опубликовать ее через Adobe DPS. Для создания мы использовали Adobe Flash + Wallaby, экспериментальную технологию перевода .fla в html5. Сейчас Wallaby стал частью грядущего Flash CS6.

                          Конечно, Wallaby не позволял многого. Слишком многого: никакого Action Script'а, никаких векторных изображений. В итоге мы могли анимировать только перекладкой. Однако это не самый плохой вариант, наоборот, даже интереснее было сделать что-то подобное.
                          Читать дальше →
                        • Таинственные знаки на полях

                            Многие из вас, возможно, видели всякие загадочные знаки на полях. Нет, не те что на картинке слева :). Я имею в виду значки на полях редактора кода в Visual Studio. Наиболее известными являются иконки точки останова (Breakpoint) и закладки (Bookmark) . Но есть и другие. Я предлагаю небольшой конкурс: вот 8 значков, которые могут появиться на полях редактора кода в Visual Studio 2010 (без всяких плагинов). Первый, кто верно объяснит их все, получит от меня инвайт на Хабр.

                            Пишите ответы комментариями к этому топику, а у кого нету аккаунта на Хабре — пишите куда угодно и бросайте ссылку в твиттер с хештегом #VsMisterySigns — обещаю всё прочитать. Ответы удобно нумеровать в соответствии именам интовских переменных в коде. Срок приёма ответов — сутки с момента публикации. Объявление победителя — в течение суток по окончанию приёма ответов, развёрнутой статьей в этих же хабах.

                            P.S. Обратите внимание, №4 и №6 — это не глюк в задании, это разные значки, обозначающие разные вещи. Смотрите внимательно. Все претензии — к дизайнерам Visual Studio.

                            Upd. Дискуссия в твиттере поактивнее комментов. Дерзайте, друзья, у всех есть шансы.
                            Upd2. Ставки сделаны, ставок больше нет. Результаты.
                            Читать дальше →
                          • Автоматическая кросс-доменная установка высоты Iframe

                            • Tutorial
                            Думаю, многие, кто сталкивался в своей работе с iframe, сталкивались и с задачей установки высоты этого самого айфрейма.

                            Это может быть необходимо, например, когда ты хочешь дать возможность пользователям ставить виджеты с вашего сайта на их сайт, и хочется, чтобы размер контейнера (iframe) виджета соответствовал размерам содержимого этого виджета.

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

                            Есть одно неплохое кросс-доменное решение, но оно было написано в 2007 году, а с тех пор многое изменилось. Поэтому пришлось разрабатывать решение этой проблемы самостоятельно, основываясь на приведенном решении.

                            Читать дальше →
                          • Как создавался «Кинопоиск» для Windows Phone

                              Не так давно в российском Marketplace появился официальный клиент сайта «Кинопоиск», который на ура был воспринят пользователями Windows Phone и сейчас бьёт все рекорды популярности среди бесплатных приложений. Конечно же, мы не могли не взять интервью у Григория Никонова (Anadale), разработчика этого приложения.

                              Григорий является сооснователем крупнейшего в России диджитал-агентства Actis Wunderman и главным техническим гуру компании. Кроме того, Григорий сотрудничал с ATM Forum European Marketing Awareness Committee и стал одним из авторов монографии, посвященной ATM-сетям. В совокупности его опыт работы в сфере IT составляет более двадцати лет.

                              Под катом вы сможете почитать мнение Григория Никонова о платформе Windows Phone и конкурирующих мобильных операционных системах (как со стороны разработчика, так и пользователя), о проблемах разработки под мобильные ОС, и, непосредственно о проектировании и разработке «Кинопоиска».



                              — Чем разработка под Windows Phone отличается от разработки под другие платформы?

                              С точки зрения разработчика, iOS имеет очень хорошее API, позволяющее реализовать практически всё, что может потребоваться, и содержит отличную документацию. Однако при разработке под iOS есть один минус, который так или иначе напрягает: разработка ведётся на Objective-C — чудесном языке, который пытались дотянуть до языка высокого уровня. К сожалению, на нем вы тратите массу времени на подробное объяснение того, что нужно сделать, чтобы показать ваши данные, вместо того, чтобы сказать «вот мои данные – покажи их». Ну и, конечно, приходится помнить о таких вещах, как утечка памяти, управление счетчиками ссылок и подобных вещах.
                              Читать дальше →
                            • Еще раз про skiplist…

                                … или как я получил «Аленку» за консольное приложение


                                Существует довольно распространённое мнение, что выполнение различных тестовых заданий помогает очень быстро поднять свой профессиональный уровень. Я и сам люблю иногда откопать какое-нить мудреное тестовое и порешать его, чтобы быть постоянно в тонусе, как говорится. Как-то я выполнял конкурсное задание на стажировку в одну компанию, задачка показалась мне забавной и интересной, вот её краткий текст:

                                Представьте, что ваш коллега-нытик пришел рассказать о своей непростой задаче — ему нужно не просто упорядочить по возрастанию набор целых чисел, а выдать все элементы упорядоченного набора с L-го по R-й включительно!
                                Вы заявили, что это элементарная задача и, чтобы написать решение на языке C#, вам нужно десять минут. Ну, или час. Или два. Или шоколадка «Алёнка»

                                Предполагается, что в наборе допускаются дубликаты, и количество элементов будет не больше, чем 10^6.

                                К оценке решения есть несколько комментариев:

                                Ваш код будут оценивать и тестировать три программиста:
                                • Билл будет запускать ваше решение на тестах размером не больше 10Кб.
                                • В тестах Стивена количество запросов будет не больше 10^5, при этом количество запросов на добавление будет не больше 100.
                                • В тестах Марка количество запросов будет не больше 10^5.
                                Решение может быть очень интересным, поэтому я посчитал нужным его описать.
                                Читать дальше →
                              • Специальность Software Engineering в Академическом Университете. Отзыв студента

                                  Тема высшего образования очень популярна на хабре. Есть много статей о том, как плохо у нас, и как хорошо за рубежом. Сегодня я бы хотел рассказать вам, как я искал высшее образование в России. И нашёл.
                                  Читать дальше →