Search
Write a publication
Pull to refresh
0
Maxim Tkachenko @BenderRRread⁠-⁠only

User

Send message

Разработка простой игры в Code::blocks с использованием Direct3D 9

Reading time12 min
Views47K
Хочу рассказать о своем первом опыте в геймдеве. Сразу стоит оговориться, что статья будет чисто технической, поскольку моей целью было всего лишь получение навыков разработки графических приложений, использующих Direct3D, без привлечения высокоуровневых средств разработки игр типа Unity. Соответственно, никаких разговоров о внедрении, монетизации и раскрутке игры также не будет. Статья ориентирована на новичков в программировании приложений Direct3D, а также просто на людей, интересующихся ключевыми механизмами работы подобных приложений. Также в конце привожу список литературы по геймдеву, тщательно отобранный мной из более чем ста книг по программированию игр и компьютерной графики.
Читать дальше →

Не используйте MediaPlayer и MediaMetadataRetriever в Android

Reading time2 min
Views24K
Как показывает мой скромный опыт, родные MediaPlayer, MediaMetadataRetriever, а так же другие классы, которые так или иначе основываются на них (VideoView, ThumbnailUtils, к примеру), являются крайне ненадежными в использовании. Возможно, проблема в том, что они реализованы нативно, и меняются от версии к версии, но факт остается фактом — их поведение на разных устройствах предсказать невозможно, причем это даже не зависит от мощности железа.
Читать дальше →

Пишем расширения c Roslyn к 2015 студии (часть 2)

Reading time6 min
Views7.1K
… Эта статья является продолжением первой части о написании расширений к студии с Roslyn.

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

Хорошо, давайте для примера сгенерируем код, содержащий число 10. Это делается просто.

SyntaxFactory.LiteralExpression(SyntaxKind.NumericLiteralExpression, SyntaxFactory.Literal(10))

Я не шутил, когда говорил, что чтобы создать код проще всего распарсить строку. Благо, SyntaxFactory предоставляет кучу методов для этого (ParseSyntaxTree, ParseToken, ParseName, ParseTypeName, ParseExpression, ParseStatement, ParseCompilationUnit, Parse*List).

Но это не путь настоящего самурая.
Давайте генерировать по пути самурая

Получение изображения нужного размера без OutOfMemoryError + автоповорот согласно EXIF orientation

Reading time10 min
Views22K
Многие уже наверняка сталкивались с проблемой OutOfMemoryError и находили достаточно толковый мануал Displaying Bitmaps Efficiently. Но если вы еще не успели изобрести свой велосипед на основе мануала, предлагаю свое готовое решение с объяснениями, которое умеет получать изображения:

  • В формате Bitmap и byte[]
  • Уменьшенное с сохранением пропорций
  • Уменьшенное с вырезанием (crop) до заданного размера width x height
  • Оптимизированное для 2g
  • Всегда в правильной ориентации (учитывая EXIF orientation)


Пример использования
ImageManager im = new ImageManager(ctx, 100, 100);
Bitmap bm = im.setIsScale(true)
              .setIsResize(true)
              .setIsCrop(true)
              .getFromFile(myUri.toString());



Далее: OutOfMemoryError и решение

Итоги года для Android-разработчиков

Reading time3 min
Views27K
Подходит к концу 2014 год, и прежде чем отправиться на длительные новогодние праздники, наш Android-техлид Алексей Журавлев подвел итог уходящего года с точки зрения Android-разработки.

image

Android L
Самую ожидаемую версию операционной системы теперь можно установить на мобильное устройство.
Основные изменения:
  • ART вместо Dalvik: Google полностью отказался от Dalvik подхода c JIT компилятором в пользу компиляции приложений при установке, тем самым увеличив производительность приложений. Более подробно про ART тут.
    Правда, как показывает практика, некоторые приложения с использованием Native библиотек перестали корректно работать.
  • Material Design: полностью обновленный подход к формированию дизайна.
  • Battery Saver: теперь при слабом заряде батареи, устройство можно перевести в режим экономии. Достигается путем понижения частоты процессора.
  • Notification: новый подход к системе нотификаций. Подробнее.
  • Keyboard: новая клавиатура в стиле material design.
  • Еще некоторые изменения.

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

Urban Airship закрывает бесплатную лицензию

Reading time2 min
Views6.8K
Совсем скоро — 31 декабря, Новый год. Но вместе с этим и закроектся бесплатная Developer Edition в системе рассылки Push-уведомлений Urban Airship. Компания предлагает либо купить платную подписку, либо уйти к другим push-провайдерам.

Давайте посмотрим, какие у нас есть варианты.

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

Некоторые возможности использования Intent'ов

Reading time6 min
Views68K

Введение


Объекты типа Intent могут быть использованы для общения между отдельными частями Android приложения, либо между различными приложениями системы. Мощь механизма интентов заключается в том, что с его помощью можно обращаться к любому установленному в системе приложению. Это позволяет повторно использовать некоторые компоненты и значительно сократить время на разработку.

В этой статье я покажу некоторые возможности использования класса Intent для обращения к системным приложениям.
Читать дальше →

.NET Server Core, кросс-платформенная разработка, Visual Studio 2015 и другие анонсы Microsoft Connect()

Reading time6 min
Views86K

Сегодня в Нью Йорке проходит конференция Microsoft Connect(), на которой анонсированы новые продукты и технологии. Выпущена предварительная версия Visual Studio 2015, специальная бесплатная редакция Visual Studio Community 2013, Visual Studio 2013 update 4, открывается исходный код .NET Server Core, выпущена предварительная версия .NET 2015, обновлены инструменты кросс-платформенной разработки на базе Apache Cordova, в Visual Studio появился эмулятор ОС Android. Это действительно новый этап в развитии инструментов разработки Microsoft, и мы рады рассказать о деталях.
Читать дальше →

Введение в Size Classes в Xcode 6

Reading time6 min
Views62K
Привет всем! Сегодня хотелось бы сделать небольшое введение в такую штуку, как Size Classes. Она появилась недавно вместе с Xcode 6, документации по ней от самой Apple совсем немного.

Итак, для чего же предназначена Size Classes? Все мы знаем, что на подходе уже iPhone 6 двумя (как минимум) разными размерами дисплея (4,7 и 5,5), после чего разработчикам еще больше придется заморачиваться с версткой UI для них + само собой расширения iPad«ов. В итоге количество всех поддерживаемых экранов будет около 7 (маленький привет Android). Герой сегодняшнего дня — Size Classes — как раз и предназначен для того, что бы помочь решить данную проблему.
Читать дальше →

Перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures»

Reading time3 min
Views67K
imageПривет, Хабр!

Мы (@ali_aliev и avenat) с удовольствием представляем вашему вниманию перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures» от Брэда Миллера (Brad Miller) и Дэвида Ранума (David Ranum) из Luther College, что в Айове, США.

О чём?

В учебнике подробно рассматриваются, объясняются и анализируются наиболее часто используемые структуры данных и алгоритмы. Изложение идёт от простого (что такое алгоритм, как оценить его производительность) к сложному (деревья, графы) с живыми примерами и кодом. В качестве языка программирования выбран Python, а для тех, кто с ним плохо знаком, в первой главе есть большой раздел с его концентрированным описанием.

Авторы рассказывают о таких структурах данных, как стеки, очереди (в том числе с приоритетом), деки, хэш-таблицы, списки, деревья и графы. Последним двум вообще посвящены весьма не маленькие главы. Изложение не просто описательное: для каждой структуры предлагается вариант (а иногда и не один) её реализации на Python. Упор, естественно, делается на объектно-ориентированное программирование: создаётся класс, к нему пишутся методы, некоторые из которых авторы оставляют читателям для самостоятельной доработки. Затем идут примеры использования рассмотренной структуры и описание алгоритмов с её участием.

Одна из глав учебника посвящена рекурсии, в том числе её графическому представлению (фракталы). Разбирается несколько известных рекурсивных задач, а в конце наглядно демонстрируется, что эта методика, несмотря на её элегантность, отнюдь не «серебряная пуля».

Не обделены вниманием и классические алгоритмы для сортировки и поиска. И, естественно, для каждого из них анализируются производительность и «подводные камни», а так же даются рекомендации по применению. В последних главах, посвящённых деревьям и графам, даётся много материала об их разновидностях и связанных с ними алгоритмах. Изложение тут становится более сжатым, многие моменты просто описываются с тем, чтобы после прочтения главы читатель реализовал их самостоятельно.
Читать дальше →

Фантастические сериалы — обзор от фаната

Reading time8 min
Views82K
Мне наступили на больную мозоль, сделав некий обзорный пост по нескольким фантастическим сериалам.
А так как субботним вечером делать особенно нечего, давайте-ка я сделаю свой, более полный.
Да, будут спойлеры, имейте в виду.
Да, и очень много картинок! Трафик!

Начнём со Stargate

Целое семейство сериалов, начавшихся с одноимённого фильма.
Это во-первых, конечно,

Stargate SG-1
10/10
image
Читать дальше →

Вконтакте wall.post посредством C#

Reading time6 min
Views45K
В рамках одного нашего проекта в Brights появилась необходимость реализовать автоматическую публикацию обновлений на стену сообщества Вконтакте. Подобная задача, думаю, встречается довольно часто. Подкатом предлагаю готовый пример реализации на языке C#.
Читать дальше →

Создание приложения для Windows Phone 7 от начала до конца. Часть 1

Reading time4 min
Views41K
Эта статья и прилагаемое к ней приложение-пример поможет вам начать создавать полноценные приложения для Windows Phone 7. Вы узнаете об общих вопросах разработки на примере создания простого приложения для отслеживания количества топлива, потребляемого вашим автомобилем. В этой статье описываются вещи, которые вы должны знать, прежде чем приступить к созданию приложений для Windows Phone.

Вы также узнаете, как выполнять следующие задачи (ниже указаны ссылки на другие части):
Читать дальше →

DropBox теперь поддерживает скриншоты

Reading time1 min
Views52K


Необходимо обновить клиент до версии 2.4.0. для того, чтобы в настройках появилась опция скриншотов.

Теперь по нажатию printscreen, alt+printscreen, ctrl+alt+printscreen, ctrl+printscreen будет выполнен скриншот и сохранён в папку DropBox. Комбинации с ctrl позволят сразу скопировать в буфер ссылку на скриншот.

На Маке работает с маковскими хоткеями для скриншотов.

upd: Как подсказывает хабраюзер Firz, данная функция уже присутствует в версии 2.3.31

Покупаем на taobao.com

Reading time6 min
Views81K
Я оставил в России много настольных игр, везти их с собой во Вьетнам смысла не видел. Надеялся, что можно будет что-то купить на месте. Облом-с, тут про настольные игры мало чего слышали, никаких магазинчиков специализированных нет. Выход был найден — рядом Китай, с огромным ассортиментом и относительно небольшими ценами. Сейчас я вам расскажу, на примере закупки настольных игр, как можно покупать что-то в Китае.

taobao.com — это китайский ebay, или что-то на него похожее. Большое количество разных магазинов, предоставляющих разного вида товары. Если я все правильно понял — сам taobao это как аггрегатор таких магазинов. Можно найти огромное количество разных товаров: игрушки, техника, одежда, и т.д. и т.п. Разброс цен большой, как всегда для Китая, от очень и очень низких, до обычных европейских. Качество соответственное.

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

Квантовая механика для всех, даром, и пусть никто не уйдёт обиженным: часть первая

Reading time10 min
Views223K
Здравствуйте! Я хотел бы представить вашему вниманию отличное введение в квантовую механику, написанное Элиезером Юдковским; быть может, он известен вам по своему сайту lesswrong.com, посвящённому рационализму, предрассудкам, когнитивным парадоксам и ещё многим интересным вещам.
Читать дальше →

Pantech Burst — андроидфон по приятной цене

Reading time4 min
Views94K
    Какой более-менее вменяемый смартфон сегодня можно приобрести за сумму чуть более чем $100? Вот и я не так давно задался этим вопросом и начал поиск.

    Покупать китайского товарища совсем не хотелось, решил изучить рынки Европы и США на предмет такого устройства, т.к. часто «у них» можно найти выдающиеся аппараты практически за копейки. Два года назад хитом был Orange San Francisco (ZTE Blade) ценой в £99, но для сегодняшнего времени конечно он уже прилично устарел. Чем же его можно заменить?

    Вашему вниманию хочу представить достойную замену на место старичка — Pantech Burst ценой примерно в $120!
Читать дальше →

Правила, которым должен удовлетворять проект для публикации на Кикстартере

Reading time5 min
Views37K
Рекомендации по созданию проекта

Итак у Вас в голове родился Гениальный проект, но нет средств для его финансирования. Где взять деньги на осуществление своей мечты? В последнее время всё большую популярность получает способ сбора средств за счёт “народного” финанасирования. Лидером в сборе средств посредством крауфандинга сегодня является конечно
Кикстартер — платформа для финансирования разнообразных креативных проектов, от традиционного искусства до сложных современных технологичных устройств. Однако далеко не все проекты допускаются к сбору средств на этой площадке, так что прежде чем начинать готовить свой проект для размещения уточните имеет ли она шансы на то, чтобы быть допущенным к участию в программе. Каким правилам должен удовлетворять сам проект, что запрещено, каким правил нужно придерживаться в процессе публикации и продвижения проекта? На все эти вопросы я постарался дать ответ в данной статье.

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

Расширение возможностей экрана блокировки в Android 4.2.x

Reading time2 min
Views151K
Многие владельцы планшетов линейки Nexus или других моделей под управлением Android 4.2.x, заметили что разработчики Google довольно мало внимания уделили экрану блокировки. В данном посте хочу рассказать про один очень полезный инструмент, который позволит использовать экран блокировки более эффективно. Речь пойдет о DashClock Widget (GooglePlay).


Кому интересно — прошу под кат.
Читать дальше →

Web-страницы внутри презентаций Microsoft PowerPoint

Reading time2 min
Views38K


Задача

Встроить web-страницу в слайд PowerPoint, чтобы докладчик мог, не прерывая презентацию, продемонстрировать сайт, показать видео, встроить PDF-документ или устроить интерактивное голосование среди слушателей.
Читать дальше →

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity