Search
Write a publication
Pull to refresh
1
0
Евгений Смирнов @jenissimo

User

Send message

Определение процента схожести нарисованного 2d-полигона с заданным шаблоном

Reading time6 min
Views30K
Приветствую, друзья.

Как вы знаете, в последнее время технология разработки игр для мобильных платформ развивается очень бурно. Игры пишутся на самых разных движках и языках, мы не будем в этой статье обсуждать, почему тот или иной язык/движок лучше или хуже (правда ведь?). Разработчики пытаются придумать новые интересные и удобные элементы управления игрой. Мне как игроку очень нравится использовать в игре геометрические элементы. Например такие, как в игре Джаггернаут для мобильных устройств.



Я попробую рассказать вам об алгоритме определения нарисованных 2d фигур. Свою версию движка я написал на языке ActionScript 3.0. При желании(и наличии базовых знаний по геометрии) его можно реализовать на любом другом.

Итак, нам необходимо по нарисованной руками фигуре определить процент схожести с имеющейся:


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

Простые стейт-машины на службе у разработчика

Reading time8 min
Views194K
Представьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое.

Начинает он с одного выпадающего окошка, тестирует анимацию, выставляет ease out 100% и наслаждается полученным результатом. Но вскоре он понимает, что для того, чтобы управлять менюшкой, хорошо бы знать закрыто оно сейчас или нет. Мы-то с вами тут программисты опытные, все понимаем, что нужно добавить флаг. Не вопрос, флаг есть.

var opened = false;

Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:

var opened = false;
var animating = false;

function onClick(event) {
  if (animating) return;
  if (opened) close();
  else open();
}

Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:

if (enabled && opened && !animating && !selected && finishedTransition && !endOfTheWorld && ...) { ... }

Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.

Знакомьтесь, это Вася.


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

Пентест на стероидах. Автоматизируем процесс

Reading time6 min
Views46K
С данной темой доклада я выступал на CodeFest. А здесь я перескажу словами, что, как и зачем.


Доклад довольно поверхностный и не требует практически никакой квалификации в области ИБ. Был рассчитан на целевую аудиторию (веб-разработчики, тестировщики (не на проникновение), сисадмины и т.д.). Все довольно просто: несколько утилит, запустили, подождали, разбираем отчет.

Видеоприглашение на конференцию:

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

Текстурирование спрайтов с помощью (dis)placement map

Reading time3 min
Views5.1K

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

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

Суть в том, что в изучаемой мной игре есть большое количество анимированных спрайтов человечков (как я изначально считал — заранее отрендеренных). Человечки разные (по-разному одетые, разных цветов и т.п.).
Читать дальше →

Adobe Flash CS5 + Adobe Flash Builder — общие проекты

Reading time3 min
Views11K

Как известно, эти два продукта прекрасно уживаются вместе. Что удивительно — многие об этом не знают. Они давятся, плюются, но пишут код в Flash CS 5.
Данная статья рассказывает, как скрестить эти два продукта и как побороть мелкие неприятности в процессе.

Зачем нам Flash Builder, если есть Flash?
Ответ достаточно очевиден:
1. Нормальный Debug (condition breakpoints и прочие прелести)
2. Нормальный редактор кода с хоть каким-то, но рефакторингом
3. Version control
4. Интеграция с багтрэкерами
5. Другие вкусности Eclipse

Проблемы:
1. Абсолютные пути
2. Version control
3. Flex library projects и их подключение

Под катом описание мягкого способа создания проекта, при котором не будет проблем ни с svn, ни с абсолютными путями.
Читать дальше →

Ajenti 0.4

Reading time1 min
Views1.7K
За короткий срок мне удалось выполнить почти все ваши, хабраюзеры, заказы на функциональность, и теперь я просто хочу донести до вас новость о выпуске новой версии (осторожно, пост-changelog!).

Традиционная картинка для привлечения внимания:

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

Первый пост

Reading time3 min
Views94K
После четырехлетнего молчания команда «ВК» решила открыться миру. И первым шагом в этом процессе станет общение с пользователями «Хабрахабра» — главного сообщества разработчиков в России.

image

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

Сравнение OpenGL и Direct3D

Reading time6 min
Views122K
Очень часто встречаются различные заблуждения по поводу этих двух API.

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

Так как тема очень холиварная, я старался придерживаться максимально нейтрального тона.
Читать дальше →

Установка PHP-FPM на Debian из пакетов

Reading time3 min
Views13K
PHP-FPM — патч к PHP, предоставляющие альтернативный интерфейс FastCGI. Обычно используется с nginx в проектах с высокими нагрузками или дефицитом ресурсов. Для удобной и упрощенной инсталляции мы собрали PHP-FPM в пакет для Debian 5 Lenny. Последнюю пару недель тестировали и тюнили, сейчас выложили в публичный доступ. Над пакетами в поте лица трудился viliar, которому дружно направляем за это благодарности и карму. Багрепорты и замечания приветствуются, лучше комментами к посту.

Инструкция по установке


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

Отладка Javascript

Reading time5 min
Views146K
Debug Logo

Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».

Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.

(Примечание: наверное эта статья больше для новичков. Так что не судите строго)

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

aptitude vs apt. 5 причин, почему я использую aptitude

Reading time2 min
Views74K
Пять параметров, по которым aptitude превосходит (по четвертому параметру не уступает) apt:

1. Логичность синтаксиса. И единство управления.
2. Гибкость поиска.
3. Проставление меток пакетов.
4. Разрешение зависимостей.
5. Интерфейс.

наглядно и с картинками

placeholder.js

Reading time1 min
Views24K
В HTML5 есть замечательный атрибут placeholder.

<input placeholder="inbox@disney.com">

placeholder

Сейчас он работает только в webkit-браузерах (Safari, Google Chrome).

С помощью JS, не изобретая велосипедов, placeholder.js делает этот атрибут кроссбраузерным.

<input placeholder="inbox@disney.com" id="some_input">
<script type="text/javascript">
  inputPlaceholder( document.getElementById('some_input') )
</script>


placeholder.js (1.3 килобайта)

GMate — набор полезных расширений для gedit

Reading time2 min
Views8.7K
image

Редактором по умолчанию в GNOME и, следовательно, Ubuntu является gedit. И в отличии от Блокнота в Windows он полезен :), однако выглядит он всё таки очень простым, даже после установки пакета gedit-plugins. Но на самом деле это довольно милый и хорошо расширяемый редактор, нужно просто добавить воды расширений.

GMate смотрит в сторону прекрасного TextMate из Mac OS X и содержит в себе подборку самых вкусных расширений, сниппетов, тем. Изначально, GMate создавался именно для Ruby-разработчиков, но пригодиться и для других разработчиков.

Если Вы любите GNOME и Ruby, то просто обязаны его поставить :).
Читать дальше →

Проверка хабраэффекта на оптимизированной CMS Livestreet…

Reading time3 min
Views1.9K
image
Хотел бы рассказать вкратце о том, как Хабр помог мне в...(сложно написать литературно) Короче, попросту, помог:

а) Завести новое, продуктивное знакомство;
б) Сделать из «ВАЗ-2106» Хонду CR-V (аллегория); сделать из медленного сайта летающий;
в) Познакомиться с процессом переезда проекта с хостинга типа «шаред» на хостинг VPS.

… Решил я, значит, реанимировать как-то сайт, размещённый на шаред-хостинге от МастерХоста, который «сдувался» уже при 20-ти пользователях он-лайн по причине превышения допустимой нагрузки на проц сервера. Изначально думал изначально сделать выбор в пользу съёма VDS, но чтобы с кем-нибудь на двоих-на троих. На удивление своё, получил в топике следующий комментарий от пользователя Andrey_Rogovsky:

Я занимаюсь оптимизацией под высокие нагрузки и у меня есть свой сервер под VPS, со свободным местом.
С удовольствием бесплатно приму тебя к себе на VPS, и попробую грамотными настройками выправить ситуацию с LiveStreet.
Интересует? Пиши в хабрапочту!

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

Список полезных PHP классов и библиотек

Reading time4 min
Views65K

Email


  • Swift Mailer
    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer
    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.

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

Видео урок по пайке мелочевки

Reading time1 min
Views33K
Снял тут пару пробных роликов по пайке простейшей мелочевки. Думаю будет полезно тем кто хочет примкнуть к паяющей братии, но при виде разной мелочевки впадает в ступор «как же ЭТО паять?» На самом деле все просто :)

Для начала выводные компоненты:


Затем резисторы:


А напоследок микросхемы:


О том как сделать печатную плату в домашних условиях уже было сказано и показано

Если заинтересовала тема и хочется узнать большего, то добро пожаловать на easyelectronics.ru

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity