среда, 8 октября 2014 г.

Flex4.6 + Symfony 2.3 = Авторизация пользователей из Flash приложения

Дали мне тут тестовую задачу, типа, а напишите ко Вы нам, ни много ни мало, приложение, реализующее механизм Авторизации/Регистрации пользователей на flash+PHP, денег, естественно, не дадим. Ну, типа, если напишите, то поверим Вам, что вы крутой, что да, и что можно разговаривать дальше с Вами за деньги.
Подход мне такой, конечно, никогда не нравился, тем более, что работки то не мало, это не то, чтоб баннерок состряпать, хотел сразу послать, но тут подумал, а не двинуть ли мне под эту марочку опенсорс, ведь сейчас, как раз, все флэшеры стонут, типа флэш умерает, что тоска и грусть. А ведь умирает то он именно потому, что флэшеры только стонут и нихрена не делают. Вот воодушевившись этой светлой идеей, я почесал репу, сел и написал то, что от меня требовалось и выложил на GitHub. Пользуйтесь люди, если нужно! Авторизация/Регистрация из flash, конечно же идея глупая, но связка Flex аппликухи с готовым REST- сервисом на Symfony2 - наверняка будет полезна. Вобщем буду счастлив, если кому-то это пригодится, а может еще и на работу возьмут. Чем черт не шутит...
https://github.com/flexconstructor/FSUsers/tree/master/httpdocs/FSUsers

P.S. Респект Symfony! В который раз испытываю микрооргазм от работы с этим фреймворком! Может в web-программисты податься?
Надо еще Flex JS попробовать для клиента. И тогда уже по результату в таксисты или на PHP.

понедельник, 24 сентября 2012 г.

ResizeTool для Flex4.5

Недавно встала задача написать небольшой компонент для Flex4, позволяющий увеличивать определенную область VideoDisplay, ну или любого другого Flex компонента, причем с помощью Resize, я не Scale, ну типа как в фильме "Эволюция Борна" (кино, кстати, неожиданно "ни о чем"...), посмотрели на картинку с ip-камеры, увеличили фрагментик  и "О! Епт! Это же они!". 

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

среда, 20 июня 2012 г.

Долгожданная майка от Microsoft

Ура! Через, примерно, полгода, компания Microsoft одарила участников акции HTML5 IT Quiz на сайте freen-lance.ru обещанными майками, с символикой HTML5.Только почему-то они черные, а не рыжие, как ожидалось (видимо в пику FF), и размеры, ну не для русских - маловаты, однако это не помешало устроить долгожданную фотосессию в новой культовой майке от Microsoft. Вот он ё.




воскресенье, 12 февраля 2012 г.

Offtop: Семейная психология

Блеать! Сегодня с женой и старшим сыном посетили семейного психолога в надежде решить проблемы тарампарарам - по вопросам воспитания... И вот, в результате осмысления этого события, выпив слегка для храбрости, я решил раз и навсегда изложить свою позицию по вопросу урегулирования бытовых проблем. Итак: Моя семья, а это: моя жена, мои дети, мои родители, собака и кошка - являются частью моей жизни, равно как и моя работа, мои увлечения, мои пороки и мои добродетели. Всё это - моя жизнь, а это процесс, которым я стремлюсь управлять. Любой из компонентов, если дать ему возможность выйти из под контроля, может привести к взрыву на "Фукусиме", Чернобылю или извержению вулкана Эйяфьятлайокудль. Для того,чтобы эффективно управлять этим процессом, необходимо иногда плыть по-течению, иногда выгребать против, иногда проходить через пороги, иногда вцепившись в руль до белых костяшек давить на газ, а иногда, закрыв глаза, жать на тормоз. Разного рода сбои и неудачи являются лишь показателями качества управления процессом, но ни как не дискредитирующими факторами самой идеи такого устройства. Я стараюсь избегать экстрима и, будучи достаточно демократичным кэпом, создать максимально комфортные условия для команды. Это так, и хочь взорвитесь, хочь разбейтесь головой апстол - это было и будет так. И я никого не держу. Можете назвать меня эгоистом и деспотом, диктатором и сатрапом, но кому не нравится, может немедленно покинуть борт. Все, не о чем тут разговаривать больше.

четверг, 22 сентября 2011 г.

Разработка мобильных приложений на Adobe Flash+AIR

понедельник, 6 июня 2011 г.

Как подключить Adobe Flash Media Server on Amazon Web Services.

Вашему вниманию пошаговая инструкция пеодключения Adobe FMS 4 на AWS: Как известно Adobe Flash Media Server распространяется в 4 вариантах: Adobe Flash Media Streaming Server 4 Adobe Flash Media Interactive Server 4 Adobe Flash Media Enterprise Server 4 Adobe Flash Media Server on Amazon Web Services По ряду причин (главная из которых нежелание отваливать сразу огромные деньжищщи за лицензию на полно-функциональную версию), самым приемлемым вариантом для небольшого стартапа с ограниченным бюджетом, но требующего полной функциональности, включая поддержку P2P и IP Multicast streaming является последний. Кроме того, размещение приложения на AWS снимает головную боль по поводу физического размещения сервера и дальнейшего масштабирования проекта при необходимости. Только плати бабки, причем вполне приемлемые за услугу "2 в 1". Несмотря на кажущююся сложность, подключение сервиса оказалось значительно проще, чем можно было представить. Итак — поехали: Материальная часть:

  1. AWS(Amazon Web Services) – набор web-сервисов в облаке предоставляемых компанией Amazon. Подробнее.
  2. Adobe Flash Media Server on Amazon Web Services подробнее.
  3. Ну, и самое главное — карта Visa или MasterCard, кокого-нибудь банка, с возможностью совершения платежей через интернет. На карте должно быть минимально около 100$, лучше больше. С этой карты будут взыматься денежки за использование ресурсов AWS.
Первым делом, если Вы еще не зарегистрировались на amazone - необходимо пройти процедуру регистрации и привязки карты. Сделать это можно прямо со странички сервиса на adobe.com, ну или с морды амазона.

Далее — Вам сюда, для того, чтобы заказать сервис на Adobe, там все интуитивно понятно и местами даже красиво. Все самое веселое впереди. За регистрацию сервиса Adobe попросят у Вас 5$ и плюс 5$ за использование сервиса в течение ближайшего месяца (на приактике сняли почему-то 13$ - 3$ я так и не понял за что). Впочем, платил не я, так, что мог вполне, что-то упустить...

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

Первой и наиглавнейшей задачей является поднятие инстанса. Инстанс на AWS это операционная система, с предустановленным ПО (в нашем случае Adobe Flash Media Enterprise Server 4), развернутая на Вашем виртуальном компьютере в облаке AWS. Поднимать мы его будем из выбранного нами AMI (Amazon Machine Image )— образа операционной системы с необходимым нам ПО. Для этого заходим в AWS Management Console под своим аккаунтом и переключаемся на вкладку EC2. Тут наверное стоит рассказать о первой засаде поджидающей нас на этом пути. Дело в том, что AWS предоставляет 5 вариантов географического расположения своих дата-центров:

  • US-East (Northern Virginia) - США-Восток (Северная Вирджиния)
  • US-West (Northern California) - США-Запад (Северная Калифорния)
  • EU (Ireland) Region- Европа (Ирландия)
  • Asia Pacific (Singapore) - Азиатско-Тихоокеанского региона (Сингапур)
  • Asia Pacific (Tokyo) - Азиатско-Тихоокеанском регионе (Токио)
Ежу понятно, что предпочтительнее было бы разместиться как можно ближе к целевой аудитории, а это EU (Ireland) Region, но, не смотря на все маркетиногвые заявления Adobe, доступный вариант AMI существует только для US-East (Northern Virginia). На форуме Adobe поднимался этот вопрос, и есть надежда, что данное положение в скором времени исправится, однако на момент написания этой статьи воз и ныне там. Не пытайтесь обмануть ситуацию и поставить Адобовский AMI на нужную Вам локацию, я пробовал — нигада из этого не выходит, в самом конце процедуры все падает в ошибку. Вобщем выбираем US-East (Northern Virginia) и смело жмем на кнопку «Launch Instance». Amazon предлагает несколько вариантов AMI, однако существует возможность выбрать из великого множества образов, разработанных сторонними разработчиками, что нам собственно и надо, для этого в появившемся окне, выбираем вкладку «Community AMIs». Чтоб не перебирать порядка 7000 предложенных вариантов, в поле ввода поиска вводим что-нибудь типа «adobe» и получаем в результате единственный, доступный на сегодняшний день вариант — ami-6a1deb03, FMS базирующийся на операционной системе CentOS. Жмем кнопку «Select», в результате чего переходим к следующему шагу «Instance Details». Поскольку с зонами размещения нам все ясно, то и комбобокс Availability Zone мы можем так-же оставить без внимания — пох, типа все равно, нас это не устраивает. Однако на комбобокс Instance Type стоит обратить пристальное внимание. Дело в том, что в отличие от коробочных вариантов поставки, FMS на AWS ограничивает число возможных одновременных RTMFP коннектов, причем от выбора порядка этого ограничения будет зависеть сумма Ваших денежек, которые Вы будете тратить на содержание Вашего проекта. Ограничения такие:

Large 100 RTMFP - US$0.44

High-memory extra large 100 RTMFP - US$0.60

High-CPU extra large 1000 RTMFP - US$1.30

Extra large 1000 RTMFP - US$1.30

High-memory double extra large 10000 RTMFP - US$4.60

High-memory quadruple extra large 10000 RTMFP - US$5.60

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

  • Входящий 0,1$ за гиг
  • Исходящий 0,15$ за гиг
Как видите цены достаточно приемлемые, ну и это все о грусном — вернемся к нашим баранам.

На следующем шаге оставляем все как есть, далее нам предлагается присвоить теги вновь создаваемому экземпляру инстанса. Теги присваиваются в виде пары ключ-значение и нужны они для упрощения администрирования ваших ресурсов на EC2, если у вас их уже много. Доках FMS написано, что инстансы FMS на AWS не поддерживают метаданных, так что полезно будет ввести только значение тегу name, оно будет отображаться в колонке "имя инстанса" в AWS Management Console.

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

На следующем шаге (Configure Firewall) нам необходимо выбрать Security Groups - группу правил безопасности, иными словами открыть нужные для работы инстанса порты. Есть дефолтная группа безопасности с уже открытыми портами 22(SSH) и 80(HTTP), но надо учесть, что для нормальной работы FMS нам нужны еще 1935(TCP) и 1935(UDP), если собираетесь работать с P2P и Мультикастингом. Кроме того, учтите, что сменить группу для уже созданного инстанса нельзя, можно только добавить/удалить правила, что вобщем-то спасает в любом случае. Исходя из религиозных побуждений создадим собственную группу и добавим правила для портов 22(SSH), 80(HTTP), 1935(TCP), 1935(UDP) и 443(HTTPS) на всякий случай.

Все можем смело идти к окончанию процедуры создания инстанса, в результате чего в консоли ( AWS Management Console) на вкладке EC2 появится строка с вновь созданным инстансом. Ура!

Проверим работает ли созданный нами инстанс на практике: Выделим в панели строку соответствующую, нашему инстансу и в нижней части панели выберим вкладку Description, если по каким-то причинам она уже не выделена. Найдем строку Public DNS и скопируем ее содержание. Откройте адрес http://[Public DNS] в браузере и вы увидите стартовую страницу Adobe FMS 4 с расчудесным видеороликом с кляксами, реками и красивой музыкой. Вау! Оно работает! Если же нет, то обратите внимание на следующие причины, по которым ничего не вышло:

  1. Вы прочитали эту статью не с начала и не до конца
  2. Вы вообще ее не читали (нафиг надо)
  3. Проверьте запущен ли инстанс если запущен то, в строке инстанса в консоли колонка Status должна быть подсвенчена зеленым и написано «running»
  4. Проверьте в Security Groups вашу группу на предмет открытых портов 80 и 1935, если нет — откройте путем добавления соответствующих правил к группе (сделать это можно так: открыть в меню консоли Security Groups , выбрать в верхней части панели вашу группу, в нижней части панели на вкладке Inbound воспользоваться вполне интуитивно-понятной формой добавления правил. IP 0.0.0.0/0 обозначает что правило действует для всех IP адресов).
  5. Ну и уж если совсем никак — убедитесь, что порты 80 и 1935 открыты в брандмауэре вашего компьютера. Для этого зайдите на страничку flashcomguru и пройдите порт-тест. Если причина в этом — то AWS тут ни причем — открывайте эти порты на Вашем компе.
  6. Если совсем все плохо — попейте чайку и попробуйте сделать все заново...
Итак FMS запущен все работает, денежки потекли. Ой, стоп, яж только попробовать... Не беда. Чтобы грохнуть запущенный инстанс — выберите в консоли в выпадающем списке Instance Action строчку «Terminate» и все погаснет. Кстати там же, при необходимости, можно выбрать Reboot чтобы перезапустить инстанс.

Тем кто устал, на этом этапе можно бросить читать этот бред и попробовать подключиться к предустановленным приложениям медиа-сервера, а это как обычно live, vod и присоединившийся к ним в 4 версии FMS multicast. Хотя с последним придется сделать несколько более сложных телодвижений, но об этом в последующем посте.

Тем же, чьи планы более амбициозны — добро пожаловать дальше.

Итак теперь нам нужно получить доступ к файловой системе нашего сервера, ну и заодно к административной консоли установленного нами FMS. Дело в том, что административный сервер не запущен на AWS по умолчанию, его придется запустить вручную. Для этого придется вспомнить, что админ. сервер FMS использует порт 1111. Добавим правило для него в группу безопасности (открыть в меню консоли Security Groups ,выбрать в верхней части панели вашу группу, в нижней части панели на вкладке Inbound воспользоваться вполне интуитивно-понятной формой добавления правил. IP 0.0.0.0/0 обозначает что правило действует для всех IP адресов).

Далее: используем любимый SSH клиент, если любимого нет, то я рекомендую WinSCP если вы на винде, и утилиту PuTTYgen для генерации приватного ключа.

  1. Откройте PuTTYgen
  2. Выберите Conversions > Import Key
  3. Выберите ваш файл с расширением .pem который вы сохранили при создании инстанса (блн, где же он...)
  4. 4. Выберите File > Save Private Key в появившемся диалоге со всем покорно согласитесь.
  5. PuTTYgen сгенерирует файл с расширением .ppk — дайте ему запоминающееся имя и сохраните куда-нибудь, чтоб можно было его впоследствии лего найти.
  6. Заходим в AWS Management Console и копируем Public DNS
  7. Открываем WinSCP
  8. Выделяем в дереве левой части окна Session
  9. Вводим в поле Host Name содержимое буфера обмена (наш Public DNS)
  10. Проверяем — номер порта должен быть 22
  11. В поле UserName вводим «root»
  12. Выбираем в поле Private Key File файл .ppk, который мы сгенерировали с помощью PuTTYgen в п.5.
  13. Для поля File Protocol выбираем SCP
  14. Нажимаем Save и вводим человекопонятное имя для профиля.
  15. Жмем «Login» , коннектимся к инстансу, если выкинет предупреждение по безопасности — соглашаемся и получаем доступ к файлам через графический интерфейс WinSCP - внешне похоже на Total Commander.
Для запуска админки медиасервера нужно произвести следующие действия:

  1. Идем в директорию установки FMS это opt/adobe/fms находим там папку conf, заходим в нее и скачиваем на диск файл fms.ini. Это файл конфигурации медиасервера. На всякий случай делаем копию оригинала файла.
  2. Открываем fms.ini и ищем там строки:
  3. SERVER.ADMIN_USERNAME = придумываем свой суперсекретный логин SERVER.ADMIN_PASSWORD = придумываем свой суперсекретный пароль SERVER.ADMINSERVER_HOSTPORT = :1111
  1. Закачиваем файл обратно на сервер.
  2. Теперь нужно рестартнуть сервак. Для этого в панели инструментов WinSCP находим кнопочку «Терминал», запускаем терминал и в поле ввода комманды пишем opt/adobe/fms/server restart и ждем рестарта сервера. На амазоне это может происходить несколько дольше чем на локале.
  3. Стартуем административный сервер opt/adobe/fms/adminserver start
  4. Заходим в админку http://[наш Public DNS]/fms_adminConsole.htm
  5. В поле Server Adress ввовдим rtmp://[наш Public DNS], в поле Login - свой суперсекретный логин, в поле Password - свой суперсекретный пароль
  6. Жмем «Login» и заходим в интерфейс управления нашим сервером.
Все. Дальше делаем что хотим. Он Наш! Ссылки по теме:
http://docs.amazonwebservices.com/AWSEC2/2011-05-15/GettingStartedGuide/ - как стартануть инстанс - оригинальный урок от AWS

четверг, 5 мая 2011 г.

Flash разработка для мобильных платформ

Ростислав (Рост) Сирык, он же Rost, он же самый главный Флэш Потрошитель в очередной раз поспособствовал русскоязычному сообществу flash-разработчиков переводом фундаментального материала по разработке для мобильных платформ, за что ему нижайший поклон. Читать всем обязательно!
Мобильная разработка на Adobe Flex 4.5 SDK и Flash Builder 4.5 - часть 2 | Флэш Потрошитель
(Ссылка на первую часть в тексте статьи)

Ярлыки: , ,