Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Александр Глаголев @exponentum
User
MXML компилятор. Часть 2. Не строковые инициализаторы параметров
4 min
1.6KПривет, Хабр!
В предыдущей статье я провёл некий ликбез по внутренностям Flex-компилятора (по части MXML) и рассказывал, как избавить себя от проблем работы с классами в MXML, требующими параметры конструктора. Сейчас мы разберём другую сторону вопроса — установка параметров в custom-значения (к примеру, константы) без использования механизма Binding (хотя, очень похоже на него).
В предыдущей статье я провёл некий ликбез по внутренностям Flex-компилятора (по части MXML) и рассказывал, как избавить себя от проблем работы с классами в MXML, требующими параметры конструктора. Сейчас мы разберём другую сторону вопроса — установка параметров в custom-значения (к примеру, константы) без использования механизма Binding (хотя, очень похоже на него).
+22
Упрощение жизни разработчика с помощью сторонних сервисов
3 min
9.7KПредставляю скромную подборку сервисов, которые ускоряют экономят время разработчику и/или ресурсы сервера. Здесь не будет подробных обзоров, только список с кратким описанием и ссылками. Также, я не претендую на свежесть ресурсов, поэтому кому-то перечисленный список покажется слишком очевидным и известным всем.
Буду рад включить ссылки и описания, предложенные в комментариях.
Google Fusion Tables
Позволяет развернуть реляционную базу данных на серверах гугла с обращениями с помощью библиотеки Visualization или JSONP.
Статья на хабре: habrahabr.ru/blogs/webdev/116035
Ссылка: www.google.com/fusiontables/Home
Минусы: количество обращений в секунду равно пяти с одно IP адреса и столько же при обращении с аккаунта (используя авторизацию). То есть развернуть сайт с хорошей посещаемостью и работать с сервисом с помощью сервера не получится. Стоимость увеличения лимита — от 10 тысяч долларов в год (см. Maps API Premier). Кроме того, отсутствуют джойны, которые заменяются представлениями (view), создаваемыми через интерфейс.
Буду рад включить ссылки и описания, предложенные в комментариях.
Google Fusion Tables
Позволяет развернуть реляционную базу данных на серверах гугла с обращениями с помощью библиотеки Visualization или JSONP.
Статья на хабре: habrahabr.ru/blogs/webdev/116035
Ссылка: www.google.com/fusiontables/Home
Минусы: количество обращений в секунду равно пяти с одно IP адреса и столько же при обращении с аккаунта (используя авторизацию). То есть развернуть сайт с хорошей посещаемостью и работать с сервисом с помощью сервера не получится. Стоимость увеличения лимита — от 10 тысяч долларов в год (см. Maps API Premier). Кроме того, отсутствуют джойны, которые заменяются представлениями (view), создаваемыми через интерфейс.
+142
Добавляем в Flex-компилятор MXML параметры конструктора
6 min
3.3K
В то время я делал проекты с использованием Flex-а, и чем больше проекты становились, тем сильнее мне не нравилось некоторые нюансы его внутреннего устройства.
Думаю, каждому, кто работал с Flex-ом, известны его проблемы, а так же низкое качество кода как уже написанного, так и генерируемого из MXML, поэтому я решил вмешаться в этот процесс с целью навести порядок и разобраться в устройстве Flex компилятора, и начал с добавления «сахара» в MXML, стараясь сделать это как можно сильнее в духе остальных фич детища Adobe-а. Спустя два года, я принял решение поделиться своими знаниями с Вами.
+34
Adobe Flash Player и передача потоковых данных без участия сервера, часть 1-я: организация пирингового вещания
6 min
18K Как известно недавнее обновление продуктов Adobe Flash Player до 10.1 и Adobe AIR до 1.5 версий осуществило целый фурор, презентовав новый протокол связи Real-Time Media Flow Protocol (RTMFP). Заранее попрошу не путать вышеупомянутый с Real-Time Messaging Protocol (RTMP) для использования которого был необходим Adobe Flash Media Server (FMS) на стороне обслуживающего сервера.
Разработчики обещают, что протокол будет обладать низкой задержкой во времени при пересылке пакетов, но самое главное, протокол ориентирован на организацию пиринговой сети.
Разработчики обещают, что протокол будет обладать низкой задержкой во времени при пересылке пакетов, но самое главное, протокол ориентирован на организацию пиринговой сети.
+39
Пишем шейдер на AGAL
10 min
16K
+43
Нормализация отношений. Первая и вторая нормальные формы
6 min
171KПредисловие
Нормализация отношений (таблиц) — одна из основополагающих частей теории реляционных баз данных. Нормализация имеет своей целью избавиться от избыточности в отношениях и модифицировать их структуру таким образом, чтобы процесс работы с ними не был обременён различными посторонними сложностями. При игнорировании такого подхода эффективность проектирования стремительно снижается, что вкупе с прочими подобными вольностями может привести к критическим последствиям.
Любому специалисту, по роду своей деятельности так или иначе связанному с проектированием реляционных баз данных, полезно понимать и уметь осуществить нормализацию отношений. И этим постом хотелось бы начать небольшую серию публикаций, посвящённых нормальным формам, имеющую целью дать тем читателям Хабрахабра, которые по различным обстоятельствам ещё не освоили эту тему, возможность легко заполнить этот пробел в знаниях.
Статья не имеет своей целью подробное и точное изложение принципов нормализациии, поскольку это, очевидно, невозможно в рамках блога в силу больших объёмов информации, необходимых для публикации при таком подходе. Кроме этого, для такой цели существует большое количество литературы, написанной прекрасными специалистами. Моя же задача, как я считаю, заключается в том, чтобы популярно продемонстрировать и объяснить основные принципы.
+42
Разработка мобильных приложений на Adobe Flash + AIR: обзор возможностей
14 min
26KTranslation
Недавно замечательная flash-игра Machinarium заняла 1 место в рейтинге платных игр для iPad. Тем не менее много талантливых разработчиков flash-игр с опаской смотрят в сторону мобильных платформ. На русском языке информации по теме крайне мало. Надеюсь эта статья немного улучшит положение вещей. Желаю приятного прочтения.


+40
Читаем QR код
5 min
1.1MTutorial

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.
Иллюстраций: 14, символов: 8 510.
+605
Ликбез по уязвимостям в веб-приложениях, а также самые частые ошибки разработчиков
7 min
40K
Эта статья — продолжение цикла статей по информационной безопасности в веб-приложениях (и не только).
Вообще думал написать о «белом ящике», но я решил что нужно сначала ликвидировать возможные пробелы у целевой аудитории (в основном веб-разработчики) в этой области.
Может многие и все знают, о чем я пишу в статье, но я попытаюсь разбавлять ее практическими примерами и занятным опытом.
Планирую, что это статья — предпоследняя. После данный цикл будет повторен, только в более сложном варианте, с бОльшим углублением в данную тему. Надеюсь меня хватит на это, и вообще, что есть смысл об этом писать.
Как обычно — ответственность за все полученные знания только на читателе :)
+129
Социальные игры: мечты или реальность
5 min
10KПриветствую всех хабражителей.
Уже более года постоянно читаю почти все посты на Хабре, вот теперь решил написать свой, т.к. уже более шести лет занимаюсь разработкой по различным направлениям, в том числе и разработкой игр для социальных сетей.
Начну с вопросов, которые сам себе задавал на начальном этапе и постараюсь подробно ответить.
1. Главное идея — правда ли это?
2. Что лучше flash или iframe?
3. Что же все-таки нужно для того чтобы начать разработку?
4. Какие методы раскрутки наиболее эффективные и как стоит планировать свою маркетинговую деятельность?
5. Стоит ли привлекать инвесторов или издателей?
6. Ну, и самое главное, срок окупаемости проекта и возможная прибыль, какова она может быть?
Уже более года постоянно читаю почти все посты на Хабре, вот теперь решил написать свой, т.к. уже более шести лет занимаюсь разработкой по различным направлениям, в том числе и разработкой игр для социальных сетей.
Начну с вопросов, которые сам себе задавал на начальном этапе и постараюсь подробно ответить.
1. Главное идея — правда ли это?
2. Что лучше flash или iframe?
3. Что же все-таки нужно для того чтобы начать разработку?
4. Какие методы раскрутки наиболее эффективные и как стоит планировать свою маркетинговую деятельность?
5. Стоит ли привлекать инвесторов или издателей?
6. Ну, и самое главное, срок окупаемости проекта и возможная прибыль, какова она может быть?
+46
Создаем match-3 игру при помощи Flash и ActionScript
32 min
62KTranslation
Всем коллегам, здравствуйте.
Я начинающий FlashGame-разработчик. Мне понравился урок по созданию игры на механике match-three. Сам урок я понял с первого раза, а для чего же я сделал перевод? Во-первых, надеюсь это поможет кому-то, кто не силен в «инглише». Во-вторых, перевод позволил мне разобрать весь код по косточкам, очень тщательно. Ну и в-третьих, отталкиваясь от этой механики вы можете начинать создавать мач-3 вашей мечты. И он необязательно должен быть на Flash.
Перед тем как я начну, выдам пару соглашений. Урок взят мной из книги Gary Rosenzweig — «ActionScript 3.0 Game Programming University». Я уже писал в своем личном блоге, что не все наши флеш-разработчики положительно относятся к этой книге. Перевод может показаться немного деревянным и не очень приятным на слух. Некоторые слова, выражения могут иметь более подходящие аналоги в русском языке. Если это будет критично, исправлю. В программе используется дополнительный класс PointBurst. Я не буду его сейчас описывать, а скорее всего сделаю это в личном блоге, т.к. это довольно интересный класс. Просто пока будем знать, что этот класс выдает эффект всплывающих очков в определенном месте.
И последнее, я не придумывал ничего нового, а просто сделал перевод, т.е. все благодарности автору книги Gary Rosenzweig.

Я начинающий FlashGame-разработчик. Мне понравился урок по созданию игры на механике match-three. Сам урок я понял с первого раза, а для чего же я сделал перевод? Во-первых, надеюсь это поможет кому-то, кто не силен в «инглише». Во-вторых, перевод позволил мне разобрать весь код по косточкам, очень тщательно. Ну и в-третьих, отталкиваясь от этой механики вы можете начинать создавать мач-3 вашей мечты. И он необязательно должен быть на Flash.
Перед тем как я начну, выдам пару соглашений. Урок взят мной из книги Gary Rosenzweig — «ActionScript 3.0 Game Programming University». Я уже писал в своем личном блоге, что не все наши флеш-разработчики положительно относятся к этой книге. Перевод может показаться немного деревянным и не очень приятным на слух. Некоторые слова, выражения могут иметь более подходящие аналоги в русском языке. Если это будет критично, исправлю. В программе используется дополнительный класс PointBurst. Я не буду его сейчас описывать, а скорее всего сделаю это в личном блоге, т.к. это довольно интересный класс. Просто пока будем знать, что этот класс выдает эффект всплывающих очков в определенном месте.
И последнее, я не придумывал ничего нового, а просто сделал перевод, т.е. все благодарности автору книги Gary Rosenzweig.

+33
Генерация аналитических поверхностей на примере карт. Часть 3
4 min
3.1KВведение
Точное физическое моделирование требует высокополигональных карт. Чем выше точность карты, тем больший объем памяти она занимает и тем больше приходится обрабатывать данных, чтобы получить высоту. Сплайновая интерполяция позволяет получить сетку любого разрешения, с любым, удобным в данный момент, шагом по широте и долготе.
+18
Генерация аналитических поверхностей на примере карт. Часть 2
3 min
3.4KВведение
Если у Вас есть данные с неравномерной сеткой, важнейшим этапом в их обработке является преобразование в набор данных с равномерной сеткой. Данное преобразование необходимо для компьютерного моделирования в реальном масштабе времени или его приближении. Получение высоты непосредственно из неравномерной сетки является ресурсоемкой операцией.
+21
Создание одностраничного ajax-приложения с поддержкой History API (и без нее)
4 min
52KСудя по комментариям в этой статье, создание веб-приложений с возможностью аякс-навигации является интересной для сообщества темой и пока еще немногие сталкивались с подобной задачей. Я расскажу о ее решении с помощью небольшой библиотеки под названием jQuery-Pjax (либо моего форка ее).
Моя мотивация: в проекте нужно было реализовать mp3-плеер, играющий независимо от навигации на сайте. Далее потребовалось добавить поддержку браузеров без pushState — и я сделал форк библиотеки.
Моя мотивация: в проекте нужно было реализовать mp3-плеер, играющий независимо от навигации на сайте. Далее потребовалось добавить поддержку браузеров без pushState — и я сделал форк библиотеки.
Основные особенности
- навигация по сайту и обработка форм без полной перезагрузки страниц
- чистые url, доступные для прямого доступа
- поддержка #!/hash для устаревших браузеров (добавлено в моей версии)
- работа с кнопками «назад» и вперед» для современных браузеров
- а теперь и для старых — благодаря benalman.com/projects/jquery-hashchange-plugin
похоже, есть проблемы с ИЕ7 (спасибо Nc_Soft)(тем более, большое спасибо за участие Nc_Soft)и, возможно, opera 11.5 (пока не могу подтвердить, но нахожу крайне удивительным из-за dev.opera.com/articles/view/introducing-the-html5-history-api) — сообщение artishok— проверено и работает на сборке 1074 (not_ice)- imsamurai (https://github.com/imsamurai) предложил улучшения библиотеки (и я радостью слил изменения): встроенная функция для отправки форм, улучшения работы с хешами и более развитая система триггеров. (у imsamurai, к сожалению, нет аккаунта на хабре — будем рады помощи)
Ссылки
- jQuery Pjax github.com/defunkt/jquery-pjax
- мой форк с поддержкой хеш-навигации github.com/ckald/jquery-pjax
- работа библиотеки на примере моего проекта amsterdamusic.com.ua
- пример от создателя pjax.heroku.com
Принцип работы Pjax
+79
О вреде копирайта и пользе лицензионных программ
16 min
23KВ этой статье мы расскажем об основных юридических аспектах информационной безопасности. Иными словами, — о том, как не нарушить закон, не потерять бизнес и не попасть в тюрьму.

Тест на сообразительность. Правомерна ли запись этой картинки в память вашего компьютера? Кто ее туда записал? Является ли она произведением искусства? Является ли она результатом интеллектуальной деятельности? Кто ее правообладатель? Как вы можете все это выяснить наверняка? Как вы охарактеризуете того, кто все это придумал?
Законодательство РФ в сфере интеллектуальных прав вызвало у нас сложные чувства... Его основа — Гражданский кодекс в редакции 2008 года. К сожалению, далеко не все руководители российских организаций его внимательно читали. А из тех, кто читал, не все поверили своим глазам. В ходе проведенного нами исследования обнаружился низкий уровень правовой грамотности в сфере ИТ: люди часто не знают, как же нужно действовать, чтобы не оказаться виновными. Впрочем, и у нас в Евросоюзе ситуация вокруг копирайта развивается не лучшим образом :(
Чтобы выжить, нужно хорошо знать закон. Это очень помогает против сами знаете кого. Мы приведем строгий юридический анализ проблемы применительно к деятельности организаций, являющихся резидентами РФ.
Прежде всего, «лицензионных» и «нелицензионных» программ с юридической точки зрения не существует. Запомните термин, который используется в законодательстве РФ — «результат интеллектуальной деятельности» (РИД). Примеры РИД — компьютерная программа (.js), музыка (.mp3), видео (.flv), картинка (.jpg), литературный текст (.htm). Есть и другие типы РИД — от торговой марки до дизайна кресла. Каждый РИД сам по себе не может быть «лицензионным» или «нелицензионным». А вот вы либо можете его использовать, либо не можете. Это зависит, в частности, от наличия у вас документа, разрешающего использование этого РИД. Пример использования — запись вами РИД в память компьютера. Чтобы использовать несколько РИД, нужно письменное разрешение на каждый из них. Без явного разрешения правообладателя ГК РФ запрещает вам использование любого РИД любым способом.
Есть редкие исключения. Например, вы имеете право без разрешения воспроизвести немного грустной музыки на похоронах. Но это слабое утешение. Подобные исключения не меняют сути дела.

Тест на сообразительность. Правомерна ли запись этой картинки в память вашего компьютера? Кто ее туда записал? Является ли она произведением искусства? Является ли она результатом интеллектуальной деятельности? Кто ее правообладатель? Как вы можете все это выяснить наверняка? Как вы охарактеризуете того, кто все это придумал?
Законодательство РФ в сфере интеллектуальных прав вызвало у нас сложные чувства... Его основа — Гражданский кодекс в редакции 2008 года. К сожалению, далеко не все руководители российских организаций его внимательно читали. А из тех, кто читал, не все поверили своим глазам. В ходе проведенного нами исследования обнаружился низкий уровень правовой грамотности в сфере ИТ: люди часто не знают, как же нужно действовать, чтобы не оказаться виновными. Впрочем, и у нас в Евросоюзе ситуация вокруг копирайта развивается не лучшим образом :(
Чтобы выжить, нужно хорошо знать закон. Это очень помогает против сами знаете кого. Мы приведем строгий юридический анализ проблемы применительно к деятельности организаций, являющихся резидентами РФ.
Прежде всего, «лицензионных» и «нелицензионных» программ с юридической точки зрения не существует. Запомните термин, который используется в законодательстве РФ — «результат интеллектуальной деятельности» (РИД). Примеры РИД — компьютерная программа (.js), музыка (.mp3), видео (.flv), картинка (.jpg), литературный текст (.htm). Есть и другие типы РИД — от торговой марки до дизайна кресла. Каждый РИД сам по себе не может быть «лицензионным» или «нелицензионным». А вот вы либо можете его использовать, либо не можете. Это зависит, в частности, от наличия у вас документа, разрешающего использование этого РИД. Пример использования — запись вами РИД в память компьютера. Чтобы использовать несколько РИД, нужно письменное разрешение на каждый из них. Без явного разрешения правообладателя ГК РФ запрещает вам использование любого РИД любым способом.
Есть редкие исключения. Например, вы имеете право без разрешения воспроизвести немного грустной музыки на похоронах. Но это слабое утешение. Подобные исключения не меняют сути дела.
+73
+24
IPO for dummies. Часть VIII: о мотивации
10 min
3.8KНачало и оглавление см. в первой части.
Акции у основателей компании и первых инвесторов — это очевидно. А как акции попадают к сотрудникам?
Ещё в самом начале развития стартапа основатель (особенно если он не имеет готовой команды) ищет первых сотрудников/коллег/соучастников, которые зачастую могут стать сооснователями. Станут или нет — зависит от многих факторов: сможет ли основатель обеспечить им зарплату «на уровне», от их commitment-а (помните байку про курицу и свинью, затеявших стартап в виде ресторанчика “Ham and eggs” и заспоривших, кто из них будет involved, а кто committed?), от их требований, наконец… Логично ожидать, что первые коллеги основателя, которые делят с ним в какой-то степени риск (а не просто ходят в офис отрабатывать зарплату), становятся, явно или неявно, сооснователями проекта. И в качестве компенсации за риск, в награду за приверженность делу, или как хороший стимулдля красноглазенья без выходных, основатель делится с ними своей долей.
Акции у основателей компании и первых инвесторов — это очевидно. А как акции попадают к сотрудникам?
Ещё в самом начале развития стартапа основатель (особенно если он не имеет готовой команды) ищет первых сотрудников/коллег/соучастников, которые зачастую могут стать сооснователями. Станут или нет — зависит от многих факторов: сможет ли основатель обеспечить им зарплату «на уровне», от их commitment-а (помните байку про курицу и свинью, затеявших стартап в виде ресторанчика “Ham and eggs” и заспоривших, кто из них будет involved, а кто committed?), от их требований, наконец… Логично ожидать, что первые коллеги основателя, которые делят с ним в какой-то степени риск (а не просто ходят в офис отрабатывать зарплату), становятся, явно или неявно, сооснователями проекта. И в качестве компенсации за риск, в награду за приверженность делу, или как хороший стимул
+115
IPO for dummies. Часть VII: про инсайд
5 min
3.1KНачало и оглавление см. в первой части.
Так что там про инсайд?
Если ты руководишь компанией, то определённо располагаешь бóльшим объемом информации, чем какой-нибудь миноритарий, купивший её акции на бирже через Интернет.
Но, если ты воспользуешься этим преимуществом, торгуя акциями, это будет нечестно по отношению к обычным покупателям-миноритариям. Согласись, если всё имущество твоей компании состоит из нефтяного танкера, и тебе первому сообщили, что он затонул, столкнувшись в Атлантике с айсбергом, то… ты бросишься на биржу продавать свои акции и останешься при деньгах. А вот акционеры компании, что узнают про затонувший танкер через пару дней из репортажа CNN, останутся с кучей мгновенно подешевевших до уровня фантиков акций на руках. Некрасиво, правда?
Так что там про инсайд?
Если ты руководишь компанией, то определённо располагаешь бóльшим объемом информации, чем какой-нибудь миноритарий, купивший её акции на бирже через Интернет.
Но, если ты воспользуешься этим преимуществом, торгуя акциями, это будет нечестно по отношению к обычным покупателям-миноритариям. Согласись, если всё имущество твоей компании состоит из нефтяного танкера, и тебе первому сообщили, что он затонул, столкнувшись в Атлантике с айсбергом, то… ты бросишься на биржу продавать свои акции и останешься при деньгах. А вот акционеры компании, что узнают про затонувший танкер через пару дней из репортажа CNN, останутся с кучей мгновенно подешевевших до уровня фантиков акций на руках. Некрасиво, правда?
+92
IPO for dummies. Часть VI: сложности выбора — два Lamborghini Gallardo или один Aventador?
6 min
2.5KНачало и оглавление см. в первой части.
Итак, моя компания вышла на IPO. Теперь я, как основатель, могу наконец-то сбросить свои акции и купить Lamborghini Gallardo! Да, я помню, что их придётся продавать «ниже рынка», но уж очень хочется прокатить Тамарку с пятого этажа на красивой спортивной машинке…
Ты весь бизнес затеял ради наживы, что ли?
(Возмущённо) Ради чего затеял — моё дело. Продам акции, куплю тачку-яхту-остров, буду наслаждаться, а дальше хоть трава не расти!
«Трава не расти», говоришь? Я правильно понимаю, что ты, основатель, хочешь выйти из бизнеса и забросить его?
У меня для тебя неприятная новость.
Итак, моя компания вышла на IPO. Теперь я, как основатель, могу наконец-то сбросить свои акции и купить Lamborghini Gallardo! Да, я помню, что их придётся продавать «ниже рынка», но уж очень хочется прокатить Тамарку с пятого этажа на красивой спортивной машинке…
Ты весь бизнес затеял ради наживы, что ли?
(Возмущённо) Ради чего затеял — моё дело. Продам акции, куплю тачку-яхту-остров, буду наслаждаться, а дальше хоть трава не расти!
«Трава не расти», говоришь? Я правильно понимаю, что ты, основатель, хочешь выйти из бизнеса и забросить его?
У меня для тебя неприятная новость.
+143
Information
- Rating
- Does not participate
- Location
- Киев, Киевская обл., Украина
- Date of birth
- Registered
- Activity