• Технология быстрого создания фонов для 2D-игр на базе 3D-заготовок (48 часов разработки)

    Вместо предисловия


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

    Перед тем как начать я хотел бы сделать акцент на двух положениях:
    Первое. Мы исходим из того что читатель знаком с такими пакетами как 3D Studio MAX (либо любым другим пакетом трехмерного моделирования) и Photoshop (или любым его аналогом). В данном конкретном случае я собираюсь использовать терминологию этих двух пакетов. Однако, не смотря на это те же самые принципы можно использовать, пользуясь любым другим софтом.

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

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

    Хочу также отметить, что я не причисляю себя к мастерам, которые делают шедевры. Данное примечание я делаю для тех злых людей, которые говорят (или скажут после публикации), что я заносчив, что меня занесло под небеса, и тех кто вместо того чтобы работать предпочитает злословить словно ябедник Кийр из моей любимой книги Оскара Лутса «Весна».

    С преамбулами покончено перейдем к сути.

    Я утверждаю и не беспочвенно, что хороший фон можно и нужно создавать не за неделю, не за пять дней и даже не за три. Чтобы сделать хорошую картинку для казуальной игры, без разницы i-spy это, match-3 или аркада, достаточно 48 часов. Разумеется, при условии того, что человек занимается работой, а не просиживанием штанов.

    image

    Читать дальше →
  • Отображение генерируемых «на лету» html страниц без сохранения в буфер обмена или файловую систему

    Часто при разработке перед программистом встаёт вопрос об отображении результатов работы пользователю в удобном для него виде. Благо вариантов реализации вывода информации несметное множество. Так, одним из них является web-страница, как очень гибкое решение, позволяющее оформить данные в любом виде.

    Однако, временами, простая на первый взгляд проблема усложняется какими-то ограничениями. К примеру, из-за недостатка прав доступа может возникнуть ситуация невозможности использования файловой системы. Иными словами, результаты нельзя будет сохранять в файл. А использование буфера обмена может повлечь за собой уничтожение важной информации хранящейся в нём.

    О том, как показать пользователю html страницу, не имеющую локального представления под катом.
    Читать дальше →
  • Использование async и await в C# — лучшие практики

    • Translation
    • Tutorial

    Ключевые слова async и await, введённые в C# 5.0, значительно упрощают асинхронное программирование. Они также скрывают за собой некоторые сложности, которые, если вы потеряете бдительность, могут добавить проблем в ваш код. Описанные ниже практики пригодятся вам, если вы создаёте асинхронный код для .NET приложений.
    Читать дальше →
  • Подделываем вашу подпись при помощи шарнирного механизма. Теорема Кемпе

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

    Читать дальше →
  • О некоторых неочевидных хаках при работе с entity framework и unique constraints

      image
      Пару лет назад, когда деревья были большие и зеленые, ко мне пришли злые дотнетчики, и сказали — ага, попался! пришлось мне помочь коллегам в одном весьма странном проекте.

      А именно — представьте себе пачку цифирей, которые аналитики составляют раз в месяц, в любимом ими пакете MS Office. И вот раз в месяц появилась необходимость эти цифры пережевывать и загружать в БД под управлением MS SQL.

      И конечно же — этот мега-тул надо было сделать быстро. Чтобы потом передать на суппорт дешевым то ли малайцам, то ли индусам. Так что еще и рекомендовалось делать максимально понятно.

      Читать дальше →
    • Виды и форматы справок

        Привет, Хабр!

        К нам в Alconost часто приходят клиенты и говорят “Мне нужна справочная система для моей программы. Сделайте мне ПэДээФку”. Мы создаем руководство пользователя, оформляем PDF, а потом оказывается, что на самом деле нужна была контекстная справка с индексом и поиском.

        Именно поэтому хотелось бы поделиться со всеми простыми схемами и описанием видов и форматов справки.



        Читать дальше →
      • Несколько способов ускорить приложение на ASP.NET WebForms

          Существует распространенное мнение, что приложения на ASP.NET WebForms очень медленные, тяжеловесные, подходят только для корпоративных порталов и в основном работают в интрасетях. Однако есть несколько способов существенно повысить скорость работы вашего приложения. Большинство этих способов не новы, применяются многими разработчиками. Здесь мы собрали те из них, которые хорошо себя зарекомендовали при разработке движка AdVantShop.NET Ultimate.
          Читать дальше →
        • Пишем игру для Samsung SmartTV на JS

            Всем привет. Я по долгу службы занимаюсь разработкой для Samsung SmartTV. В силу того, что на хабре мало статей на эту тему, я решил это исправить. Кому интересна пошаговая инструкция как сделать свой пинг-понг на «умный телик» с распознованием жестов — милости прошу под кат.
            Читать дальше →
          • Создание и обработка шаблонов печатных форм

              Как показала практика работы с ERP системами — корпоративные приложения на 30% состоят из отчетов. Типичная ситуация для таких приложений — построить отчет по некоторым данным.

              Для построения отчетов можно использовать ReportBuilder или любые другие системы построения отчетов. В этой статье я хочу рассмотреть построение отчетов в MS Word 2003 (и более поздние версии) посредством Aspose.Words, так как легко вносить правки, удобно разрабатывать, не требует особых навыков по работе с гигантами систем отчетов и т.д.
              Заинтересовавшихся прошу под кат
              • +6
              • 17.9k
              • 1
            • Введение в работу с AppHarbor — облако для ASP.NET приложений

              • Tutorial
              Каждый из вас наверняка хочет видеть свое приложение на просторах сети Интернет. Сколько раз мы спрашивали у Google, Яндекса, Bing и других: «Бесплатный хостинг ASP.NET». Иногда чтобы показать прототип потенциальному клиенту, обсудить проект или просто похвастаться перед девушкой, мол, вот что я сделал. Зачастую для этого надо найти хостинг, но это требует определенного количества времени, сил и денег. Альтернатива проста – поместить приложение «облако». Причем сделать это действительно проще чем кажется т.к. есть такой замечательный сервис AppHarbor. На нем можно размещать свои ASP.NET приложения, подключить базу, поиск, кэш и многое другое, список смотреть тут. Делается это, как вы увидите, довольно просто и не требует каких-то особых знаний, т..е. всю нагрузку на работу железа и ПО для работы вашего сайта берет на себя AppHarbor. Кстати, про бесплатность. Я немного слукавил, это все счастье бесплатно, но только до какого-то момента предельного роста вашего проекта ну и если вы хотите использовать какие-то платные дополнения. Т.е. прототип вы разместите, но если нужен хостинг для большого проекта придется раскошелиться, но думаю, к тому времени у вас уже будет более четкое видение развития вашего проекта. Если все же вам понравится, то прошу смотреть цены. Для меня AppHarbor является полигоном для испытаний, но чем больше я им пользуюсь, тем больше мне нравится.

              Читать дальше →
            • Список сообщений в стиле Message Hub

              • Tutorial
              Если вы уже разрабатывали приложения под Windows Phone 7, то возможно уже заметили отсутствие некоторых элементов управления, таких как Hub Tile, сгруппированный список или список сообщений. Некоторые из них можно найти в библиотеке Silverlight Toolkit for Windows Phone. Но что делать, когда нам нужно создать приложение, похожее на стандартный Message Hub? Основная проблема заключается в том, что в стандартном LisBox'е элементы размещаются cверху вниз, в то время как в хабе сообщений — наоборот.



              Хочу продемонстрировать одно из решений данной задачи. Нам понадобится лишь стандартный элемент управления ListBox, библиотека System.Windows.Interaction из Blend SDK и некоторые знания в области трансформации визуальных компонентов.
              Читать дальше →
            • В пень free-lance.ru!

                В связи с прочтением соседнего поста предлагаю перечислить список бирж, на которых можно найти альтернативу тому унылому говну, в которое превратился free-lance.ru, ибо терпеть планомерный геноцид я больше не намерен.
                Читать дальше →
              • О некоторых особенностях Windows 8 и WinRT(метро)-приложений

                Речь пойдет о новом типе приложений, которые предназначены для новой операционной системы Windows 8 и нового меню “Пуск”.



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

                Читать дальше →
              • Изолирование кода во время тестирования с помощью Microsoft Fakes (Shims)

                • Translation
                Впервые я встретился с юнит тестированием на Java и был рад возможности делать моки на final классы, на статические члены. В это время на .Net нельзя было сделать ничего подобного. Только интерфейсы. Можно безгранично долго рассуждать о том, что если понадобилось делать что-то неестественное, то нужно переписывать реализацию, делать IOC и прочее. Но когда речь идет о наследованном коде, неприспособленном архитектурно к юнит тестированию – возможность менять вещи без переписывания выручает.
                Я окончательно забросил Java и ушел в .Net и каждый раз при разговоре о юнит тестах вспоминал, что на Java возможностей больше.
                И вот в 2012 студии добавили возможность делать мок любых объектов. Абсолютно любых, даже системных. Под катом перевод статьи из MSDN (переведено только по шимам, т.к. стабы особого интереса не представляют).
                Читать дальше →
                • +15
                • 11.7k
                • 9
              • Правильный стул для ежедневной работы за компьютером

                  Золотой Остап и его стулВопрос о столах поднимался несколько раз (раз, два).

                  Однако, на чем же мы сидим перед столом?

                  Стул — не менее важная часть рабочего места любого человека, много времени работающего за компьютером в течение дня.

                  Все мы работаем с компьютером и порой не замечаем, на чем же мы сидим.

                  Оказывается наши санитарные правила и нормы (СанПиН 2.2.2/2.4.1340-03) достаточно хорошо описывают удобный эргономичный стул для работы взрослых за компьютером!

                  А какой стул правильный?
                  Читать дальше →
                • Считаем Пи параллельно. Часть 1


                  В этой серии постов мы попробуем решить одну простую задачу с помощью более-менее актуальных технологий параллельного программирования (Нативные потоки, OpenMP, TBB, MPI, CUDA, OpenCL, OpenACC, Chapel может быть еще что-нить экзотическое. Как бы сравнительно и в hands-on ключе.
                  Читать дальше →
                • Четыре профессиональные деформации программистов на языке Perl, демонстрируемые на живом примере

                    Эдсгер Вибе Дейкстра оказался известен, в частности, как автор нескольких ёмких и выразительных высказываний, очерчивающих бездну профессиональной деформации программистов, предпочитающих тот или иной неуютный язык программирования. Небезызвестны, в частности, следующие оценки Дейкстры (я процитирую их по Викицитатнику):

                    • «Программирование на КОБОЛе калечит мозг, поэтому обучение ему должно трактоваться как преступление». («The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense».)
                       
                    • «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». («It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration».)

                    Дейкстра умер 6 августа 2002 года. Сегодня, спустя десять с небольшим лет после его смерти, мы вправе оглянуться вокруг и спросить себя: а насколько изменились обстоятельства? Иными словами: а сейчас (в наши дни) среди широко употребляемых языков программирования есть ли такие языки, использование которых влечёт для склонных к ним программистов почти неминуемый риск заметной профессиональной деформации?

                    Как мне кажется, они есть; и это прежде всего те языки, которые подпадают под определение write-only language, то есть поощряют написание такого исходного кода, прочтение и понимание которого слишком трудно, неоправданно трудно (как правило, даже труднее, чем его написание автором кода), хотя в нормальных языках должно быть наоборот.

                    Наиболее употребительным из таких языков является Perl.

                    Будьте покойны: я не намерен просто ткнуть пальцем в Perl и объявить, что он плох. Это вышло бы слишком малоубедительно без доказательств и подробностей. И именно поэтому прямо сейчас на примере, взятом из жизни, я покажу вам четыре механизма, при помощи которых Perl воздействует на сознание программиста и поощряет сочинение им такого кода, который оказывается неприглядным write-only.

                    Читать дальше →
                  • Облачная защита для .NET приложений

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

                      Да, C++ был почти идеальным языком в этом плане. Но времена меняются, старые технологии уходят и на их место приходят новые более продуктивные и удобные. Так наша команда перешла на .NET. Но в обмен на простоту разработки и удобство отладки, мы в придачу получили в довесок и простоту декомпиляции нашего ПО. Теперь хакер мог не просто обойти лицензионные ограничения, но и получить почти полный исходник нашей программы просто скормив ее рефлектору.
                      Разумеется, в качестве решения этой проблемы на рынке было представлено множество различных обфускаторов. Но, как ни странно, большинство из них разочаровывали меня сразу с двух сторон: и ценовой политикой (даже минимальная лицензия некоторых превосходила стоимость нашего ПО в несколько раз), и «интеллектуальностью» алгоритма. Так, после некоторых обфускаторов, умудрялись падать даже простые WinForms приложения. Что же касалось WPF, то без долгого-долгого черного шаманства над эксклудами, запустить среднего размера программу не представлялось возможным в принципе.

                      Так сформировалось понимание проблемы и четкое желание создать свой продукт, сводящий озвученные выше проблемы к минимуму. И появился SaaS обфускатор и протектор .NET кода AppFuscator.com

                      Обфускатор и протектор .NET кода appfuscator


                      Читать дальше →