• Сначала фронт, а потом бэк (когда-нибудь)

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


      Разработка сложного функционала требует тонкой координации усилий коллектива инженеров.


      И одним из важнейших моментов является вопрос распараллеливания задач.


      Возможно ли избавить фронтовиков от необходимости ждать реализацию бэка? Есть ли способ распараллелить разработку отдельных фрагментов UI?


      Тему распараллеливания задач в веб-разработке мы и рассмотрим в этой статье.


      Читать дальше →
    • Об удобочитаемом именовании тестов в JS и поведенческом паттерне

      • Translation
      • Tutorial

      В ходе очередного ревью толстого Pull Request'а наткнулся на Unit Test'ы с некорректным именованием тест-кейсов. Обсуждение формулировок в тест-кейсах получилось похожим на разговор Янычара и Легкоступова в к/ф "72 метра" ("если б мне в школе так доходчиво..."). В разговоре прозвучала мысль, что в рускоязычных ресурсах трудно найти толковый гайд именно по текстовым формулировкам. Решил искать самолично на русском (обычно я пользуюсь только англоязычными источниками). На хабре нашел несколько мануалов про юнит-тесты, но все они обходят стороной детали формулировок в тест-кейсах. Под катом моя попытка восполнить данный пробел.

      Читать дальше →
      • +12
      • 1.3k
      • 2
    • Fukami, ч. 1.1: Приводим сцену к теме проекта

        Здравствуйте!



        В прошлой статье был представлен концепт «генетически модифицируемого организма», но сцена была использована не соответствующая тематике. В этой статье хочу рассказать как и спомощью каких инструментов переделывался арт сцены. Основные изменения следующие:
        • Городская тема, здания и летающая тарелка заменены растениями, видом на растительный ландшафт; заменен фон (небо).
        • Добавлены экспериментальные спрайты облаков (те что в полосочку на КДПВ выше)
        • Режим основной камеры изменен на перспективный (3D); фоновые спрайты разбросаны по оси Z для замены скриптового параллакса честной 3D перспективой.
        • Анимации облаков и тумана переделаны
        • Спрайт ядра растения заменен рисованным более технолоичным гексагональным спрайтом.
        • Переделана анимация аватара игрока и разбивка его частей по Z-координате.

        Описание процесса и демо видео под катом
      • Fukami, ч. 1: репа с тентаклями


          Посадил дед репку… а из нее поползли тентакли.
          UPD: Господа, отпишитесь пожалуйста, что со статьей не так и чем обидел может кого-то. А то в карму плевки полетели, а исправлять не понятно что. Не кОрысти ради, а дела благого для пишу...
          Upd 2: забыл предупредить… В режиме дебага UnityEditor выводит в консоль сотнями сообщения о невалидных значениях кватернионов (ненормализованные они видимо). Из-за этого в дебаге начиная с некоторого момента начинает тормозить. Я пока не понял моя ли в том вина или бага.фича в релизе Unity. Руки не дойдут никак запостать вопрос на форуме Unity3D.
          Читать дальше →
        • Паттерн MVVM и страничная навигация

          • Tutorial

          Применение страничной навигации достаточно актуальная задача для настольных WPF-MVVM приложений.
          Разномастных руководств по организации такой навигации в сети достаточно.
          И, конечно, Хабрахабр не исключение (имеются статьи раз и два).
          Взглянув на первую статью Вы узнаете про NavigationService и возможность пользоваться Hyperlink.
          Если перейдете по второй ссылке, то узнаете как пользоваться NavigationService в так называемом «Code Behind».
          Таким образом, решения полного в этих статьях не представлено (на мой взгляд).
          Хочется заполнить пробел и представить Вашему вниманию, как мне кажется, вполне рабочее решение.
          Абсолютно не претендую на законченный компонент для организации страничной навигации.
          Буду благодарен за полезные комментарии, поправки и дополнения.
          Рад буду, если кому-то моя реализация навигатора окажется полезной.
          Читать дальше →
          • +11
          • 44.7k
          • 1
        • WPF > PDF через PDFSharp.Xps: чиним вывод гиперссылок


            Короткий пост в продолжение к моему предыдущему посту про генерацию PDF из WPF-приложения с помощью PDFSharp. Как описано в той статье, генерация производится с использованием FlowDocument в качестве посредника. Во FlowDocument мы можем использовать Hyperlink для вывода разного вида гиперссылок, но оказалось, что использованная мной версия PDFSharp.Xps конвертера тупо игнорирует прикрепленные к элементам XpsElement аттрибуты FixedPage_NavigateUri.
            Я потратил какое-то времени на то, чтобы разобраться с форматом вывода PDF 1.4, но пока не смог понять как правильно починить печать в PdfContentWriter проекта PDFSharp.Xps.
            Под катом представлено более простое решение, а именно наложение гиперссылки на текст в виде Link Annotation. Также в конце статьи Вы найдете результат моих изысканий на тему «кошерного» решения проблемы, через внедрение в процесс вывода в PDF примитивов.
            Читать дальше →
          • Генерация PDF из WPF-приложения «для всех, даром, и пусть никто не уйдет обиженный»

            • Tutorial
            Пару недель назад на проекте появилась задача генерации PDF.
            Разумеется, я, как разработчик WPF UI, сразу был против сурового подхода кодирования отрисовки всех примитивов PDF в коде C#.
            И заказчик был непротив покупки некоего платного конвертера из HTML в PDF, например.
            Вроде бы все просто — генерируем строку с HTML-разметкой, используя DotLiquid для шаблонизации, и конвертируем в PDF с помощью одного из множества платных конвертеров.
            Единственная засада — плохая совместимость HTML со страничной структурой PDF-документа.
            Только я начал закапываться в поисках решения этой проблемы, как один коллега поделился ссылкой на статью с альтернативным решением.
            Из статьи я узнал, что есть возможность сгенерировать PDF из XPS-документа (этот формат поддерживается в WPF FlowDocument).
            К тому же, для генерации использовалась бесплатная библиотека PDFSharp.

            Исходники можете скачать с GitHub.

            UPD: уже не первый раз наблюдаю как статью плюсуют (первые минусы были сразу после публикации и вряд ли относятся к основному контенту), при этом сливая карму. Мне интересна мотивация, обратная связь. Отпишитесь, кто чем недоволен / доволен, если не затруднит.
            Пошаговые инструкции под катом
            • +13
            • 18.8k
            • 5
          • Генератор Федеративного Фильтра Калмана с использованием Генетических Алгоритмов

              В рамках своей научной активности реализовал так называемый Федеративный Фильтр Калмана (Federated Kalman Filter). В этой статье рассказывается о том, что такое «Федеративный ФК», чем он отличается от обобщенного, а также описывается консольное приложение, реализующее данный фильтр и генетические алгоритмы для подбора параметров его математической модели. Приложение было реализовано с использованием TPL (Task Parallel Library), поэтому пост будет интересен не только специалистам по цифровой обработке сигналов.

              UPD1: после прочтения двух недавних статей решил тоже присоединиться к эксперименту/исследованию/авантюре (называйте как хотите). В конце статьи добавил еще один опрос — "Стали бы Вы поощрать рублем такие узко специализированные статьи на Хабрахабре?".

              Под катом описание и ссылка на сорцы
            • TPL + DLR = Многопоточный скриптинг

                Я давно хотел поизучать «TPL» (Task Parallel Library) и «DLR» (Dynamic Languages Runtime). Для этого мне нужна была конкретная и, желательно, достаточно актуальная задача. В одном из моих переводов рассказывалось о так называемых «игровых циклах». Рассмотренная там тема для меня довольно интересна сама по себе и к тому же связка TPL+DLR подходит для той задачи как нельзя лучше, на мой взгляд. Так я пришел к идее о реализации легковесного асинхронного скриптового движка, который можно было бы относительно легко прикрутить к разным приложениям (в том числе к играм). Ядро движка я решил реализовать на C#. Выбор между динамическими языками в моем случае даже и не стоял. Я для этих целей уже давно облюбовал Ruby. Какое-то время я вынашивал идею, время от времени размышляя о ней на досуге.
                Теперь решил выложить первые результаты
              • Прощай XML-build… Здравствуй Rake!

                • Translation

                Введение



                Сегодня (Monday, April 26th, 2010 at 8:54 am? Прим. перев.) в очередной раз я твитнул о том, что не являюсь фанатом систем сборки проектов, основанных на XML. Да, я понимаю для чего они нужны. Да, они были хороши в свое время. И да, я до сих пор использую их каждый день. Но несмотря на все это я считаю, что есть более удобные способы решить эту задачу. Наиболее частым ответом на мой твит были слова: «Ну а альтернатива-то какая?» Одна из важнейших вещей, которым научила меня жизнь, это то, что не стоит жаловаться на что-либо до тех пор пока тебе нечего предложить взамен. Так что я здесь и сейчас предложу альтернативное решение…
                Читать дальше →
              • Как бы я делал BusyIndicator

                  В ответ на недавний пост про BusyIndicator решил поделиться своим опытом/виденьем данной проблемы. В статье представлена, на мой взгляд, более простая реализация индикатора занятости контрола. Сейчас любой может воспользоваться готовыми продуктами от маститых девелоперских контор, но проблема «Дырявой Абстракции» при этом становится весьма актуальной. Использование готовых индикаторов противоестественным для них образом неминуемо приводит к плачевным результатам. Поэтому очень важно представлять «как это работает».
                  Под катом мой вариант велосипеда
                • Сравнение характеристик микромеханических гироскопов

                    Недавно узнал о том, что фирма STMicroelectronics анонсировала трехосевой гироскоп A3G4250D, удовлетворяющий жесткому стандарту для автомобильного применения (AEC-Q100). Обещана стоимость $6 при заказах от 1000 шт. Класс цены понятен. Захотелось сравнить паспортные характеристики этого датчика с маститыми моделями от Analog Devices Inc. и других производителей. Пока разбирался с даташитами выяснил, что набор паспортных характеристик ADI и STM, к примеру, неодинаковый. Попутно решил выяснить по каким все-таки попугаям стоит сравнивать датчики, т.е. что является наиболее серьезной проблемой микромеханики. В итоге набрался материал для поста, а может и двух. В данном будет вводная. Сравнение a la "[30 коп. пучок] Vs. [Чугунный мост]" к сожалению не уместилось.
                    Читать дальше →
                  • Locum + Capistrano + git на Windows: маленькое приключение с размещением

                      Эту маленькую заметку я постаю, видимо, больше для себя. Сегодня у меня был первый опыт выгрузки приложения RoR на хостинг Locum с использованием связки Capistrano и git на Windows 7. Пришлось помучаться — первый блин чуть не встал комом.
                      Под катом мое маленькое приключение
                    • Игровые циклы или ЭлектроКардиоГама

                      • Translation
                      Игровой цикл — это пульс каждой игры. Ни одна игра не будет работать без этого. Однако, к несчастью каждого нового разработчика игр, в сети нет хороших статей, в которых уделено достаточное внимание этой теме. Но не печальтесь, потому как только что вы получили возможность прочитать единственную в своем роде статью, уделяющую вопросу игровых циклов заслуженное внимание. По долгу службы мне часто приходится иметь дело с большим количеством кода мелких мобильных игр. И я каждый раз удивляюсь сколь много существует реализаций игрового цикла. Вы тоже можете удивиться как можно для такой, казалось бы простой, вещи можно придумать множество имплементаций. А ведь можно! И в статье я постараюсь рассказать о достоинствах и недостатках наиболее популярных вариантов игровых циклов. Также я постараюсь описать наилучший на мой взгляд вариант реализации игрового цикла.
                      (Thanks to Kao Cardoso Félix this article is also available in Brazilian Portuguese) (Thanks for me, in Russian also, прим. перев.)
                      Читать дальше →
                    • PowerShell 3 – Finally on the DLR!

                      • Translation
                      Для тех кто в танке сообщаем: PowerShell 3 будет официально выпущен вместе с Windows 8. CTP появился вместе с релизом Windows 8 Developer Preview (на конференции //Build/ от Microsoft в сентябре 2011). Второй CTP релиз появился аккурат под Рождество.
                      В течение нескольких месяцев я имел возможность поиграться с PowerShell 3 и теперь хочу рассказать Вам о своих впечатлениях.
                      Читать дальше →
                    • Классическая механика: о диффурах «на пальцах»

                        Недавно взглянул на сорцы Farseer Physics Engine. Стало интересно как в этом движке реализован динамический объект. Как и ожидал, не встретил там привычных мне дифференциальных уравнений и их дискретных реализаций в виде разностных уравнений или дискретных моделей пространства состояний. Главная отмазка заявляемая причина отказа от «честной» механики во многих игровых физических движках — излишняя сложность работы с дифференциальными уравнениями и слишком большая вычислительная нагрузка.
                        Под катом мои изыскания на эту тему
                      • Многоядерный процессор для беспилотников

                        • Translation
                        За последние 10 лет беспилотные летательные аппараты (БПЛА) окончательно перешли из разряда лабораторных образцов в разряд технологий, проверенных в полевых условиях. Недавно проведенные Teal Group исследования показали, что общие сметные расходы на БПЛА удвоятся за следующую декаду с 5 млрд. долл. США в год до 11,3 млрд. в год. Ожидается, что за следующие 10 лет будет потрачено более 94 млрд. долларов. Помимо военного применения (основная ожидаемая область применения), БПЛА применяются в таких областях, как наблюдение за общественной безопасностью, контроль границ, пожаротушение, мониторинг автотрафика. Ожидается коммерческое применение БПЛА в системах связи.
                        Под катом тизер многоядерного DSP TMS320C6678 от TI
                      • ИИ на пяльцах: 5 полезных приемов

                        • Translation

                        Вашему вниманию представляю свой вольный перевод, обещанный г-ном Takezo в его комменте о будущем ИИ в GameDev.

                        Введение


                        Прикольно наблюдать за внутриигровой визуализацией, особенно если ты сам ее и создал! Однако, в погоне за этим ярким впечатлением легко забыть, что не нужно визуализировать все подряд.
                        Ниже вы найдете видео туториал по визуализации геймплея и ИИ, записанный в секретной исследовательской лаборатории AiGameDev.
                        Читать дальше →
                      • Полет BeagleBoard на высоте 36 км!

                        • Translation
                        image

                        Введение


                        Рад вам сообщить, что BeagleBoard способен работать в экстремальных условиях при нулевом давлении и низких температурах, которые имеют место на высоте 36 км. В рамках проекта мной была послана BeagleBoard в стратосферу для получения фотографий и отправки их в реальном времени посредством простого, маленького радиопередатчика. В данном посте я собираюсь рассказать вам о том, что и как было сделано с приложением некоторых изображений, скриптов и прочих вещей, использованных мной.
                        Читать дальше →
                      • Без запаха фильтрации и нелинейного оценивания*

                          image * от англ. «unscented filtering and nonlinear estimation» (by Переводчик Google)
                          По просьбе dmitriyn решил опубликовать свое видение на так называемый «Unscented Kalman filter», который является распространением линейной фильтрации Калмана на случай, когда уравнения динамики и наблюдения системы нелинейны и не могут быть адекватно линеаризованы.
                          Как название данного метода фильтрации «кошерно» удобочитаемо переводится на русский я пока не знаю, что отражено в названии статьи, поэтому решил просто скопипастить довольно забавный, на мой взгляд, машинный перевод. Еще одна забавная версия перевода — нечуткий фильтр.
                          Под катом моя попытка по-простому рассказать про UKF