Angular всегда прав

Posted on: April 4th, 2012 by Spade No Comments »

Одно из наиболее интересных веяний в области разработки вэб-приложений на данный момент это изменение архитектуры MVC на стороне сервера в форму Services – Controllers на стороне сервера + MVC на стороне клиента. Суть в том, что сервер более никак не влияет на представление на стороне клиента. Все что от него требуется, это отдать данные в некотором виде (JSON, и уже реже, XML) – то есть сформировать модель для архитектуры Client side MVC, первый её уровень. Это дает ряд преимуществ. Самое смешное и часто повторяемое – что дизайнерам наконец-то будет удобнее писать разметку HTML, хотя мы то знаем что как бы далеко не зашли в своей простоте техноголии верстки, дизайнерам это мало поможет – хорошо если они когда-нибудь  научатся хотя  бы правильно оформлять файлы Photoshop.
(more…)

Познакомьтесь – Джон Картер.

Posted on: March 4th, 2012 by Spade 1 Comment »

На экраны кинотеатров вот-вот выйдет новый диснеевский фильм, стоимостью 250 млн долларов, о приключениях американца на марсе – это событие киноиндустрии сопровождается едва ли не большим ажиотажем, чем появление Аватара от Джеймса Камерона. Давайте посмотрим на причины такого накала страстей.

История сюжета

Интересно, что фильм базируется на книгах Эдгара Райса Берроуза – американского бизнесмена начала 20 века. В бизнесе он не был сильно успешен, и попробовал себя на литературной стезе – в 1912 году вышел первый из его романов, давший начало циклу приключений Джона Картера. (more…)

Custom Ant Task

Posted on: February 29th, 2012 by Spade No Comments »

А что если при сборке приложения вам нужно дождаться выполнения определенного условия – например некоторого флага из базы данных или ответа REST-сервиса? Для этих случаев сборщик Apache Ant предлагает специальный тэг waitfor – он дает возможность приостановить выполнения скрипта до момента наличия некоторого условия. Есть возможность установить сколько ждать, и как часть проверять это условие. Внутри него можно поместить дочерний тэг, который возвращает булево значение. Класс такого тэга должен реализовывать интерфейс org.apache.tools.ant.taskdefs.condition.Condition, главная функция которого – public boolean eval().
(more…)

ASM in Java

Posted on: February 20th, 2012 by Spade No Comments »

Довольно часто бывает, что нам нужно изменить/расширить существующую функциональность, но прибегнуть к традиционным подходам (наследование, перегрузка) мы не можем – то ли классы объявлены финальными, то ли из соображений чистоты архитектуры приложения. В таких случаях мы можем прибегнуть к AOP, который справляется с этой проблемой посредством прокси-объектов. Они «заворачивают» в себя оригинальные объекты, и перехватывая вызовы методов меняют функционал в требуемую сторону. Изменять поведение программы таки способом можно на трех этапах:

  1. Compile-time – с помощью специальной настройки IDE (плагин и т.п.) или использования DSL (domain specific language) разработанного специально для этого мы можем на этапе сборки кода внедрять туда нужные нам инструкции – конечно в случае, когда у нас есть доступ к исходникам.
  2. Class load time – можно написать свой класс лоадер, который будет загружать измененные классы вместо запрашиваемых.
  3. Runtime  – во время создания объекта класса, вместо него создается прокси, которые меняет функционал – с этим подходом работают большинство AOP-framework-ов.

(more…)

Использование ProtoBuf-объекта полученного через сокет в Action Script 3

Posted on: January 27th, 2012 by Heart No Comments »

Как создать ProtoBuf-объект и отправить через сокет, можно посмотреть в этой статье.

Предполагается, что создан обычный сокет:

 

var socket:Socket = new Socket();

(more…)