вторник, 11 декабря 2007 г.

IT Этика

Вот здесь наткнулся на интересную стать. Очень занимательная статья, о сверхурочных часах работы. Кто с нами не сталкивался с этой проблемой? По крайней мере, я лично, провожу на 8-10 часов в неделю больше на работе, нежели положено. И это не, потому что я такой плохой разработчик, по крайней мере, мне так кажется ;) Чаще всего это происходит так:

-Сколько времени понадобится для реализации этого проекта?

-80 часов.

-Нужно сделать за 60.

-Не смогу.

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

Отказываться от премии я не буду, потому, как денег хочется со страшной силой. Однако в 80% случаев эту премию я не получаю. С одной стороны я конечно могу обратиться к КЗОТу и поставить компанию в неудобное положение. С другой стороны, куда я пойду работать потом? Для фриланса я слишком ленивый, а крупных фирм, где нужен флеш-девелопер в Донецке больше нет. Вот и приходится работать, как работается. Раздражает даже не это, а то, что менеджеры относятся к этому как к чему-то само собой разумеющемуся.

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

Что вы думаете на эту тему?

Swift 3D V5

Свершилось! Наконец-то вышел Swift 3D V5. Что же нас ждет в новой версии? Рассматривать все новые фичи, очень долго, поэтому я упомяну лишь самые интересные на мой взгляд нововведения:

  • Papervision3D Export – наконец-то! Теперь можно экспортировать модели напрямую в формат Papervision3D, мало того, автоматически генерируется весь код необходимый для зума и поворота моделей.
  • Export to XAML for WPF and Silverlight – конкуренты не спят, теперь можно экспортировать покадровую анимацию в XAML который легко понимает Silverlight.
  • .3ds Export – экспорт в самый распространенный формат 3Д моделей, для того чтобы изменять их в любой другой удобной для вас программе.
  • Undo Restructuring – очень важный апдейт лично для меня. Теперь стэк undo бесконечен, и можно легко вернутся к любому состоянию, которое вам нравилось

Больше фич здесь.

Цена этого продукта, 249$ за покупку, или от 79$ за upgrade

понедельник, 10 декабря 2007 г.

Опасности uint’a

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

for( var i:uint = 100; i >= 0; i-- )

{

// всякое тута

}


 

Естественно этот цикл будет вечным, потому как uint никогда не будет меньше 0. Берегитесь, uint коварный;)

Weak references

У меня очень плохая память, и я постоянно забываю удалять ссылки на свои объекты. Из-за этого через некоторое время мои программы начинают пожирать огромный объем памяти, и мне приходится заниматься тем, о чем я забыл в самом начале. Чистить ссылки, чтобы Garbage Collector, смог удалить ненужные объекты. Хорошо, что в AS 3.0 у нас есть возможность создавать «слабые ссылки» (weak references) для EventDispatcher и Dictionary классов. Иногда правда мне хочется создавать сои собственные «слабые ссылки», и тут на помощь может прийти класс WeakRef написанный Ричардом Лордом. Подробности вот здесь

пятница, 9 ноября 2007 г.

Вэб Сервисы в AS 3.0 release 1.0

Столкнулись недавно с проблемой, нужно было использовать ВЭБ Сервисы в AS 3.0, а там как известно их нет. Писать парсер самим не хотелось, вооружились гуглом. В результате после недолгих поисков нашли вот это. Попробовали использовать это с нашим Java-сервером. Наши WDSL документы генерировались с помощью X-Fire. После парсинга, не находились Вэб Сервис методы. В результате, наш Java-developer Владимир aka red, нашел ошибку в классе WDSL (WDSL.as). Достаточно заменить существующую функцию getBinding, той что пердставленна ниже, и все заработает.

ВНИМАНИЕ! Этот код проверялся с X-Fire сгенерированными WDLS документами, использование кода на ваш страх и риск.


 

private function getBinding(portType:String):String{

var wsdl:Namespace = __rawWSDL.namespace();

var service:XMLList = __rawWSDL.wsdl::service;

// var myPort:XMLList = service.wsdl::port.(@name == portType);

var binding:XMLList = __rawWSDL.wsdl::binding.(@type.substr(@type.indexOf(":")+1) == portType);

var addressNS:Namespace = service.wsdl::port.children()[0].namespace();

__servicePath = service.wsdl::port.addressNS::address.@location;

var bindingAmount:Number = binding.length();

if (bindingAmount == 1){

return (binding.@name);

} else if(bindingAmount >0 ) {

return binding[0].@name;

}

return("");

}

вторник, 6 ноября 2007 г.

Монетизация игр

В прошлый раз, когда я писал о монетизации игр, я давал ссылку вот на эту статью. И вот подоспела вторая часть. По результатам недельного тестирования, автор заработал 113,0$. Пока они виртуальные, потому что на сервисах где он заработал он еще не успел набить минимальную сумму для обналички, но тем неимение, за игру на которую потрачено 6 часов, это неплохая сумма. Главное в таких играх – поток. Чтобы их было много, и все интересныеJ

четверг, 1 ноября 2007 г.

Экономика должна быть экономной.

Для написания более мнение сложной игры на флеше необходимо назубок знать, как обращаться с памятью. Где использовать какие типы данных, чтобы сэкономить такую драгоценную память. Как быстрее обрабатывать данные, чтобы не загружать процессор. В большинстве случаев сокращение времени обработки данных производится с помощью подбора правильного алгоритма, но все равно не стоит забывать о том, что, к примеру, тип Number использует гораздо больше памяти, нежели int. Интересная дискуссия развернулся на сайте у Роста. Почитать можно здесь и здесь. Рекомендую.