Увлекся разработкой игр на JS и HTML5 (сanvas)

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

Игра #1

Первой моей игрушкой сделал стала “Swell Foop” (была такая игра в пакете Gnome Games). Рабочая версия насчитывала около 200 строчек кода, потом добавил несколько плюшек и кода стало больше. Игра написана на чистом JS — т.е. без использования готовых библиотек или фреймворков.

Игра #2

Потом я начал делать свои танчики (Battle City). Изначально делал опять же на чистом JS, но потом распробовал библиотеку libcanvas и atom.js (от украинского программиста Павла Пономаренка) и переделал уже с использованием этих либ (просчет столкновений, спрайты, повороты и т.д.).

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

Вобще мне очень понравилось эта тема — позволяет отвлечься от PHP и попробовать что-то новое. Да и к геймдеву я никогда не был равнодушен :).

Symfony2. На чем можно сэкономить время при разработке?

Слайды моей презентации с Symfony Camp.

В целом кемп удался. Правда в прошлом году мне было намного интересней т.к. с symfony я ещё вобще не работал и объем новой информации был просто огромный. Именно тогда я впервые услышал такие слова как haml, less, twig, capistrano, hudson.. А сейчас мы используем в своей работе больше половины из этих вещей :).

На сегодняшнем кемпе мне больше всего понравился доклад Кирилла Чебунина (Чебы) “Symfony2 Service Container: Inject me, my friend” — я не копался в DI контейнере Symfony2 настолько глубоко и услышал новые для себя вещи.

На втором месте, пожалуй, был доклад Миши Бондарчука (Даверта) “TestGuy – эмулируем вашего тестировщика на PHP” — о этой разработке знаю довольно давно и очень хотелось посмотреть как же оно выглядит в реале.

Доклады Игоря Бровченка и Саши Демченка, тоже были довольно интересны людям, которые не работали с twig и redis. Мои ребята говорили, что им понравилось.

Вобщем ещё раз спасибо Игорю и Саше за организацию. Ждем следующий Symfony Camp ;).

ps. Кстати у нас (Frameworks Days) есть мысль провести весной 2012 “Symfony2 Framework Day”. Ивент сделать платным и пригласить на него несколько зарубежных докладчиков. Костя Кудряшов порекомендовал Ryan Weaver. Саша Демченко говорил, что Fabien Potencier готов был приехать на Symfony Camp, если бы ему оплатили расходы. Что вы об этом думаете? Думаю было бы круто.

#4й дайджест материалов по Symfony2

Как-то затянулся у меня 4й дайджест материалов. Уже и релиз Symfony2 состоялся, а я все никак не могу к добраться к публикации :).

Блоги посвященные Symfony2

Рекомендую подписаться на RSS лету блога — http://www.craftitonline.com/. Льюис контрибютит Symfony2 и часто выкладывает новые материалы.

Буквально вот только что наткнулся на интересный блог @qpleple, на котором есть серия хороших статей:

Как раз во время их прочтения решил, что материалы заслуживают добавления в дайждест и поэтому переключился на блог :).

На блоге http://webb-on-the-web.com/ Роджер Вебб написал всего пару статей, но обе на тему Symfony2. Итак:

Отдельные материалы на тему Symfony2

Symfony2: Checking Coding Standards — о том как проверять стандарты кодирования Symfony2 используя PHP_CodeSniffer. Сразу описана интеграция в Phing и Jenkins (Hudson).
И тут же в комментариях Кирилл Чебунин поделился линком на инфу о том, как это можно прикрутить к NetBeans — Coding Standards in NetBeans IDE with PHP CodeSniffer.

Symfony2 and DoctrineExtensions — о том как подключать Timestable, Sluggable, etc. Все довольно просто подключается и относительно хорошо работает.

Adding non-entity fields to your Symfony2 forms — название опять же говорит само за себя. К примеру, это можно использовать для форм в которых есть поле апдлоада.

Behat turns 2! Have fun and test what — Behat2 стал ещё лучше :). Либа довольно интересная и в хозяйстве полезная. Сейчас уже доступна версия 2.1.2.

Установка и настройка функционального тестирования в Symfony2 с помощью Behat и Mink — заметка на Хабре после которой я решил все таки попробовать Behat на живом проекте.

Использование Zend GData в Symfony2-проекте
— ещё одна заметка на Хабре, но уже на другую тему. Я с Gdata пока не работал. Вы работали? Для каких задач?

Symfony2\SecurityBundle — перевод «Symfony2 Blog Application Tutorial Part V: Intro to Security». Стоит прочитать.

Все

Если дочитали до этого места, то отпишитесь в комментариях. Давайте обсудим материалы или так про жизнь потрещим. Скучно без комментов то (:

Кстати на Symfony Camp идете? 29го октября я буду выступать там с докладом “Symfony2. На чем можно сэкономить время при разработке?“. Прошлогодний кемп мне очень понравился.

Zend Framework Day

Zend Framework Day12 ноября, в Киеве, пройдет конференция “Zend Framework Day” – посвященная популярному PHP фреймворку Zend Framework. Среди докладчиков будут непосредственные разработчики компонентов Zend Framework. Событие соберет лучших PHP и Zend Framework специалистов из Украины, России, Белоруссии и других стран СНГ.

С текущим списком тем и докладчиков можно ознакомиться на странице http://frameworksdays.com/event/zend-framework-day-2011/speakers

Событие будет интересно не только тем, кто использует Zend Framework, но и всем веб-разработчикам и PHP программистам в частности.

Место проведения — отель “Казацкий”, г. Киев, ул. Михайловская 1/3 (Площадь Независимости).

Со стоимостю участия и другой необходимой информацией вы можете ознакомиться на странице http://frameworksdays.com/event/zend-framework-day-2011

Для участия в конференции необходимо пройти регистрацию на странице http://frameworksdays.com/register, а затем произвести оплату из личного кабинета.

Наши новости в twitter – http://twitter.com/fwdays
Наша страница в facebook – http://facebook.com/fwdays

nginx, Opencart и ЧПУ

Для того, чтобы в nginx заработали ЧПУ’шные линки Opencart’а, в секцию настроек сервера нужно добавить такой конфиг:

    location / {
            try_files $uri @opencart;
    }
 
    location @opencart {
            rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }

PS. Включили ЧПУ на Радиалке. В итоге линки стали вот такие http://radialka.net/Spalniki/Osen-vesna/Spalnik-Campus-Light-200-lady

Заметки по установке и настройке Linux Fedora 15 на Dell Vostro 3300

Arch Linux конечно клевый, но меня изначально как-то отпугнул внешний вид Gnome3 (оказалось, что он был в режиме Failback) и в то же время мне понравились скриншоты Fedora 15 с “немного не таким” Gnome 3 (оказалось, что это и есть стандартный режим). Вот так он примерно выглядит (кликабельно):

“Эх. Гулять так гулять!” подумал я и ввязался в эпопею с переходом на новый дистрибутив.
Continue reading

Django. Заметки по установке и ссылки на документацию

Это просто заметка на память.

# Установка Django

Официальная документация:
https://docs.djangoproject.com/en/1.3/intro/install/
https://docs.djangoproject.com/en/1.3/topics/install/#installing-official-release

Русскоязычные статьи:
http://mamishev.ru/django-deploy/
http://www.seocoder.org/2011/04/25/ustanovka-djangoapache2mod_wsgi-na-ubuntu-10-10

## Устанавливаем python, пакет MysqlDB і mod_wsgi для Apache2
$ sudo apt-get install python python-mysqldb libapache2-mod-wsgi

## Качаем исходники Django
$ sudo mkdir /usr/share/python/django_1.3
$ cd /usr/share/python/django_1.3
$ svn co http://code.djangoproject.com/svn/django/tags/releases/1.3/ .

## Прописываем путь к Django в питоне
$ sudo ln -s /usr/share/python/django_1.3/django /usr/lib/python2.6/dist-packages/django
(?) $ sudo echo /usr/share/python/django_1.3/django > /usr/lib/python2.6/dist-packages/django.pth

## Создаем симлинки
$ sudo ln -s /usr/share/python/django_1.3/django/bin/django-admin.py /usr/local/bin/

## Проверяем
$ python
>>> import django
>>> print django.get_version()
1.3 SVN-16452

# Документация
Официальный туториал
Книга Марка Пилгрима “Вглубь языка Python
DjangoBook на русском
DjangoBook на английском

Третий дайджест материалов по Symfony2

@Spoil_me_easy: Хочу напомнить: вы просрали уже 25 дней лета. У вас ещё 67. Удачи.

Новости

Вчера вышел первый релиз кандидат Symfony2. Т.е. не за горами релиз первой стабильной версии Symfony2, а значит его потихоньку можно использовать для реализации коммерческих проектов. УРА!

Начал работу PEAR канал Symfony2. На нем доступны отдельные компоненты фреймворка. Если вы используете эти компоненты в нескольких проектах, тогда жизнь станет чуточку проще ;).

В Symfony2 появился интерактивный генератор бандлов, который может сильно облегчить жизнь на начальных стадиях разработки проекта. Посмотрите видео — это магия :).

UPD. Совсем вылетело из головы! С недавнего времени mailing лист по симфони разделили на отдельные mailing листы для первой и для второй версии фреймворка.

Полезные ресурсы

Почитайте блог Ричарда Миллера — за относительно небольшой промежуток времени он успел написать довольно много интересных статей. К примеру, “Symfony2: Moving Away From the Base Controller” — руководство о том как избавиться от наследования базового контроллера и сделать контроллер отдельным сервисом. Использовать почерпнутые из статьи знания следует с умом. Например, Фабьен Потенсьер негативно высказывается о таком подходе.
Continue reading

BlogBundle для Symfony2

После реализации PortfolioBundle, я решил сделать простенький бандл для блога.

Вот что в нем реализовано на данный момент:

  • CRUD записей
  • Подключен редактор разметки markItUp!
  • Реализована подсветка исходного кода в тексте при помощи GeSHi
  • Для создания/редактирования тегов записи написан отдельный тип формы и преобразователь данных
  • Генерация RSS ленты записей при помощи \Zend\Feed (ZF2)
  • Модели и контроллеры покрыты тестами

Ниже я остановлюсь на некоторых моментах более детально.
Continue reading

Бандл для подключения TinyMCE к Symfony2

Дай, думаю, черкну несколько строк о том чем я занимаюсь, а то тишина в блоге :).

Недавно создал простенький бандл для подключения TinyMCE к Symfony2 проектам. Называется он TinymceBundle и лежит на гитхабе.
Continue reading